Guideline 5.1.1
Guideline 5.1.1 - Privacy: Insufficient Purpose Strings
Our Take
Apple is rejecting your app because one or more of the permission purpose strings (NSUsageDescription entries in Info.plist) don't adequately explain why the app needs access to protected resources like the camera, microphone, location, contacts, or photos. Purpose strings must clearly and completely describe (1) how the app uses the data and (2) a specific example of how the data will be used. Generic strings like "App needs camera access" or "App would like to access your contacts" are explicitly called out by Apple as insufficient. This is a different rejection than 5.1.1 privacy policy issues. This is specifically about the system permission dialogs that appear when your app requests access to device capabilities.
Resolution Guide
Rewrite each purpose string
Follow this formula: "[App name] uses [resource] to [specific purpose]. For example, [concrete example of use]."
Be specific, not generic
Instead of "App needs camera access", write "AppName uses your camera to take photos of receipts for expense tracking. For example, you can photograph a restaurant receipt to automatically log the expense."
Cover all protected resources
Check every NS*UsageDescription key:
NSCameraUsageDescription - NSMicrophoneUsageDescription
- NSLocationWhenInUseUsageDescription
- NSPhotoLibraryUsageDescription
- NSContactsUsageDescription
- Any others your app uses
Match actual usage
The purpose string must match what your app actually does with the data. Don't claim you use the camera for "profile photos" if you also use it for document scanning.
Localize purpose strings
If your app supports multiple languages, translate purpose strings for each locale.
Prevention
Example Rejection Email
Before & After
NSCameraUsageDescription: 'App needs camera access'
NSCameraUsageDescription: 'MyApp uses your camera to scan documents and take photos for your projects. For example, you can photograph a whiteboard to save meeting notes.'
What changed: Purpose strings must explain the specific use case and provide a concrete example, not just state the resource being accessed
Community Solutions · 0
Sign in to share your solution.
More Guideline 5 (Legal) rejections
- Guideline 5 - Legal: Remove Watermark Feature
- Guideline 5.1.1 - Data Collection and Storage: Incomplete Privacy Manifest
- Guideline 5.1.1 - Data Collection and Storage: Missing Purpose Strings
- Guideline 5.1.1 - Data Collection and Storage: Privacy Manifest Missing
- Guideline 5.1.1 - Data Collection and Storage: Privacy Nutrition Label Mismatch
- Guideline 5.1.1 - Data Collection and Storage: Privacy Policy