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 - 拒绝的主要内容,如果未能解决你的问题,请参考以下文章