9

So I have info.plist with:

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

I even had localised it for both supported languages.

Then added InfoPlist.strings file and added:

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

And localised it too...

In capabilities for the app target I added bluetooth for background modes.

I only use standard BLE api and no external libraries.

Why do I keep getting an email with:

Dear Developer,

We identified one or more issues with a recent delivery for your app, "bla". Please correct the following issues, then upload again.

Missing Purpose String in Info.plist File - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSBluetoothPeripheralUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data.

?

Ivan
  • 1,320
  • 16
  • 26

4 Answers4

6

You should add more clarification of why you are using bluetooth for the key NSBluetoothPeripheralUsageDescription.

It is mandatory for the application provider to share the specific reason why you're using the specific services.

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

Also, you need to check which is the .plist file associated with your project settings.

You can checkout it with your target settings with Info.plist file section.

Select Target -> Build Settings -> Packaging -> Info.plist file

Vatsal K
  • 1,031
  • 10
  • 31
2

Solved by adding the Usage Description Strings also to the "Custom iOS Target Properties".

Ivan
  • 1,320
  • 16
  • 26
  • Look's like you have two info.plist files in your project :) – Cy-4AH Nov 22 '18 at 15:34
  • 2
    What do you mean by saying "Custom iOS Target Properties"? – Nirav Jain Oct 04 '19 at 13:25
  • 1
    @Nirav In Xcode11, when you select the Target, you have several tabs: General, Signing & Capabilities, Build Settings, Info... . Well, inside Info, you can see the "Custom iOS Target Properties" dictionary, which I think should be the same as the .plist file used. – Koesh Oct 30 '19 at 09:54
1

Using Bluetooth description is not clear, the purpose of why your APP to use this feature, the use of the function is used must be described clearly.

Ken_Huang
  • 11
  • 1
0

You should add the accurate describtion about your current app about why need to use such function。

For example: if bluetooth is used to unlock the bicycle lock

NSBluetoothPeripheralUsageDescription

you can unlock the bicycle lock by Bluetooth .