國際移動用戶識別碼( IMSI) international mobile subscriber identity 國際上為唯一識別一個移動用戶所分配的號碼。 從技術上講,IMSI可以徹底解決國際漫游問題。但是由於北美目前仍有大量的AMPS系統使用MIN號碼,且北美的MDN和MIN採用相同的編號,系 ...
現有iOS項目引入flutter模塊。
方式一:直接cocoapods引入fluttermodule(flutter工程必須是module類型)工程的路徑。
這個網上資料很多,也是flutter官網推薦的方式,可以參考這篇文章:https://www.jianshu.com/p/e3e689e77280
優點是快,方便。 缺點是 原生項目和flutter項目 太過依賴
方式二:將flutter工程打包成framework,再放入iOS項目工程里。
可以參考文章:https://www.jianshu.com/p/bad5d57a086b 這裡寫的方式二
1. 命令行里,cd到flutter工程目錄下,運行命令輸出framwork:flutter build ios-framework --output=some/path/MyApp/Flutter/ 可以加--no-profile 之類的 去掉一些打包項比如:
flutter build ios-framework --no-profile --output=/Users/yzx/Desktop/MyApp/Flutter
2. 在iOS工程的 target, Build Settings 里 找到 Framework Search Paths , 增加 $(PROJECT_DIR)/Flutter/$(CONFIGURATION) 這裡不要選擇debug或者release,而是編輯總體項自動選擇 。 將Flutter文件要放在對應路徑位置。PROJECT_DIR工程目錄下。
3.把打包出來的Flutter文件里的所有動態鏈接庫(隨意選Debug或Release一個目錄中的)(我選的是Release)拖入工程General -> Framework,Libraries那面板,設置為Embed & Sign(這一步我倒是沒碰到,也不知道是不是最新fluttersdk的緣故)。(註意:靜態庫,比如FlutterPluginRegistrant.framework不要加入,否則不能上架AppStore,判斷其他packge插件生成的framework是靜態還是動態,請看官網給的鏈接)
註意,FlutterPluginRegistrant.framework不要加入,我這邊加入嘗試,發現工程運行的時候提示 Unable to install
4.編輯MyApp.xcodeproj/project.pbxproj文件:查找替換所有path = ../Flutter/Debug或Release/xx.framework;替換為path = "../Flutter/$(CONFIGURATION)/xx.framework";(註意添加引號 ")。可以根據Debug或Release編譯時使用對應的framework。註意:flutter的生成的debug的framework可以運行在模擬器和真機,release的只能運行在真機。 --- 這一步我這邊嘗試也沒看到需要改動的地方。可能新版本flutter有所支持吧。 5.bitcode設為了NO,否則這裡遇到了編譯release版出錯 最後註意:flutter工程以後開發時如果增加了新的packge,要對新增加生成的framework做3-4步驟(若為靜態庫則不用加入)