App Store Connect/Expo: Review rejected; purpose strings

First time beginner trying to get through the App review in App Store Connect.
In my case, I forgot about the purpose string regarding Photo library access.

Guideline 5.1.1 – Legal – Privacy – Data Collection and Storage
Purpose strings must clearly and completely describe the app’s use of data and, in most cases, provide an example of how the data will be used.

Changing the permission text to be more specific to your App was a requirment, and this is an example using Expo.

app.config.js

    ios: {
      infoPlist: {
        NSPhotoLibraryUsageDescription:
          "This app accesses your photo library to allow you to select and upload images for your profile picture, and to attach photos from your library to send in chat messages.",
      },
    },

Open firewall for Expo node project (windows)

If you are testing your mobile app from a real devicc and need to access your expo app locally, here’s an example of opening the ports for the necessary services. (Windows powershell (admin))

# Allow Node.js inbound
New-NetFirewallRule -DisplayName "Node.js" -Direction Inbound -Program "C:\Program Files\nodejs\node.exe" -Action Allow

# Allow specific Expo port
New-NetFirewallRule -DisplayName "Expo Dev Server" -Direction Inbound -Protocol TCP -LocalPort 8081 -Action Allow

# Allow Metro bundler port range
New-NetFirewallRule -DisplayName "Metro Bundler" -Direction Inbound -Protocol TCP -LocalPort 19000-19006 -Action Allow

Expo eas build + ios + firebase pods error

Today I had some trouble rebuilding my IOS project via Expo’s eas while implementing Firebase SDK.


Solution for my case:
1.) install expo-build-properties

npx expo install expo-build-properties

2.) Add the “expo-build-properties” part in your app.json/app.config.js

    plugins: [
      "@react-native-firebase/app",
      "@react-native-firebase/messaging",
      [
        "expo-build-properties",
        {
          ios: {
            useFrameworks: "static",
            podfileProperties: {
              "use_modular_headers!": true,
            },
          },
        },
      ],