πŸš€ ShipToStore
← All troubleshooting

ITMS-90683: Missing purpose string in Info.plist β€” "Invalid Bundle" email after upload

πŸ› οΈ Prepare the appπŸš€ Build, upload & processing

Cause

Your binary references a protected API (camera, photos, location, microphone, Bluetooth, contacts…) without the matching NS...UsageDescription key in Info.plist. Usually it's not your code β€” an embedded SDK (image picker, analytics, ad SDK) links the framework, and Apple's static scan flags it during post-upload processing.

Fix

  1. Read the rejection email β€” it names the exact missing key, e.g. NSCameraUsageDescription.
  2. Add the key with a specific explanation ("We use the camera to scan receipts"), even if the feature comes from an SDK you don't actively use β€” the string must still make sense to a user.
    • Native / RN bare: target β†’ Info tab in Xcode (writes Info.plist).
    • Expo: app.json β†’ expo.ios.infoPlist.
    • Flutter: ios/Runner/Info.plist.
  3. Bump the build number, rebuild, re-upload. You cannot patch an uploaded build.
  4. Audit all SDKs for other required purpose strings now to avoid a second round-trip.