iOS应用商店NSBluetoothAlwaysUsageDescription-拒绝

时间:2019-09-19 10:38:46

标签: ios cordova cordova-plugins

我正在尝试将我的cordova应用放在iOS应用商店中。我正在使用cordova cli8。它不断被拒绝,并说以下错误:

  

App Store Connect亲爱的开发人员,

     

我们确定了您的应用最近交付的一个或多个问题,   “ MyApp” 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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

这可能对某些在应用程序内使用 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>