現有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步驟(若為靜態庫則不用加入)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/548100.html
標籤:其他
