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.
For the lazy:
if you want to quickly add usageDescriptions for most media access (on-device photos, camera, video recording, location):
right click your info.plist file and -> open as -> Source Code
then paste the following between the current values:
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for uploading videos</string>
<key>NSCameraUsageDescription</key>
<string>Need camera access for uploading images</string>
<key>NSLocationUsageDescription</key>
<string>Need location access for updating nearby friends</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app will use your location to show cool stuffs near you.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Need photo library access for uploading images</string>
These descriptions, of course, are up to you. I tried to make them as generic as possible.
Hope this saves someone's time!