一、创建的flutter项目和iOS项目同级,同一个文件夹内,可以使用命令创建flutter项目,也可以用Android studio或 VS code创建flutter项目
命令创建(要和iOS项目同级)
flutter create -t module xxx(flutter项目名)
Android studio或 VS code创建 官网https://flutter.cn/docs/get-started/editor?tab=androidstudio
Enable Bitcode设置为NO
二、Xcode打开现有的iOS项目,新建一个文件夹Config,在文件夹里面创建三个配置文件Flutter.xcconfigDebug.xcconfigRelease.xcconfig,如下图
文件内容如下图
三、创建完成xcconfig文件之后,在PROJECT的info->Configurations中设置Debug和Release配置文件,如下图
四、配置完成之后添加Flutter.framework,在flutter项目中可以看到.ios项目,把.ios/Flutter/engine引入iOS项目,仅仅是路径引用,没有复制进iOS项目,如下图
添加的时候会出现flutter项目中.ios不显示,这个时候执行command+shift+G,输入路径即可显示添加,如下图
五、引入Flutter.framework之后,Flutter.framework是动态库,所以要在相应的TARGET Build Phases->Emded Frameworks添加Flutter.framework,Destination类型是Frameworks类型,如下图
六、在TARGET Build Phases添加脚本,如下图
"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" build "$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh" embed
七、创建一个ViewController 继承FlutterViewController,运行项目加载ViewController即加载flutter
如下图:
八、补充
上面仅仅只能满足基本的flutter项目,flutter使用插件的时候,例如本地存储shared_preferences,网络检查connectivity等,在flutter项目中有效, 运行iOS项目无效,这时候需要iOS引入flutter使用的第三方库
下一篇 会写不使用cocoapods,引入flutter使用的第三方及GeneratedPluginRegistrant注。