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>
我正在尝试将我的 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>