前言:Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的,各个大厂都在使用该技术应用在项目中,百度的地图,阿里系的咸鱼,手机QQ 开源基于Flutter 的动态化框架 MXFlutter 等等,说明Flutter 是未来前端技术的趋势。
之前已经了解了纯Flutter 项目开发,假如想在现有业务中或者App业务中使用Flutter相关技术,初步的环境搭建请参考 https://www.jianshu.com/p/f761db392ab4
如何让Flutter 作为项目中的一部分?
有两种方式:一种是手动集成,另外一种是使用pod形式,
手动集成:
1:切换到项目的跟目录:
2 : 创建module(flutter create -t module flutter_library 添加一个模块)
3:创建文件:Flutter.xcconfig,Debug.xcconfig,Release.xcconfig并且配置在Project 下的Configurations下 如下图
In Flutter.xcconfig: #include "../../flutter_module/.ios/Flutter/Generated.xcconfig"
ENABLE_BITCODE=NO
In Debug.xcconfig:
#include "Flutter.xcconfig"
In Release.xcconfig:
#include "Flutter.xcconfig"
FLUTTER_BUILD_MODE=releas
注意修改Enable Bitcode 设置为NO
5:xcode_backend.sh 文件是用来生成项目所需要的库和资源 (配置完成 comd+B )
6:以上的配置方法是完全在项目中引入,直接使用App.framwork engine 集成到项目中
至此,Xcode与Flutter之间混编配置完成,两个项目文件已经关联上了。这时候你就可以修改main.dart 文件内容,重新编译运行Xcode 则APP.framework自动会被编译成最新的flutter代码。
pod 方式集成:
1:同样是先创建module
2: 根据module 修改组建的路径,
3:然后执行 pod install
pod中就集成了FLutter和FlutterPluginRegistrant。
如果在flutter_module/pubspec.yaml中添加FLutter插件后,除了需要运行flutter packages get,
还需要在iOS目录下运行pod install,才能确保插件和flutter.framework添加到iOS项目中。时时保持项目的同步
禁用Bitcode
目前flutter还不支持Bitcode,在Build Settings->Build Options->Enable Bitcode中将Bitcode设置为NO。
在Build phase中添加Run Script,添加如下配置,
4:配置脚本文件:配置脚本:xcode_backend.sh 配置到Runscript 中,
当然以上两种方式都是为了集成Flutter ,比较来说,个人比较倾向于第二种,比较方便,没有繁琐的配置,很好的去配置
最后项目怎么运行起来?
具体修改请查看:
demo 地址
从目前我们公司的海马项目集成来看,按照第二种方式去集成,会有找不到脚本的问题,如何解决?
先查看环境变量和如下图的位置的变量
参考链接:参考