如何通过CocoaPods正常分发可用的XCFramework二进制Pod
CocoaPods 源码组件二进制分发相关问题
基本现状
- 已在Stack Overflow及各类公开技术资源上检索大量相关主题,排除了基础配置类的常见错误
- 已完成前置准备工作:创建包含独立framework target的测试项目,编写了引用待打包源码Pod的Podfile
核心目标
- 开发可正常运行的CocoaPods组件
- 生成可通过CocoaPods通道分发的XCFramework格式二进制产物
- 接入侧完全无感知:无需手动区分源码版本与二进制版本,使用体验保持一致
已尝试的方案与遇到的异常
- 第一套方案:在Podfile中开启
use_frameworks!标记,通过xcodebuild archive、xcodebuild -create-xcframework命令构建XCFramework,最终产物体积极小,几乎未包含组件内部代码 - 第二套方案:在Podfile中开启
use_modular_headers!标记后重新构建,得到体积约27MB、包含完整内部代码的XCFramework,但将该产物接入其他项目时无法正常编译运行 - 自定义模块配置尝试:在Podspec中设置
s.module_map = "MyFramework.modulemap",配置的modulemap内容为:
framework module MyFramework { module * { export * } }
但搭配Podspec的s.vendored_frameworks字段使用时,该自定义modulemap会被CocoaPods忽略
- 插件方案尝试:使用
cocoapods-packager插件完成打包,发现该插件已严重过时,无法适配现有开发环境
待解答问题
- 是否存在可快速对现有CocoaPods Pod完成打包的便捷方案?
- 如何调整配置,让生成的XCFramework正常对外暴露其包含的依赖包,解决接入异常问题?
- 除XCFramework外,是否存在可满足上述分发需求的替代方案?
内容的提问来源于stack exchange,提问作者Yanny
相关产品推荐
相关产品推荐

