What triggers requests for "usage descriptions"?

I work on an iOS application for a customer who manages the App Store uploading. Their latest submission was rejected with the messages:


"This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSBluetoothPeripheralUsageDescription key with a string value explaining to the user how the app uses this data.

This app attempts to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data."


I'd be fine with doing that except for the fact that our app doesn't use either Bluetooth or a microphone.


I'm assuming that some 3rd-party (or Apple) library brings in references that could potentially make use of these features. How do I detect the root cause of the rejection so that I can either remove it or explain it?

Replies

I faced the same issue.

For me, I guess reason is cordova.plugins.diagnostic .

But I don't use bluetooth functions of this plugin.

Have no idea how to deal with it.

This is a recurring issue. How did you guys get around it? Did you just make up some "excuse" description for it or did Apple accept the explanation that you don't really invoke these?


I'm facing the same problem and found this other question (https://forums.developer.apple.com/message/308163#308163) where somenone else is also asking for a way to proactively tell what usage descriptions any third party libraries may need before it gets submitted. I've also asked this question in StackOverflow (https://stackoverflow.com/q/53710674/4124574). No clear answer yet.