flutter_boost学习1:iOS运行flutter_boost的Sample

下一篇:flutter_boost学习2:iOS集成flutter_boost

环境:MacOS、Xcode、cocoapods、flutter
练习GitHub:DayDayUp

前言

从flutter发布以来,flutter相关使用文章和第三方框架package如雨>后春笋不断涌现,我跟着其中一些文章也写了几个demo。

但是在使用flutter和iOS原生项目混合使用时发现一个比较痛的问题,那就是由于FlutterViewController没法销毁,每调用一次内存就会对应增大一次,这导致很难讲flutter真正用于项目中。

然后查询资料,很多人都遇到这种情况,一派是修改flutter源代码,这种方式太过于侵入,而另一派则是以阿里咸鱼团队的flutter_boost为代表,将所有flutter页面的跳转都转换为原生的跳转,在不修改任何源码的情况下解决这个痛点,

但网上大部分集成flutter_boost的文章都是说的Android的,iOS集成的文章很少,而且在集成flutter_boost的过程中遇到不少坑,特记录之

一、安装flutter环境

  • 入门: 在macOS上搭建Flutter开发环境

二、下载flutter_boost https://github.com/alibaba/flutter_boost.git

下载好后结构如下:


tmp6479cae4.png

运行demo

1.1、

由于是使用cocoapods管理的Native,所以需要先运行pod,步骤如下:
打开terminal并进入podfile所在的cd /Users/xxx/xxx/flutter_boost-master/example/ios文件夹

1.2、

运行命令pod install --verbose --no-repo-update

1.3 点击Runner.xcworkspace
tmp00b53671.png

遇到问题1:

/bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: No such file or directory

原因:由于缺少FLUTTER_ROOT配置
解决方案:在Build Settings里添加配置
FLUTTER_ROOT,flutter安装的位置,可以使用$FLUTTER_PATH查看

tmp7d8acdad.png

遇到问题2:

/Users/xxx/Downloads/flutter_boost-master/example/ios/Runner/DemoRouter.h:11:9: 'flutter_boost/FLBPlatform.h' file not found

原因:由于flutter大依赖包里还没有包含

flutter_bost,导致编译出来的App.framework也就不包含flutter_bost了,
解决方案:
1、terminal 进入pubspec.yaml所在的文件夹/Users/xxx/Downloads/flutter_boost-master/example,
然后运行flutter packages get
2、terminal 进入Podfile所在的文件夹/Users/xxx/Downloads/flutter_boost-master/example/ios,
然后运行pod install --verbose --no-repo-update

遇到问题3:

error: /Users/xxx/Downloads/flutter_boost-master/example/ios/Flutter/flutter_assets: No such file or directory

原因:由于现在使用的flutter版本生成的flutter_assets是放到App.framework里的,把flutter_assetsApp.framework里拷贝出来放到Flutter文件夹里就可以了

tmp16b8e9d2.png

补充问题:

据ctw_native遇到过的问题
dyld: Library not loaded
把App.framework加进Embedded Binaries

完美运行:


tmp621544c8.png

你可能感兴趣的:(flutter_boost学习1:iOS运行flutter_boost的Sample)