# Guideline 5.1.1: permission purpose string

> Rejected under Guideline 5.1.1 because a camera, photo or location purpose string is too vague? How to write ones App Review accepts.

**Guideline 5.1.1 — Purpose string: explain why you need the permission.** When the app asks for the camera, photos, location, microphone or contacts, the sentence in the system prompt must say what the app does with it, with an example. “This app needs camera access” is not enough.

- App Store · Guideline 5.1.1. Purpose string: explain why you need the permission.
- Interactive page: https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-purpose-string
- Rejection explainer: https://capwr.app/free-tools/app-store-rejection-explainer
- Last updated: 2026-10-14

## What this rejection means

When the app asks for the camera, photos, location, microphone or contacts, the sentence in the system prompt must say what the app does with it, with an example. “This app needs camera access” is not enough.

## Why reviewers send it

Permission prompts show the purpose string from Info.plist. Apple wants it to tell people what the app does with the access, with an example — generic text added by a plugin’s setup guide, such as “This app needs the camera”, gets rejected.

## The message App Review sends

```
Guideline 5.1.1 - Legal - Privacy - Data Collection and Storage

We noticed that your app requests the user’s consent to access the camera, but doesn’t sufficiently explain the use of the camera in the purpose string.
```

The exact wording changes from one review to the next; the guideline number is what to look for.

## How to fix it

1. Rewrite each usage description in ios/App/App/Info.plist (NSCameraUsageDescription, NSPhotoLibraryUsageDescription, NSLocationWhenInUseUsageDescription…) as a specific sentence: what for, with an example.
2. Remove permissions the app doesn’t use — plugin setup guides can add keys you don’t need.
3. Ask for a permission when the person uses the feature, not at launch.
4. Upload a new build.

A purpose string that is missing entirely blocks the upload instead: see [ITMS-90683](https://capwr.app/free-tools/build-error-explainer/itms-90683).

## Fix it with Lovable, Bolt or Cursor

If the app was built with an AI builder, paste this into it, then check the result on a phone:

```
Ask for camera, photo and location permission only when the user taps the feature that needs it, never at launch. In ios/App/App/Info.plist, rewrite each NS…UsageDescription as a specific sentence that says what the app does with it and gives an example.
```

## What to reply in App Store Connect

Replace the [brackets] with what you actually changed:

```
Guideline 5.1.1 — We rewrote the purpose strings to explain how each permission is used. For example, the camera: “[App name] uses the camera to scan receipts and attach them to your expenses.”
```

## Got a different message?

Paste the whole rejection into the [rejection explainer](https://capwr.app/free-tools/app-store-rejection-explainer). It recognises this one and 26 others, in your browser — nothing is uploaded.

## Other App Store rejections

- [App Store Guideline 4.3 Spam rejection](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-3-spam)
- [Guideline 4.2 Minimum Functionality rejection](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-2-minimum-functionality)
- [Guideline 2.1 App Completeness rejection](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-1-app-completeness)
- [Guideline 2.1 Information Needed: demo account](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-1-information-needed-demo-account)
- [Guideline 4.0 Design rejection: sign-in in Safari](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-0-design)
- [Guideline 2.3.3 Accurate Metadata: screenshots](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-3-3-screenshots)
- [Guideline 2.3.10: Android mentioned in the app](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-3-10-other-platforms)
- [Guideline 2.3.8: app icon or name doesn’t match](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-2-3-8-app-icon)
- [Guideline 4.8 Login Services: Sign in with Apple](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-4-8-sign-in-with-apple)
- [Guideline 5.1.1(v): account deletion required](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-v-account-deletion)
- [Guideline 5.1.1: sign-up required to use the app](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-sign-up-required)
- [Guideline 5.1.1(i): privacy policy link missing](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-1-i-privacy-policy)
- [Guideline 5.1.2: App Tracking Transparency](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-5-1-2-app-tracking-transparency)
- [Guideline 3.1.1: digital goods without In-App Purchase](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-3-1-1-in-app-purchase)
- [Guideline 3.1.2: subscription information missing](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-3-1-2-subscriptions)
- [Guideline 1.5: support URL doesn’t work](https://capwr.app/free-tools/app-store-rejection-explainer/guideline-1-5-support-url)

## Fixed it? Send the build back to App Review

CapWrapp builds the fixed commit on GitHub’s Mac machines, uploads it to TestFlight, and sends the build you pick to App Review from one page — no Xcode.

[Get started free](https://capwr.app/login).

## About CapWrapp

CapWrapp turns a web app on GitHub — built with Lovable, Bolt, Base44, Cursor or by hand — into iPhone and Android apps. It adds Capacitor if the repo needs it, signs the builds, and ships them to TestFlight and Google Play from GitHub Actions, with no Mac or Xcode on your side. [Get started free](https://capwr.app/login) · [Lovable to App Store guide](https://capwr.app/guides/lovable-to-app-store)
