cocoaPods集成本地flutter项目及远程flutter项目

1、新建iOS原生项目,如果已经有flutter项目可忽略;

NativeProject,如下图:

2、创建flutter 模块项目,如果已经有flutter项目可忽略;

3、清理flutter项目

命令:flutter clean

4、导出flutter framework包到组件库 (库名、文件夹夹名称自定义)

这里的XPXFlutterKit是组件库,创建组件库可参考组件库https://www.cnblogs.com/lulushen/p/14798834.html
FlutterFrameWork是创建的文件夹,放置framework,可以重命名
命令:flutter build ios-framework --no-debug --no-profile --output=../XPXFlutterKit/XPXFlutterKit/FlutterFrameWork
 
上述命令导出的是xcframework,并且包含x86_64架构,如果单个删除比较麻烦,打包时删除没有找到相关命令,这里使用arm64_armv7里面framework
命令:
mv ../XPXFlutterKit/XPXFlutterKit/FlutterFrameWork/Release/*.xcframework/ios-arm64_armv7/*.framework ../XPXFlutterKit/XPXFlutterKit/FlutterFrameWork
 
移动之后要删除xcframework
rm -rf ../XPXFlutterKit/XPXFlutterKit/FlutterFrameWork/Release

 

 

5、 优化Flutter.framework包体积,剥离bitcode相关的代码和资源

路径根据实际情况修改
命令: xcrun bitcode_strip -r ../XPXFlutterKit/XPXFlutterKit/FlutterFrameWork/Flutter.framework/Flutter -o ../XPXFlutterKit/XPXFlutterKit/FlutterFrameWork/Flutter.framework/Flutter

6、打开XPXFlutterKit组件库项目,在XPXFlutterKit.podspec配置相关信息,如下图

cd 到Example文件夹下执行pod install, 执行完成之后,如下图可以看到相关framework
由于flutter.framework剥离了bitcode,所以在运行Example项目时需要Enable Bitcode为NO
flutter相关framework只保留了arm64、armv7架构,不支持模拟器架构,所以需要真机运行

7、本地验证此组件库pod能否通过验证: pod lib lint --use-libraries --allow-warnings 

可能出现的问题,flutter相关farmework仅保留了arm64 armv7架构,如果设置s.pod_target_xcconfig = { 'VALID_ARCHS' => 'armv7 arm64' }会出现一下问题,需要加上x86_64 
s.pod_target_xcconfig = { 'VALID_ARCHS' => 'x86_64 armv7 arm64' }

8、提交到远程组件库XPXFlutterKit及远程验证

使用Sourcetree或者终端提交都可以;
pod spec lint --use-libraries --allow-warnings
 
可能会出现的问题:
下图中的问题是podSpec中的版本和远程tag不对应,可使用git命令提交时加上tag或远程代码管理工具手动创建tag
 
 

9、将组件项目的.podspec 文件提交到本地的私有索引仓库,然后再push到远程私有索引仓库 pod repo push XPXFlutterSpecs XPXFlutterKit.podspec --use-libraries --allow-warnings

 

 

10、使用终端查看组件库

pod search XPXFlutterKit
 

11、原生项目使用flutter组件库

要设置Bitcode
 
 
posted @ 2022-07-01 11:25  Belinda_sl  阅读(776)  评论(0编辑  收藏  举报