iossecurityapp-store-connectios10instabug

The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data


Got a build rejection The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data.

The app does not use microphone. Or so I think.

How do I track down where mic is used?

UPD23112016: given that the lazy answer is being upvoted I've filed a new feature request with apple to close this security hole.

UPD05042017: it is still bothersome that once you proxy mic access into some 3rd party framework via some half baked NSMicrophoneUsageDescription you have zero control on where and when it can be used if user agrees to allow mic access. Folks, please do due diligence and craft precise NSMicrophoneUsageDescription that reflects on the fact that the mic is used by the code that's completely outside of your control when the usage is obscured by a 3rd party binary-only framework. Thanks.

UPD2021: Apple did what they could with audit trail for shared resource (such as mic) usage in the latest iOS so the users have some recourse checking when actual access has happened. Nice try, but how many are gonna do the due diligence though?

UPD2022: Apple added summary of the audit trail to the lock screen in iOS 16 so you can see offenders like MapsMe to get rid of spyware.


Solution

  • Just add NSMicrophoneUsageDescription key & in value add the justification that why your app is using Microphone. This is the latest requirement in iOS 10.