0

I have submitted ionic app to App store but it asks me to add reference to the info.plist file. Following is the error.

ITMS-90683: Missing Purpose String in Info.plist - Your app's code references one or more APIs that access sensitive user data. The app's Info.plist file should contain a NSBluetoothAlwaysUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you're using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn't contain the APIs.

But my project doesn't use Bluetooth.

How to get rid of this error and how to remove api reference that is not in use. I am new to xcode and iOS.

Common Tt
  • 181
  • 1
  • 6
  • Are you using any Plugin related to Bluetooth? if yes remove that plugin. otherwise add usage description. – Najam Us Saqib Sep 19 '19 at 07:29
  • A similar question and answer can be found here https://stackoverflow.com/questions/57987863/nsbluetoothalwaysusagedescription-required-but-bluetooth-is-not-used – Maurice Sep 19 '19 at 13:20
  • this issue is happening on ios 13 because of `cordova.plugins.diagnostic` plugin. I also want to know how to get rid of this. did you found the solution already? – Ragesh Pikalmunde Oct 17 '19 at 11:41

3 Answers3

3

Check if any of your external libraries are using Bluetooth. Search for "NSBluetoothAlwaysUsageDescription" in the whole project, normally if a library uses Bluetooth, you will find it in its Info.plist

If you have to use that library, just add that purpose string to the Info.plist of the main project to make Apple happy.

Duy Le
  • 87
  • 3
1

I have the same problem with an app and added the NSBluetoothAlwaysUsageDescription; Apple has subsequently rejected it saying they could not identify any Bluetooth functionality in the app and to remove the permission key. So now I'm stuck.

S. Hines
  • 101
  • 1
  • 7
1

In my case (an Ionic 3 app), despite not explicitly including cordova.plugins.diagnostic, its bluetooth dependency was being brought into my iOS build and resulting in the same warning on submission to apple.

To correct I first added this line to config.xml (which basically says we don't want to bring in any of the diagnostic modules):

<preference name="cordova.plugins.diagnostic.modules" value="" />

Then ran the following to add it to my project:

ionic cordova plugin add cordova.plugins.diagnostic

And after removing and re-adding the ios platform the generated Xcode project no longer had the bluetooth dependency and I was able to submit to Apple without any problems.

John Conners
  • 189
  • 1
  • 4