iOS App上传更新仍收ITMS-91053邮件,PrivacyInfo文件问题排查
以下是几个常见的排查方向,按优先级逐一检查:
隐私清单的键值配置是否准确
确保PrivacyInfo.xcprivacy里的NSPrivacyAccessedAPITypes数组包含正确的字典结构:<key>NSPrivacyAccessedAPITypes</key> <array> <dict> <key>NSPrivacyAccessedAPICategory</key> <string>NSPrivacyAccessedAPICategoryUserDefaults</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>CA92.1</string> <!-- 填写符合你使用场景的官方理由码,比如CA92.1对应存储用户偏好设置 --> </array> </dict> </array>注意理由码必须是Apple官方认可的固定值,不能自定义字符串,且类别名称拼写完全一致(大小写敏感)。
确认文件已关联到目标Target
在Xcode中选中PrivacyInfo.xcprivacy,查看右侧「File Inspector」的「Target Membership」,确保你要上传的App Target已经被勾选。如果没勾选,这个文件不会被打包进IPA,自然不会被Apple检测到。检查第三方依赖的隐私声明
很多第三方SDK(比如统计、推送库)也会使用UserDefaults,如果这些库没有自带合规的隐私清单,你需要在主项目的PrivacyInfo.xcprivacy中补充这个类别的声明(即使你的代码没直接用,只要依赖库用了就需要)。可以查看第三方库的文档或代码确认是否存在此类调用。验证文件命名和格式
文件必须严格命名为PrivacyInfo.xcprivacy,不能改成其他名字(比如PrivacyInfo.plist)。如果是手动编辑的plist文件,要确保XML格式没有语法错误(比如缺失闭合标签、引号不匹配),建议直接用Xcode的「File > New > File... > Resource > Privacy Info File」创建,避免格式问题。清理缓存后重新构建
Xcode的缓存可能导致旧的配置被重复打包。执行「Product > Clean Build Folder」(快捷键Shift+Cmd+K),然后重新Archive并上传,确保最新的隐私清单被包含进去。排查是否存在多个隐私清单文件
如果项目中存在多个PrivacyInfo.xcprivacy文件(比如不同Target下的),可能会导致冲突。确保只有当前上传Target对应的隐私清单被正确配置并关联。
内容的提问来源于stack exchange,提问作者oscarabilleira

