Ios – Why app is rejected with “Missing Purpose String in Info.plist File” for NSBluetoothPeripheralUsageDescription key

app-storebluetoothiosobjective cxcode

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.

?

Best Answer

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

Related Topic