1.復制flutter項目到ios項目統計目錄中
2.在項目的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項目名稱
3.打開Xcode關閉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.項目的配置完成現在需要生成一些配置文件
a. 進入原生項目的flutter模塊目錄中執行flutter packages get命令
b. 回到原生項目根目錄執行pod install
到此為止我們的原生項目就已經集成好了flutter項目了。
Flutter - 編譯常見問題
? ?問題一: Flutter /bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: No such file or directory
1.檢查flutter項目路徑下.iOS/Flutter/Generated.xcconfig文件里的路徑是否配置正確
? ? 2.檢查build Settings -> User-defined下路徑是否正確
3.因為我的flutter項目是用win系統下開發的,在編譯的時候生成的ios文件夾下面的目錄沒有podfile文件
找到原win下的flutter項目的podfile文件,拷貝一份到mac該目錄下,然后在mac下用Android studio進行編譯,iOS的文件夾下面的目錄結構是這樣的
問題二:[!]?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?
錯?[!]?No?podspec?found?for?`device_info_plus`?in?`../hmc_flutter_module/.ios/.symlinks/plugins/device_info_plus/ios`
問題六:ios打包Adhoc,真機安裝運行閃退
1:cd到flutter項目目錄下,輸入"flutter build ios"
配置
用Xcode打開工程項目,在Build Settings的最下方找到User-Defined,點擊+按鈕,添加一個鍵為FLUTTER_BUILD_MODE,值為release的配置。
再次運行到真機上,斷開Xcode運行也不會崩潰了
問題七:flutter項目引入新的包后,要在原生項目運行pod install?--no-repo-update
提示:
當你在?my_flutter/pubspec.yaml?改變了 Flutter plugin 依賴,需要在 Flutter module 目錄運行?flutter pub get,來更新會被podhelper.rb?腳本用到的 plugin 列表,然后再次在你的應用目錄?some/path/MyApp?運行?pod install.
問題八:運行pod install后,報【Invalid `Podfile` file: cannot load such file -- ../flutter_module/.ios/Flutter/podhelper.rb.】
檢查iOS項目里的Podfile文件flutter依賴項目名稱是不是正確的
問題九:Command PhaseScriptExecution failed with a nonzero exit code
這是由于flutter項目代碼中有錯誤導致的Xcode中編譯報錯,檢查flutter項目什么地方報錯,將問題修改后,clear重新運行iOS項目即可。
問題十:E:\FlutterSDK\flutter3.0\flutter/packages/flutter_tools/bin/
具體報錯
/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
原因分析:因為是從安卓同事拉取下來的項目,地址是安卓同事電腦的地址,需要切換到自己電腦地址
解決方法
問題十一:
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.
原因分析:因為是從安卓同事拉取下來的項目,地址是安卓同事電腦的目錄,需要改回自己電腦的目錄格式?