NSMicrophoneUsageDescription Missing When Uploading To Apple App Store

2398
4
08-23-2019 01:31 PM
ChristopherEby2
New Contributor III

I am trying to upload a new version of our customized Survey123 app to the Apple App Store. I last successfully submitted a new version to TestFlight on 8/15/2019 but now when I go to upload a new build Apple is rejecting it with the following 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 NSMicrophoneUsageDescription 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. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

I found this issue: iOS app crash relating to Info.plist and so I added the microphoneUsageDescription to my appinfo.json but it still doesn't work. Here's what my appinfo.json looks like:

{
   "arcgisRuntime": 1002,
   "capabilities": {
      "audio": true,
      "backgroundModes": {
         "audio": {
            "enabled": false
         },
         "bluetooth": {
            "central": {
               "enabled": false
            }
         },
         "location": {
            "enabled": false
         }
      },
      "beacon": false,
      "biometricAuthentication": false,
      "bluetooth": false,
      "camera": true,
      "fileSharing": false,
      "highAccuracyLocation": false,
      "ios": {
         "backgroundExternalAccessory": false,
         "externalAccessoryProtocolStrings": []
      },
      "localnotification": false,
      "location": true,
      "microphone": false,
      "network": true,
      "storage": true,
      "vibration": false

   },

.........

   "usageDescriptionKeys": {
      "cameraUsageDescription": "This app needs access to the camera to take a pictures of guide rails.",
      "locationWhenInUseUsageDescription": "This app needs access to device location when the app is running so that maps can center on your location.",
      "microphoneUsageDescription": "This app needs access to a microphone to record audio for videos."
   },

.........

}

Am I doing something wrong in my appinfo.json file? I've tried this with both AppStudio 3.3 and the AppStudio 4 beta and neither work.

0 Kudos
4 Replies
ChristopherEby2
New Contributor III

I just noticed that I was mixing up the audio permission with the microphone permission. I have set the microphone to true and will try again.

0 Kudos
ErwinSoekianto
Esri Regular Contributor

Chris, setting the microphone capability to true should resolve this issue. 

0 Kudos
YuliaMamonova
Occasional Contributor III

Erwin,

I have a similar issue, I disabled both microphone and audio, but it keeps giving me the same 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 NSMicrophoneUsageDescription 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. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy).

0 Kudos
ErwinSoekianto
Esri Regular Contributor
0 Kudos