iOS 应用商店 NSBluetoothAlwaysUsageDescription - 拒绝

Posted

技术标签:

【中文标题】iOS 应用商店 NSBluetoothAlwaysUsageDescription - 拒绝【英文标题】:iOS app store NSBluetoothAlwaysUsageDescription - rejection 【发布时间】:2019-09-19 10:38:46 【问题描述】:

我正在尝试将我的 cordova 应用程序放到 ios 应用程序商店。我正在使用cordova cli 8。它一直被拒绝并说这个错误:

App Store Connect 尊敬的开发者,

我们发现您的应用最近交付的一个或多个问题, “我的应用程序”4.19.2 (4.19.2.4)。请更正 以下问题,然后重新上传。

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

最好的问候,

App Store 团队

这很奇怪,因为我可以在 Info.plist 文件和 config.xml 文件中看到该字符串。

我不知道为什么它总是被拒绝。我的应用本身不使用蓝牙,它只是有一些包含在其中的 cordova 插件。

Info.plist

config.xml file

【问题讨论】:

类似的问题和答案可以在这里找到***.com/questions/57987863/… 【参考方案1】:

最初对我有用的一件事是在 config.xml 中设置诊断插件的值并更新平台/ios 文件夹下的 ios.json 文件以删除对蓝牙的所有引用。我还读到您需要更新 frameworks.json 但如果我删除了它,则构建失败。我考虑将值更改为 0,但是当我尝试使用其他更改时,它工作了一段时间。

config.xml 更改(平台节点之外):

<preference name="cordova.plugins.diagnostic.modules" value="LOCATION WIFI CAMERA NOTIFICATIONS MICROPHONE CONTACTS CALENDAR REMINDERS MOTION NFC EXTERNAL_STORAGE" />

并删除 ios.json 中对蓝牙的所有引用。

【讨论】:

【参考方案2】:

这可能对在应用内使用 Zoom iOS SDK 的人有用

当我上传二进制文件时,Xcode 说应用已成功上传……但我收到了一封来自 App Store Connect 的电子邮件,其中包含两个问题:

第一个问题:NSBluetoothPeripheralUsageDescription 是必需的

秒秒:NSBluetoothAlwaysUsageDescription 可以放宽

我已经提供了首期的目的说明。这次应用可以通过 TestFlight 进行测试。

因此,最好在info.plist 中为以下两个问题提供描述。

<key>NSBluetoothAlwaysUsageDescription</key>
<string>Some useful description: </string>

<key>NSBluetoothPeripheralUsageDescription</key>
<string>Some useful description: </string>

【讨论】:

【参考方案3】:

您需要在 NSBluetoothAlwaysUsageDescription 中指定使用蓝牙的原因和位置以及位置。然后重新提交,他们会接受的。

【讨论】:

但我根本没有使用它。有一个使用它的cordova插件,但我不使用它。科尔多瓦诊断 然后删除它。 @AubreyQuinn 我不认为它会让我。再次构建项目时,它总是将其添加回来。 如果您不使用蓝牙,则将其移除,如果您使用蓝牙,请使用正确的描述说明原因。它们仅因您的描述而被拒绝。我已经阅读了你的描述,它没有说明它在哪里使用。您的描述是“蓝牙用于帮助确定位置”。 @AubreyQuinn,cordova-diagnostic 插件有很多功能模块,蓝牙就是其中之一。而且您可以轻松选择不安装您不使用的模块。您只需在 config.xml 中的 下指定。例如

以上是关于iOS 应用商店 NSBluetoothAlwaysUsageDescription - 拒绝的主要内容,如果未能解决你的问题,请参考以下文章

如何获取 iOS 应用商店评论页面的 URL

代号一 发送IOS应用商店构建

从应用商店更新后,iOS 应用在启动时崩溃

iOS 应用商店 NSBluetoothAlwaysUsageDescription - 拒绝

曝苹果应用商店逾千款iOS应用存安全漏洞

有没有办法直接下载iOS应用(不使用应用商店)