ITMS-90683: Missing purpose string in Info.plist (NSCameraUsageDescription etc.)
The binary references a privacy-sensitive API, but Info.plist lacks the matching usage description.
Seen on:
iOS
Meaning
Apple scans the binary — even unused code in SDKs (e.g. location or Bluetooth APIs) requires the purpose string. Provide a clear, user-facing explanation.
Common causes
- Missing NS*UsageDescription keys
- SDK linking camera/location/Bluetooth APIs
- Description present only in one target/configuration
⚡ Quick fix
- Add the key named in the email to Info.plist with a real explanation
- Check every target (extensions too)
- Remove unused SDKs if you don’t use the feature
Detailed fix by platform
XML
- swift
<key>NSCameraUsageDescription</key> <string>Scan receipts with your camera to add them faster.</string>
How to diagnose
- Key — Which one is missing?
- Targets — All Info.plist files
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- attempted to access privacy-sensitive data without a usage description This app has crashed because it attempted to access privacy-sensitive data without a usage description
- ITMS-90206 ITMS-90206: Invalid Bundle. The bundle at 'App.appex' contains disallowed file 'Frameworks'
- ITMS-90717 ITMS-90717: Invalid App Store Icon. The App Store Icon in the asset catalog can't be transparent nor contain an alpha channel
Most viewed in iOS
Other ways to find it
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 7 Oct 2026