iOS 应用商店 NSBluetoothAlwaysUsageDescription - 拒绝

iOS app store NSBluetoothAlwaysUsageDescription - rejection

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

App Store Connect Dear Developer,

We identified one or more issues with a recent delivery for your app, "MyApp" 4.19.2 (4.19.2.4). Please correct the following issues, then upload again.

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSBluetoothAlwaysUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

Best regards,

The App Store Team

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

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

Info.plist

config.xml file

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

最初对我有用的一件事是在 config.xml 中设置诊断插件的值并更新 platforms/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 中对蓝牙的所有引用。

This might be useful to some one, who use Zoom iOS SDK inside the app

当我上传二进制文件时,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>