【问题标题】:Why app is rejected with "Missing Purpose String in Info.plist File" for NSBluetoothPeripheralUsageDescription key?为什么应用程序因 NSBluetoothPeripheralUsageDescription 键的“Info.plist 文件中缺少目的字符串”而被拒绝?
【发布时间】:2019-04-24 23:35:37
【问题描述】:

所以我有 info.plist:

<key>NSBluetoothPeripheralUsageDescription</key> <string>Bluetooth is required bla bla.</string>

我什至已经将它本地化为两种支持的语言。

然后添加InfoPlist.strings文件并添加:

"NSBluetoothPeripheralUsageDescription" = "Bluetooth is required bla bla bla";

并且也对其进行了本地化...

在应用目标的功能中,我为后台模式添加了蓝牙。

我只使用标准的 BLE api,没有外部库。

为什么我不断收到一封电子邮件:

尊敬的开发者,

我们发现您的应用“bla”最近交付的一个或多个问题。请更正以下问题,然后重新上传。

Info.plist 文件中缺少用途字符串 - 您的应用代码引用了一个或多个访问敏感用户数据的 API。应用程序的 Info.plist 文件应包含一个 NSBluetoothPeripheralUsageDescription 键和一个面向用户的目的字符串,清楚而完整地解释您的应用程序需要数据的原因。

?

【问题讨论】:

标签: ios objective-c xcode bluetooth app-store


【解决方案1】:

通过将使用说明字符串也添加到“自定义 iOS 目标属性”来解决。

【讨论】:

  • 看起来你的项目中有两个 info.plist 文件 :)
  • “自定义 iOS 目标属性”是什么意思?
  • @Nirav 在 Xcode11 中,当您选择 Target 时,您有几个选项卡:General、Signing & Capabilities、Build Settings、Info...。嗯,在Info里面,可以看到“Custom iOS Target Properties”字典,我觉得应该和使用的.plist文件一样。
【解决方案2】:

使用蓝牙描述不清楚,你的APP为什么要使用这个功能的目的,使用该功能的用途必须描述清楚。

【讨论】:

    【解决方案3】:

    您应该进一步说明为什么您使用蓝牙作为密钥 NSBluetoothPeripheralUsageDescription。

    应用程序提供商必须分享您使用特定服务的具体原因。

    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>Bluetooth is used to communicate with BLE devices.</string>
    

    另外,您需要检查与您的项目设置关联的 .plist 文件。

    您可以使用 Info.plist 文件部分的目标设置来检查它。

    选择目标 -> 构建设置 -> 打包 -> Info.plist 文件

    【讨论】:

      【解决方案4】:

      您应该添加关于您当前应用程序为什么需要使用该功能的准确描述。

      例如: 如果使用蓝牙解锁自行车锁

      NSBluetoothPeripheralUsageDescription

      您可以通过蓝牙解锁自行车锁。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-15
        • 2017-12-30
        • 2019-09-23
        • 2019-05-05
        • 2019-04-28
        • 1970-01-01
        • 2017-02-11
        相关资源
        最近更新 更多