如何确保CocoaPods发布的开源SDK中PrivacyInfo.xcprivacy被正确识别?
解决CocoaPods发布SDK中PrivacyInfo.xcprivacy不被识别的问题
调整文件位置与podspec配置
建议将PrivacyInfo.xcprivacy从Sources目录移到单独的Resources目录(比如MYSDK/Resources/),避免源码目录和资源目录混淆。同时修正podspec的资源路径,确保路径相对于podspec文件的位置准确:spec.resource_bundles = { "MYSDK" => ["MYSDK/Resources/PrivacyInfo.xcprivacy"] }若你的SDK是静态库,需确认
resource_bundles配置正确——静态库本身不包含资源,必须通过该配置将资源打包为独立bundle,才能被App识别。检查SDK target的构建配置
- 动态库SDK:打开SDK的Xcode项目,确认
PrivacyInfo.xcprivacy已添加到target的Copy Bundle Resources构建阶段。 - 静态库SDK:无需在SDK target中添加该文件,确保podspec的
resource_bundles配置正确即可,CocoaPods会自动处理资源打包。
- 动态库SDK:打开SDK的Xcode项目,确认
验证Pod安装后的资源结构
执行pod install后,打开Pods项目,找到MYSDK.bundle,检查内部是否包含PrivacyInfo.xcprivacy。如果缺失,说明podspec的路径配置有误,需重新核对文件相对路径。检查App的IPA包结构
构建并导出App的IPA包,解压后查看:- 动态库SDK:路径为
Payload/YourApp.app/Frameworks/MYSDK.bundle - 静态库SDK:路径为
Payload/YourApp.app/MYSDK.bundle
确认该bundle内存在PrivacyInfo.xcprivacy,若不存在,需重新检查podspec配置和Pod安装过程。
- 动态库SDK:路径为
清理缓存重新构建
执行以下操作彻底清理缓存,避免旧配置干扰:- 清理Pod缓存:
pod cache clean MYSDK - 清理Xcode缓存:使用
Cmd+Shift+K清理项目,手动删除DerivedData目录 - 重新执行
pod install,并重新构建App和SDK
- 清理Pod缓存:
内容的提问来源于stack exchange,提问作者cbg_retro
相关产品推荐
相关产品推荐

