小编Pin*_*ier的帖子

App Store Connect 应用程序拒绝缺少目的字符串,但字符串存在于 InfoPlist.strings 中

我正在开发一个 Flutter 应用程序并将其提交到 App Store Connect,并立即收到一封电子邮件,表明该应用程序因以下原因被拒绝

ITMS-90683:Info.plist 中缺少用途字符串 您的应用程序代码引用了一个或多个访问敏感用户数据的 API。应用程序的 Info.plist 文件应包含一个 NSContactsUsageDescription 键,其中包含面向用户的目的字符串,清楚、完整地解释应用程序需要数据的原因。从 2019 年春季开始,提交到 App Store 的所有访问用户数据的应用程序都必须包含目的字符串。如果您使用外部库或 SDK,它们可能会引用需要用途字符串的 API。虽然您的应用程序可能不使用这些 API,但仍然需要目的字符串。您可以联系库或 SDK 的开发人员,请求他们发布不包含 API 的代码版本。了解更多信息(https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy)。

据说缺少 5 个目的字符串。

没错,我的应用程序正在使用电子邮件中列出的 API,但我的 Info.plist 文件中有密钥,并且在我的 iPhone 上运行该应用程序时,当应用程序向用户请求相应的权限时,会显示目的字符串。我什至使用 en.lproj 等文件夹中的 InfoPlist.strings 文件翻译了字符串。在 Info.plist 中,我像这样引用了翻译后的字符串

<key>NSContactsUsageDescription</key>
<string>$(NSContactsUsageDescription)</string>
Run Code Online (Sandbox Code Playgroud)

我已经尝试解压 .xcarchive(在 Mac Finder 中右键单击 -> 显示包内容)和 .ipa 文件。在其中我找到了 Runner.app(我认为 Runner 是 Fl​​utter 特定的“名称”),并且还显示了包内容。我找到了 Info.plist,当我在 TextEditor 或 XCode 中打开它时,字符串消失了,但 InfoPlist.strings 文件仍然存在。

Xcode 显示目的字符串在归档后在 Info.plist 中丢失

我认为导出时出现问题,导致值被清除?

internationalization info.plist ios app-store-connect

6
推荐指数
1
解决办法
6612
查看次数