为CocoaPods分发的iOS XCFramework SDK添加隐私清单遇问题
XCFramework隐私清单未被Apple识别的排查方案
核对隐私清单的位置与命名
确保PrivacyInfo.xcprivacy直接放在XCFramework各架构包内的Resources目录下,不能嵌套子文件夹;同时文件名必须严格匹配,Apple系统对文件名大小写敏感,不能出现拼写错误。调整podspec的资源配置方式
当前使用的s.resource_bundles会把隐私清单打包到独立的资源bundle中,但Apple要求隐私清单必须存在于框架主资源目录或App主bundle内,嵌套bundle里的清单不会被识别。建议修改podspec配置:s.resources = "Resources/PrivacyInfo.xcprivacy"验证XCFramework内部结构合规性
解压XCFramework检查每个架构的*.framework包,确认路径符合以下结构:MyFramework.xcframework ├── ios-arm64 │ └── MyFramework.framework │ ├── Resources │ │ └── PrivacyInfo.xcprivacy │ └── ... └── ios-arm64_x86_64-simulator └── MyFramework.framework ├── Resources │ └── PrivacyInfo.xcprivacy └── ...检查隐私清单内容的合法性
确保清单内的API理由填写完全符合Apple规范,比如使用NSPrivacyAccessedAPICategoryUserDefaults时,必须对应正确的NSPrivacyAccessedAPIType和理由值。可以用plutil工具验证语法:plutil -lint Resources/PrivacyInfo.xcprivacy若存在语法错误,系统会直接忽略整个清单文件。
客户端集成后的缓存清理与验证
让客户端执行pod deintegrate && pod install清理CocoaPods缓存后重新集成,集成完成后检查App最终bundle,确认PrivacyInfo.xcprivacy已被正确复制到SDK框架的Resources目录或App主bundle内。
内容的提问来源于stack exchange,提问作者smartsanja
相关产品推荐
相关产品推荐

