iOS & Flutter 集成

更新Flutter

       前言: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 添加一个模块)


集成后的module


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 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 地址

从目前我们公司的海马项目集成来看,按照第二种方式去集成,会有找不到脚本的问题,如何解决?

先查看环境变量和如下图的位置的变量


如果没有生成肯定有问题

参考链接:参考

你可能感兴趣的:(iOS & Flutter 集成)