React Native项目提交App Store遇ITMS-91064隐私清单错误求修复
React Native项目提交App Store遭ITMS-91064拒绝的修复方案
问题描述
提交React Native项目至App Store时收到Apple拒绝通知:
ITMS-91064: Invalid tracking information - A PrivacyInfo.xcprivacy file contains invalid tracking information at the following path: “Frameworks/SASDisplayKit.framework/PrivacyInfo.xcprivacy”.
NSPrivacyTracking must be true if NSPrivacyTrackingDomains isn‘t empty. Keys and values in your app’s privacy manifest must be valid.
已完成的操作:
- 在项目根目录的
PrivacyInfo.xcprivacy中添加了React Native官方提供的隐私清单配置:
<?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>NSPrivacyTrackingDomains</key> <array/> <key>NSPrivacyCollectedDataTypes</key> <array/> <key>NSPrivacyAccessedAPITypes</key> <array> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryFileTimestamp</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>C617.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryUserDefaults</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>CA92.1</string> </array> </dict> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategorySystemBootTime</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>35F9.1</string> </array> </dict> </array> <key>NSPrivacyTracking</key> <true/> </dict> </plist>
- 已将
react-native-firebase/analytics更新至最新版本19.2.2,但问题仍未解决。
修复方案
问题根源是第三方框架SASDisplayKit的隐私清单配置不符合Apple要求,而非你项目根目录的隐私文件。按以下步骤处理:
1. 更新SASDisplayKit至最新版本
优先检查SASDisplayKit是否有更新版本,多数第三方库会在后续版本中修复隐私清单合规问题。通过CocoaPods更新:
pod update SASDisplayKit
更新完成后重新打包提交,验证问题是否解决。
2. 手动修正SASDisplayKit的隐私清单
如果更新后问题依旧,手动修改框架内的隐私文件:
- 在Xcode项目的
Pods目录下找到SASDisplayKit.framework,右键选择「显示包内容」。 - 找到并打开
PrivacyInfo.xcprivacy文件。 - 根据Apple要求调整配置:
- 若框架需要追踪用户,确保
NSPrivacyTracking设为true,且NSPrivacyTrackingDomains填写合法的追踪域名数组。 - 若不需要追踪,将
NSPrivacyTrackingDomains设为空数组,同时把NSPrivacyTracking设为false。
- 若框架需要追踪用户,确保
- 保存修改后,清理项目缓存(
Cmd+Shift+K),重新打包提交。
3. 用Pod脚本自动修正(推荐)
为避免后续重新安装依赖时覆盖修改,可在项目的Podfile中添加post_install钩子,自动修正SASDisplayKit的隐私清单:
post_install do |installer| installer.pods_project.targets.each do |target| next unless target.name == 'SASDisplayKit' privacy_file_path = target.product_reference.dirname + 'PrivacyInfo.xcprivacy' next unless File.exist?(privacy_file_path) # 解析隐私清单文件 plist_content = Plist.parse_xml(privacy_file_path) # 方案1:如果框架需要追踪,确保NSPrivacyTracking为true plist_content['NSPrivacyTracking'] = true # 方案2:如果不需要追踪,清空追踪域名并设为false # plist_content['NSPrivacyTrackingDomains'] = [] # plist_content['NSPrivacyTracking'] = false # 保存修改后的文件 File.write(privacy_file_path, Plist::Emit.dump(plist_content)) end end
添加完成后,运行pod install重新安装依赖,再打包提交即可。
内容的提问来源于stack exchange,提问作者Mohamed Ahmed
相关产品推荐
相关产品推荐

