flutter集成到iOS舊有項(xiàng)目中

1.復(fù)制flutter項(xiàng)目到ios項(xiàng)目統(tǒng)計(jì)目錄中

2.在項(xiàng)目的podfile文件中添加下面的代碼

flutter_application_path = '../hmc_flutter_module'

load File.join(flutter_application_path, '.ios', 'Flutter', 'podhelper.rb')

install_all_flutter_pods(flutter_application_path)

其中hmc_flutter_module添加的flutter項(xiàng)目名稱

3.打開Xcode關(guān)閉bitcode配置Build Settings->Build Options->Enable Bitcode

4.添加編譯腳本,打開Xcode在 Build Phases中添加New Run Script Phase在里面填入如下腳本 【這一步不需要了】

"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build

"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed

5.項(xiàng)目的配置完成現(xiàn)在需要生成一些配置文件

a. 進(jìn)入原生項(xiàng)目的flutter模塊目錄中執(zhí)行flutter packages get命令

b. 回到原生項(xiàng)目根目錄執(zhí)行pod install

到此為止我們的原生項(xiàng)目就已經(jīng)集成好了flutter項(xiàng)目了。


Flutter - 編譯常見問題

? ?問題一: Flutter /bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: No such file or directory

1.檢查flutter項(xiàng)目路徑下.iOS/Flutter/Generated.xcconfig文件里的路徑是否配置正確

? ? 2.檢查build Settings -> User-defined下路徑是否正確

3.因?yàn)槲业膄lutter項(xiàng)目是用win系統(tǒng)下開發(fā)的,在編譯的時(shí)候生成的ios文件夾下面的目錄沒有podfile文件

找到原win下的flutter項(xiàng)目的podfile文件,拷貝一份到mac該目錄下,然后在mac下用Android studio進(jìn)行編譯,iOS的文件夾下面的目錄結(jié)構(gòu)是這樣的


問題二:[!]?The?following?Swift?pods?cannot?yet?be?integrated?as?static?libraries:

問題三:Apple Mach-O linker (id) Error



問題四:FlutterSDK/flutter **.h: No such file or directory



問題五:pod install?

錯(cuò)?[!]?No?podspec?found?for?`device_info_plus`?in?`../hmc_flutter_module/.ios/.symlinks/plugins/device_info_plus/ios`


問題六:ios打包Adhoc,真機(jī)安裝運(yùn)行閃退

1:cd到flutter項(xiàng)目目錄下,輸入"flutter build ios"

配置

用Xcode打開工程項(xiàng)目,在Build Settings的最下方找到User-Defined,點(diǎn)擊+按鈕,添加一個(gè)鍵為FLUTTER_BUILD_MODE,值為release的配置。

再次運(yùn)行到真機(jī)上,斷開Xcode運(yùn)行也不會(huì)崩潰了


問題七:flutter項(xiàng)目引入新的包后,要在原生項(xiàng)目運(yùn)行pod install?--no-repo-update

提示:

當(dāng)你在?my_flutter/pubspec.yaml?改變了 Flutter plugin 依賴,需要在 Flutter module 目錄運(yùn)行?flutter pub get,來更新會(huì)被podhelper.rb?腳本用到的 plugin 列表,然后再次在你的應(yīng)用目錄?some/path/MyApp?運(yùn)行?pod install.


問題八:運(yùn)行pod install后,報(bào)【Invalid `Podfile` file: cannot load such file -- ../flutter_module/.ios/Flutter/podhelper.rb.

檢查iOS項(xiàng)目里的Podfile文件flutter依賴項(xiàng)目名稱是不是正確的

問題九:Command PhaseScriptExecution failed with a nonzero exit code

這是由于flutter項(xiàng)目代碼中有錯(cuò)誤導(dǎo)致的Xcode中編譯報(bào)錯(cuò),檢查flutter項(xiàng)目什么地方報(bào)錯(cuò),將問題修改后,clear重新運(yùn)行iOS項(xiàng)目即可。

問題十:E:\FlutterSDK\flutter3.0\flutter/packages/flutter_tools/bin/

具體報(bào)錯(cuò)

/Users/nihisashi/Library/Developer/Xcode/DerivedData/medicalBeauty-bfgfmeqbjiwtbpbynsgtimbhbrst/Build/Intermediates.noindex/medicalBeauty.build/Debug-iphoneos/medicalBeauty.build/Script-BD2E6E265A7AB38D434B0085.sh: line 5: E:\FlutterSDK\flutter3.0\flutter/packages/flutter_tools/bin/xcode_backend.sh: No such file or directory

原因分析:因?yàn)槭菑陌沧客吕∠聛淼捻?xiàng)目,地址是安卓同事電腦的地址,需要切換到自己電腦地址

解決方法

問題十一:


Showing All Messages, Filtering for "Error".

[+2380 ms] lib%5Cmain.dart: Error: Error when reading 'lib%5Cmain.dart': No such file or directory

[+12706 ms] lib%5Cmain.dart: Error: No 'main' method found.

原因分析:因?yàn)槭菑陌沧客吕∠聛淼捻?xiàng)目,地址是安卓同事電腦的目錄,需要改回自己電腦的目錄格式?


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容