How do I resolve this: "ITMS-90683: Missing purpose string in Info.plist" (deployed using Expo EAS-CLI)

622 Views Asked by At

I need your help on this one.

I just deployed my app to the Apple AppStore using the eas-cli and got a confirmation message saying that "Your binary has been successfully uploaded to App Store Connect". But I got this email from apple with the following error:

"We identified one or more issues with a recent delivery for your app, "SparkPay" 1.0.0 (1). Please correct the following issues, then upload again.

ITMS-90683: Missing purpose string in Info.plist - Your app’s code references one or more APIs that access sensitive user data, or the app has one or more entitlements that permit such access. The Info.plist file for the “SparkPay.app” bundle should contain a NSCameraUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. 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."

For details, visit: https://developer.apple.com/documentation/uikit/protecting_the_user_s_privacy/requesting_access_to_protected_resources.

As I mentioned, I've built my app using expo react-native, and have used the eas-cli to build and submit my app to the app store. I did not build this app using Xcode and so I don't believe I have access to edit the Info.plist file that is mentioned.

Has anyone else run into this issue before and solved it? Please let me know. Thank you.

1

There are 1 best solutions below

0
On BEST ANSWER

Expo provides properties to add configuration using app.json. With the help of the infoPlist property, we can add entries to the app's Info.plist

Add an entry inside the app.json, under the ios node.

"ios":{
   "infoPlist": {
        "NSCameraUsageDescription": "Put your app usage description here."
   }
}

Please follow the expo document: https://docs.expo.dev/versions/latest/config/app/#infoplist