AnsweredAssumed Answered

NSMicrophoneUsageDescription Missing When Uploading To Apple App Store

Question asked by ceby@geodecisions.com on Aug 23, 2019
Latest reply on Aug 26, 2019 by ESoekianto-esristaff

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.

Outcomes