cocoaPods集成本地flutter项目及远程flutter项目
1、新建iOS原生项目,如果已经有flutter项目可忽略;
NativeProject,如下图:

2、创建flutter 模块项目,如果已经有flutter项目可忽略;
3、清理flutter项目
命令:flutter clean

4、导出flutter framework包到组件库 (库名、文件夹夹名称自定义)
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

分类:
Extension
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2020-07-01 iOS10以上打包只有arm64 clang: error: invalid iOS deployment version '--target=armv7-apple-ios11.0', iOS 10 is the maximum deployment target for 32-bit targets [-Winvalid-ios-deployment-target]