1、iOS工程build settings中的 Enable Bitcode 需要关闭,因为Flutter混合开发不支持Bitcode
2、flutter module创建
2.1、创建的flutter module要与原有的ios工程在同一层级,创建的model一定要小写
2.2、在终端中创建 flutter create -t module flutter_module
2.3、查看隐藏文件 shift + command + 。
3、项目目录命令行执行pod init,Podfile文件编写以下代码
# 下面是复制官方demo的podfile内容修改:
# 这里写你的flutter module相对路径flutter_application_path ='../flutter_module/'
# newflutter 是你的项目名,用你自己的,只要copy下一行代码就行
target 'newflutter' do
eval(File.read(File.join(flutter_application_path,'.ios','Flutter','podhelper.rb')),binding)
end
后执行pod install
4、在ios工程中添加脚本
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh"build
注意: Run Script 在Target Dependencies或者[CP]Check pods Manifest.lock后面
添加好了之后run下项目,就会执行脚本,iOS工程文件下会有一个Flutter文件夹
蓝色文件夹是选择了Create folder references
黄色文件夹是选择了Create groups
Xcode run或者build之后flutter_assets才会出现
flutter_assets一定要蓝色的 不然flutter界面啥都看不见。
run之后如果没有Flutter这个文件夹,手动创建一个,然后把flutter_module->.ios->Fluter里面的App.framework、engine、flutter_assets添加进刚才手动创建的Flutter文件夹内
如果文件夹里没有flutter_assets文件,就去App.framework里面找,复制出来就可以了
5、如果flutter工程添加东西了,ios工程一直报错,找不到引用文件'Flutter/Flutter.h not found'的解决,可以更新一下pods
进入你项目中的ios目录设置pod
$cd 你项目根目录/ios
设置pod
$pod update
就可以了