返回
React Native iOS 提交时如何解决 ITMS-91053 错误:受限 API 声明缺失
IOS
2024-03-13 14:44:57
React Native iOS 提交问题:ITMS-91053 API 声明缺失
什么是 ITMS-91053?
最近,许多 React Native iOS 应用开发人员在提交 App Store 时遇到一个令人头疼的问题:ITMS-91053。此错误表明应用程序代码使用了受限的 API,而这些 API 需要在 Info.plist 文件中声明原因。
问题背后的原因
此错误的根源在于 Apple 在 iOS 14 中引入的新隐私保护措施。为了提高用户隐私,Apple 要求开发者明确声明应用程序使用的受限 API。这些 API 涵盖范围广泛,从访问磁盘空间到文件时间戳等各种功能。
解决 ITMS-91053 问题的步骤
解决此问题的方法是将受限 API 声明添加到 Info.plist 文件中。具体步骤如下:
- 在 Xcode 项目中打开 Info.plist 文件。
- 添加
NSAppTransportSecurity
字典。 - 在该字典中,添加
NSPrivacy
数组。 - 在该数组中,添加你使用的受限 API 类别字符串。例如:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSPrivacy</key>
<array>
<string>NSPrivacyAccessedAPICategoryDiskSpace</string>
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<string>NSPrivacyAccessedAPICategorySystemBootTime</string>
</array>
</dict>
第三方库中的受限 API
如果你使用的是第三方库或插件,请务必查阅其文档,以了解他们使用的受限 API。相应地更新你的 Info.plist 文件,以包括这些受限 API。
避免 ITMS-91053 的最佳实践
为了避免此问题,请遵循以下最佳实践:
- 仅声明你应用程序实际使用的受限 API。
- 使用已声明隐私声明的第三方库。
- 定期检查 Apple 的文档,了解最新的隐私要求。
常见问题解答
1. 我如何确定我使用了哪些受限 API?
使用 Xcode 的静态分析工具或像 react-native-permissions 这样的第三方库。
2. 我可以使用相同的 Info.plist 文件提交到多个 iOS 版本吗?
不,你需要为每个目标 iOS 版本提供不同的 Info.plist 文件。
3. 我在哪里可以找到受限 API 的完整列表?
Apple 的 隐私框架参考 中提供了受限 API 的完整列表。
4. 如果我忘记声明受限 API 会怎样?
你的应用将被拒绝进入 App Store。
5. 还有其他方法可以解决 ITMS-91053 吗?
除了在 Info.plist 文件中声明受限 API 之外,没有其他已知的方法来解决此错误。