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.
原因分析:因为是从安卓同事拉取下来的项目,地址是安卓同事电脑的目录,需要改回自己电脑的目录格式