将 React Native 更新为 "react-native": "0.74.2" 后, 在 ios/pod 中添加了一个名为 PrivacyInfo.xcprivacy 的文件。但是,App Store 应用程序提交无法批准构建,并出现以下错误:
请更正以下问题并将新的二进制文件上传到 App Store Connect。
ITMS-91055:无效的 API 原因声明 - PrivacyInfo.xcprivacy 为了 “GoogleMaps.bundle/GMSCoreResources.bundle/GMSShaders.metallib”文件 包含“C617.1”作为 NSPrivacyAccessedAPITypeReasons 的值 键而不是在中使用 API 的有效原因代码 NSPrivacyAccessedAPICategoryUserDefaults 类别。值 任何隐私清单中的 NSPrivacyAccessedAPITypeReasons 密钥必须是 相应 API 类别的有效原因代码。了解更多 有关此政策的详细信息,包括所需原因 API 的列表 以及批准的使用理由,请访问: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api。
ITMS-91055:无效的 API 原因声明 - PrivacyInfo.xcprivacy 对于“Frameworks/libswift_Concurrency.dylib”文件包含“C617.1” 作为 NSPrivacyAccessedAPITypeReasons 键的值而不是 在以下位置使用 API 的有效原因代码 NSPrivacyAccessedAPICategoryUserDefaults 类别。值 任何隐私清单中的 NSPrivacyAccessedAPITypeReasons 密钥必须是 相应 API 类别的有效原因代码。了解更多 有关此政策的详细信息,包括所需原因 API 的列表 以及批准的使用理由,请访问: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api。
ITMS-91055:无效的 API 原因声明 - PrivacyInfo.xcprivacy 对于“AEO Middle East”文件包含“C617.1”作为 NSPrivacyAccessedAPITypeReasons 键而不是有效的原因代码 使用 NSPrivacyAccessedAPICategoryUserDefaults 类别中的 API。 任何隐私中 NSPrivacyAccessedAPITypeReasons 键的值 清单必须是相应 API 的有效原因代码 类别。有关此政策的更多详细信息,包括列表 所需原因 API 和批准的使用原因,请访问: https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api。
修复 1:修复PrivacyInfo.xcprivacy相关问题的通用解决方案。
根据提供的官方URL更新您的API:
我们以文件中的 API NSPrivacyAccessedAPICategoryActiveKeyboards 为例。
PrivacyInfo.xcprivacy
此 API 只有两个有效的 NSPrivacyAccessedAPITypeReasons:
3EC4.1 和 54BD.1
我们必须确保只使用其下的这些。如果我们添加任何其他NSPrivacyAccessedAPITypeReasons,将会导致问题。
修复2:即使您已删除并更正所有NSPrivacyAccessedAPITypeReasons,以防您仍然面临相同的问题。这可能是因为,在 pod 安装时,某些依赖项添加了不正确的 NSPrivacyAccessedAPITypeReasons。要解决此问题,请在 Podfile 中添加 privacy_file_aggregation_enabled: false:
use_react_native!(
# Disables the aggregation of privacy information from dependencies to prevent them from adding incorrect NSPrivacyAccessedAPITypeReasons
privacy_file_aggregation_enabled: false,
:path => config[:reactNativePath],
# An absolute path to your application root.
:app_path => "#{Pod::Config.instance.installation_root}/.."
)