Rejection reasons
App Store rejection reasons, explained and checkable
Every rejection cause RejectProof checks for, grouped by App Store Review Guideline: what Apple's message says, why it happens, how to fix it in Expo and Xcode, and how to catch it before you submit.
Rules last verified against Apple’s guidelines on 2026-09-16.
Guideline 2.1 — App Completeness
"We discovered one or more bugs in your app" / "Information Needed" / "the app crashed on launch"
- PB-30 Development server references left in the build
- PB-33 Dead links inside the app
- PB-34 Embedded framework missing — crash on launch
- PB-35 Missing arm64 slice / unsupported architecture
- PB-36 Minimum iOS in Info.plist does not match the binary
- PB-42 WKWebView links open in a new window but nothing handles the popup
- PB-43 Localized resources shipped but CFBundleLocalizations not declared
Guideline 2.3 — Accurate Metadata
"Your app's metadata contains placeholder or inaccurate content" / "the name, description or keywords reference other platforms or apps"
Guideline 2.4.1 — iPad compatibility
"We found that your app did not run at iPad resolution" / "the app does not support all orientations on iPad"
Guideline 2.5.1 — Software Requirements — public APIs only
"Your app uses or references the following non-public or deprecated APIs" (ITMS-90338) / "The app references UIWebView" (ITMS-90809)
Guideline 2.5.2 — Downloading executable code
"Your app downloads or installs executable code" / "the app includes a mechanism to update itself outside the App Store"
Guideline 2.5.4 — Background modes
"Your app declares support for audio/location/VoIP in the UIBackgroundModes key but does not include features that require that mode"
Guideline 3.1.1 — In-App Purchase
"Your app offers in-app purchases but does not include a mechanism to restore them" / "the app directs users to external purchasing mechanisms"
Guideline 4.2 — Minimum Functionality
"Your app provides a limited user experience as it is not sufficiently different from a mobile browsing experience"
Guideline 4.3 — Design — Spam
"We noticed your app shares a similar binary, metadata, and/or concept as apps submitted to the App Store by you or other developers"
Guideline 4.8 — Login Services — Sign in with Apple
"Your app uses a third-party login service but does not offer Sign in with Apple as an equivalent option"
Guideline 5.1.1 — Data Collection and Storage
"Your app's Info.plist does not include a purpose string" / "the app is missing a privacy manifest" / "the app supports account creation but does not include an option to delete the account"
- PB-01 Camera used without a usage description
- PB-02 Photo library used without a usage description
- PB-03 Location used without a usage description
- PB-04 Microphone used without a usage description
- PB-05 Contacts used without a usage description
- PB-06 Calendar used without a usage description
- PB-07 Bluetooth used without a usage description
- PB-08 Face ID used without a usage description
- PB-10 Privacy manifest (PrivacyInfo.xcprivacy) missing
- PB-11 Privacy manifest says tracking but lists no tracking domains
- PB-12 Required Reason API used but not declared in the privacy manifest
- PB-21 ATT prompt text present but manifest says no tracking
- PB-22 Known ad/analytics SDK without its own privacy manifest
- PB-26 Permission declared in Info.plist but never used
- PB-40 Account creation without an in-app account deletion path
Guideline 5.1.2 — Data Use and Sharing — tracking
"Your app uses the AppTrackingTransparency framework, but we are unable to locate the App Tracking Transparency permission request" / "the privacy label does not match"
Export compliance — Encryption declaration (ITSAppUsesNonExemptEncryption)
"Missing Compliance" in App Store Connect / "your app uses encryption; provide export compliance documentation"
Provisioning & signing — Profile, entitlements and capabilities
"Invalid Provisioning Profile" / "the provisioning profile has expired" / "the app contains entitlements that were not enabled"