应用程序被拒绝:缺少Info.plist密钥“NSBluetoothPeripheralUsageDescription”但框架不存在

时间:2017-05-16 14:14:16

标签: ios xcode cordova

我有一个在iOS手机中运行的Cordova应用程序。我正在尝试将此应用程序的更新发送到App Store,但它被拒绝了。首先它被拒绝了,因为info.plist包含一个带有密钥NSBluetoothPeripheralUsageDescription的行,并且此功能从未在我的应用中使用。为了解决这个问题,我从info.plist中删除了这一行,并且xCode中的链接框架和库中的相应框架(框架CoreBluetooth.framework和行NSBluetoothPeripheralUsageDescriptionCordova Diagnostic Plugin添加) ,如下图所示: Linked Frameworks and Libraries

但是现在我收到来自iTunes Connect的电子邮件说:

  

缺少Info.plist密钥 - 此应用尝试访问隐私敏感   没有使用说明的数据。应用程序的Info.plist必须包含   带字符串值的NSBluetoothPeripheralUsageDescription键   向用户解释应用程序如何使用此数据。

但是我从xCode项目中删除了CoreBluetooth.framework ...

我的问题是:我需要从其他地方删除此框架?是否有其他框架能够使用蓝牙导致此问题?

感谢您的帮助。

4 个答案:

答案 0 :(得分:3)

打开Info Plist文件并按+符号在项目的info.plist中添加新密钥并添加 NSBluetoothPeripheralUsageDescription 并写入值“解释蓝牙的原因”

检查enter image description here

下方的屏幕截图

答案 1 :(得分:1)

对于您或您链接的任何内容尝试访问的任何内容,这些描述都是必需的。如果未提供使用说明,则在尝试访问内容时会生成错误,因此如果您收到这些错误,您的应用必须请求它们。您应该发现您的应用或其框架需要这些内容的原因,并在您的应用的info.plist中添加适当的使用说明。

或者更理想的情况是,如果您不需要访问权限,请查看是否有办法不请求它(或使用不必要的框架)。

暂时您可以在info.plist中添加以下说明并提交您的应用(如果有紧急应用更新)

<key>NSCalendarsUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Explain the reasons for accessing...</string>
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>Explain the reasons for accessing...</string>

只需打开您的info.plist并相应添加上面的代码。

enter image description here

答案 2 :(得分:0)

尝试在您的plist中添加以下内容。它解决了我的问题。

<config-file parent="NSPhotoLibraryUsageDescription" platform="ios" target="*-Info.plist">
        <string>YourAppName would like to store a photo.</string>
    </config-file>

答案 3 :(得分:0)

似乎您不能使用通用文本字符串,例如:

  

我们需要访问您的蓝牙连接。

我有这样的事情,被拒绝了。当我有更详细的描述,例如:

  

我们需要访问您的蓝牙连接才能从您的设备上传数据   崩溃报告的设备。

我被批准了。