App Store 审核被拒绝 - 应用权限请求语言

App Store review rejected - app permission request language

我的申请被拒绝了,原因如下 -

Guideline 4 - Design

  • Your app's permissions requests are written in Ukrainian while the app is set to the Romanian localization. To help users understand why your app is requesting access to a specific feature, your app's permission requests should be in the same language as your app's current localization.

应用程序需要同时支持罗马尼亚语(Language A) 和乌克兰语(Language B) 本地化。应用程序字符串以通常的方式本地化,没有什么特别的 - 一个支持 2 种语言的 Localizable.strings 文件 - A and B。效果很好,没有异议。当我从 iOS 设置更改应用程序语言时 - 一切正常。

但是,当我进行应用程序权限提醒本地化时,问题出现了(如 Apple 所说)。我的应用程序同时使用相机和位置(显示嵌入式地图视图)权限。为了实现这种本地化,我使用众所周知的方法将 InfoPlist.strings 文件放入我的应用程序中,基本上只是将这 2 个权限本地化为 A 和 B 语言.

/* Camera permission usage description */
"NSCameraUsageDescription" = "...";

/* Location permission usage description */
"NSLocationWhenInUseUsageDescription" = "...";

因此,现在的行为是应用程序正在使用应用程序 iOS 设置中设置的语言进行本地化,而应用程序权限警报正在将其语言作为 iOS系统首选语言。意味着如果我在 language A 上有一个 iOS 设备 运行ning 但在 language B 上将我的应用程序设置为 运行,该应用程序实际上 运行 language B 但那些相机和位置权限对话框将在 language A 上 运行 宁。

我看不出有什么问题,很明显 iOS 正在向您显示有关您首选语言的系统警报。但是现在我的应用程序不断被拒绝,要求应用程序权限警报也应该像应用程序的其余部分一样在 language B 上 运行ning。

那么,我该如何实现呢?也许我做错了什么?两个本地化文件似乎都有效,因为我能够重现案例 iOS - B, app - A and iOS - A, app - A.

或者我太笨了,误解了 Apple 的意思?如果需要,我可以在这里分享消息历史记录,但基本上他们只是说:

Upon further review, we continue to find that the app's location permission request is written in Ukrainian while the app is set to the Romanian localization. Please note that your app's permission requests should be in the same language as your app's current localization.

更新:

苹果评论 03.05 回复:

花费更多时间进行调查、尝试和失败,我们设法找到了解决方案。

首先,Apple 把一个问题解释得很清楚。这就是为什么它让我误入歧途。问题应该是以下 -

当您 运行 应用程序使用的语言不在您的首选语言列表中时。在我的例子中,应用程序是罗马尼亚语,设备 iOS 语言设置为英语,没有配置额外的语言(空的首选语言列表)。这样,应用程序将使用罗马尼亚语,相机权限警报也使用罗马尼亚语,而位置权限警报使用乌克兰语

我第一次看到 Info.plist 文件中的单个 属性,修复非常简单 - CFBundleLocalizations 您基本上只提供了一个语言列表您的应用支持。

结论:在iOS系统首选语言中出现的系统权限警告的行为是可以的,并且按照Apple的设想工作。但可能会有 none 种应用程序支持的语言出现在 iOS 系统首选语言列表中的情况,这会导致在 运行 时间内应用程序中出现多种语言,这可能成为潜在的 Apple 评论拒绝原因。