iOS 集成flutter module 不使用cocoapods

一、创建的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.xcconfig\Debug.xcconfig\Release.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注。

 

posted @ 2019-12-03 14:29  Belinda_sl  阅读(1201)  评论(0编辑  收藏  举报