Expo Bare Workflow - Issue with info.plist and NSPhotoLibraryUsageDescription

Hello everyone! :slight_smile:

I’m having issues getting my ejected app submitted to Apple’s App Store Connect. Building and submitting through the Expo Application Services works great. However, after delivering it to the App Store Connect, I receive this email:

Interestingly, I’ve included the NSPhotoLibraryUsageDescription in both my app.json and info.plist files.

Here’s the code from my app.json:

"ios": {
      "infoPlist": {
        "userInterfaceStyle": "light",
        "UIBackgroundModes": ["location", "fetch"],
        "Privacy - Photo Library Usage Description": "App allows you to upload photos.",
        "NSPhotoLibraryUsageDescription ": "App allows you to upload photos.",
        "allowsBackgroundLocationUpdates": true,
        "NSLocationAlwaysUsageDescription": "App uses location for navigation.",
        "NSLocationWhenInUseUsageDescription": "App uses location for navigation.",
        "NSLocationAlwaysAndWhenInUseUsageDescription": "App uses location for navigation."
      }
    },

Here’s the code in my info.plist file:

<dict>
  <key>NSPhotoLibraryUsageDescription</key>
  <string>App allows you to upload photos.</string>
</dict>

Also, here’s my info.plist file from Xcode:

Screen Shot 2021-01-04 at 6.40.15 PM (2)

I’ve tried to submit 7 builds; however, I keep getting the email above. What may be the issue here with the NSPhotoLibraryUsageDescription key and description? Is there a new or specific way to add it?

Really appreciate any help in guiding me in the right direction. Thanks in advance for the help!

in ejected apps only the Info.plist config matters. commit the change, do a build, and ensure that you’re submitting the correct build.

you can also download the binary to your computer, rename .ipa to .zip, extract it, open the directory, open Payload right click the app there and “Show package contents” then look at the Info.plist to validate it

Thank you for helping Brent. Where can I locate the info.plist config? Is this a separate file or is it located in the info.plist?

not sure i totally understand what you mean by “Info.plist config” - anything you put in Info.plist before building will be in Info.plist in the resulting binary. app.json config for infoPlist is not use in bare projects.

This is rather odd then, because I’ve added the correct key and value for the NSPhotoLibraryUsageDescription. I’ve have no issue with building and submitting to the App Store before ejecting and while using this library. However, now I’m getting this issue.

As you mentioned, I’ve included the necessary code in the info.plist file.

did you extract a built ipa and compare the result?

Thanks for continuing to help! Yes, I did a new build and tried uploading it, and still no luck.

Now, for some reason, when I inspect the build details with others using the link that Expo provides, there’s no key-value pair for NSPhotoLibraryUsageDescription. What’s odd is that I added it to the info.plist file, located in the iOS folder, as you mentioned.

Should I be running a particular command after including the key-value pair in the info.plist file?

Also, is there a reason that it’s not being added in the build? Would this be an issue with EAS or something else?

this sounds like an issue in your project. can you share it with me on github? brentvatne

It seems so. Yes will do, thanks.

Did something come out of this project sharing? I am curious, since I have the same issue :slight_smile: