Cordova-ios 7.1.0提交App Store遇ITMS-91053隐私声明警告求助
解决Cordova iOS应用ITMS-91053隐私API声明缺失警告的排查方案
针对同环境同插件版本下部分应用出现ITMS-91053警告的问题,可按以下步骤排查解决:
1. 核对config.xml隐私清单配置的准确性
- 确认
<privacy-manifest>标签必须嵌套在<platform name="ios">节点内,全局配置不生效 - 检查API分类和理由的拼写:确保
NSPrivacyAccessedAPICategoryDiskSpace、NSPrivacyAccessedAPICategoryFileTimestamp无拼写错误,使用理由必须是Apple官方指定的枚举值(如NSDiskSpaceAccessedReasonCategorySystemFeatures、NSFileTimestampAccessedReasonCategorySystemFeatures,不可自定义) - 参考正确配置示例:
<platform name="ios"> <privacy-manifest> <access-api category="NSPrivacyAccessedAPICategoryDiskSpace" reason="NSDiskSpaceAccessedReasonCategorySystemFeatures" /> <access-api category="NSPrivacyAccessedAPICategoryFileTimestamp" reason="NSFileTimestampAccessedReasonCategorySystemFeatures" /> </privacy-manifest> </platform>
2. 验证Cordova生成的隐私清单文件
- 执行
cordova prepare ios后,打开Xcode工程:- 检查
AppName/Plugins目录下各插件是否生成了对应的PrivacyInfo.xcprivacy文件 - 确认主工程
Resources目录存在合并后的隐私清单文件,且已添加到"Build Phases" -> "Copy Bundle Resources"中
- 检查
- 若插件未生成该文件,说明插件的
plugin.xml可能未适配隐私清单配置,可尝试更新插件或手动补充
3. 排查插件依赖差异
- 执行
cordova plugin list对比正常应用和异常应用的完整插件列表(包括嵌套依赖),确认是否存在间接插件版本不一致的情况 - 尝试全量移除后重装插件:执行
cordova plugin remove --all,再逐个重新安装插件,每次安装后执行cordova prepare ios检查隐私清单生成情况
4. 手动添加隐私清单文件
若Cordova自动合并逻辑失效,可手动创建PrivacyInfo.xcprivacy文件,放置在主工程的Resources目录下,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>NSPrivacyAccessedAPITypes</key> <array> <dict> <key>NSPrivacyAccessedAPICategory</key> <string>NSPrivacyAccessedAPICategoryDiskSpace</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>NSDiskSpaceAccessedReasonCategorySystemFeatures</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPICategory</key> <string>NSPrivacyAccessedAPICategoryFileTimestamp</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>NSFileTimestampAccessedReasonCategorySystemFeatures</string> </array> </dict> </array> </dict> </plist>
添加后需在Xcode中确认该文件已被纳入打包资源。
5. 清理构建缓存
- 执行
cordova clean ios清除Cordova侧缓存 - 在Xcode中执行"Product" -> "Clean Build Folder",并删除
~/Library/Developer/Xcode/DerivedData目录下的对应工程缓存 - 重新构建归档并提交审核
内容的提问来源于stack exchange,提问作者Dylan
相关产品推荐
相关产品推荐

