Reference library · App Review
Guideline 2.1 App Completeness: fix the crash, the login or the missing purchase
The most common rejection is also the most preventable. Nearly every 2.1 is a reviewer who couldn't finish something a user would try.
Guideline 2.12. Performance · App CompletenessApple text last updated June 8, 2026Checked against Apple's App Review Guidelines (last updated June 8, 2026) and Apple's App Review distribution page, on Sep 30, 2026.
The short answer
Guideline 2.1 rejects builds that aren't final and working when a reviewer opens them: crashes or obvious bugs, a login with no working demo account, placeholder content or dead links, and in-app purchases that are missing, unsubmitted or broken. Apple says more than 40% of unresolved issues fall under 2.1. Reproduce the reviewer's path on a clean device, fix it, and spell out the path in your review notes.
- Share of unresolved issues
- 40%+
- Apple's own figure for 2.1
- Sub-points
- 2.1(a) · 2.1(b)
- Completeness · in-app purchases
- Reviewed in under 24h
- 90%
- Apple's average, so a clean fix costs about a day
- Failure modes
- 4
- Crash · login · placeholders · purchases
On this page
- What Guideline 2.1 actually asks for
- The four ways indie apps fail 2.1
- Crashes: test what the reviewer runs, not what you run
- Logins: give the reviewer an account that can't fail
- In-app purchases: the 2.1(b) checklist
- Review notes that prevent the round trip
- After the rejection: reply, resubmit or expedite
- FAQ
- Sources
01What Guideline 2.1 actually asks for
2.1 is less about quality and more about completeness from a stranger's point of view. The reviewer has none of your context: no account, no test data, no idea which screen matters. Everything they need has to work on a fresh install.
(a) Submissions to App Review, including apps you make available for pre-order, should be final versions with all necessary metadata and fully functional URLs included; placeholder text, empty websites, and other temporary content should be scrubbed before submission. Make sure your app has been tested on-device for bugs and stability before you submit it, and include demo account info (and turn on your back-end service!) if your app includes a login.
(b) If you offer in-app purchases in your app, make sure they are complete, up-to-date, visible to the reviewer and functional. If any configured in-app purchase items cannot be found or reviewed in your app, explain the reason in your review notes.
02The four ways indie apps fail 2.1
| Failure mode | Typical wording | Usual root cause | Fix |
|---|---|---|---|
| Crash or hang | "We were unable to review your app as it crashed on launch." | Missing config in release builds, first-run code path never tested, iPad layout | Test the Release build on a clean device, including iPad |
| Login wall | "after entering the demo credentials provided, the app displayed the loading icon and then displayed the login screen" | Expired or rate-limited demo account, backend off, one-time codes | A permanent demo account with data, no second factor |
| Unfinished content | Placeholder text, broken support or privacy URL | "Coming soon" screens, staging URLs, empty website | Remove it or finish it; check every URL in the listing |
| In-app purchases | "we were unable to complete IAP transaction" · "returned your In-App Purchase products… as the required binary was not submitted" | Products not submitted with the build, agreements not active, receipt validation against the wrong environment | Submit products with the binary; validate receipts production-first |
03Crashes: test what the reviewer runs, not what you run
"Works on my phone" is the most common story behind a 2.1 crash, because your phone isn't a fresh install of the Release build. Reproduce the reviewer's conditions instead:
Before you submit
- Delete the app, install the exact TestFlight build you're submitting, and go through first launch with no cached data
- Test on an iPad even if you ship iPhone-only — Guideline 2.4.1 asks iPhone apps to run on iPad whenever possible, and reviewers do test there
- Turn on airplane mode mid-onboarding and check nothing hangs on a spinner
- Deny every permission prompt once and make sure the app still works
- Check that release-only configuration (API keys, feature flags, remote config defaults) is present
- Open the crash logs Apple attaches to the rejection and symbolicate them before guessing
04Logins: give the reviewer an account that can't fail
If any core feature sits behind a login, the reviewer needs credentials that work on the first try, days after you submit, from a device and region you don't control.
- Make it permanent. No expiry, no trial clock, no inactivity lockout.
- Skip the second factor. SMS codes, email magic links and authenticator apps all fail for a reviewer. Allow-list the demo account to bypass them.
- Pre-populate it. An empty account makes a finished app look unfinished. Seed it with realistic data so every screen has something to show.
- Keep the backend up. Apple's own wording: "turn on your back-end service!" Staging servers that sleep or rotate credentials cause a large share of these rejections.
- Demo mode needs permission. If legal or security rules prevent a demo account, Apple allows a built-in demo mode only "with prior approval by Apple".
05In-app purchases: the 2.1(b) checklist
2.1(b) is where subscription apps get caught. The reviewer has to be able to see your products, buy them in the sandbox, and get what they paid for.
Submit the products with the build
New in-app purchases go to review attached to an app version. If you submit the binary without them, Apple returns the products — the forum example in Sources says exactly that.
Check your agreements
StoreKit returns no products while the Paid Apps agreement, tax and banking details are incomplete in App Store Connect's Business section. An empty paywall is a 2.1 rejection waiting to happen.
Validate receipts production-first
Apple's own guidance in these rejections: validate against the production environment first, and fall back to sandbox when you get the sandbox error. Reviewers purchase in sandbox against a production-signed build.
Make every product reachable
If a configured product can't be reached in the app — say, a legacy plan kept for existing subscribers — explain why in the review notes, as 2.1(b) asks.
Test restore and entitlement
Buy, delete the app, reinstall, restore. If the premium state doesn't come back, a reviewer will find it.
06Review notes that prevent the round trip
Review notes are free and most developers leave them empty. For anything with a login, purchases or non-obvious setup, they save a rejection cycle.
Demo account (permanent, no 2FA, pre-populated):
Email: review@yourapp.com
Password: ********
How to reach the main features:
1. Sign in with the account above.
2. [Feature] is on the Home tab; tap [button].
In-app purchases:
- [Monthly], [Annual] are on the paywall shown after onboarding step 3.
- [Legacy plan] is configured for existing subscribers only and is not purchasable by new users.
Hardware / location requirements: none.
Contact during review: [name, phone]07After the rejection: reply, resubmit or expedite
Fix the issue, then reply in App Store Connect describing precisely what changed and how to verify it. Apple reviews most submissions within a day, so a clean fix is cheaper than an argument.
- Bug-fix updates get some slack. Apple says that when it finds other issues while reviewing a bug-fix submission, you can usually address them in your next submission unless there are legal or safety concerns — accept by replying to that message.
- Expedited review is for real emergencies. Apple's expedite request covers critical bug fixes (include steps to reproduce) and releases tied to a dated event. Overusing it can get future requests declined.
- Appeal only if the reviewer was wrong. If the app works and the reviewer hit a problem you can't reproduce, reply with evidence first; the App Review Board is the last step, one appeal per submission.
Frequently asked questions
Why does my app work for me but crash for Apple?
Usually because you're not running what the reviewer runs: a Release build, freshly installed, often on iPad, with no cached data and permissions denied. Reproduce those conditions and use the crash logs Apple attaches to the rejection.
Do I need a demo account if login is optional?
If every feature Apple needs to review works without signing in, no. If anything important — sync, the paid tier, social features — sits behind a login, provide one, or the reviewer will treat that part as unreviewable.
Can I ship with "coming soon" features?
Not as visible screens or tabs. 2.1(a) asks for final versions with temporary content scrubbed. Ship the feature later in an update and leave it out of this build entirely.
My app is iPhone-only. Why did they test on iPad?
iPhone apps run on iPad in compatibility mode, and Guideline 2.4.1 asks that they work there whenever possible. Check your layouts and orientation handling on an iPad before submitting.
Is 2.1 the same as a metadata rejection?
No. Metadata problems — misleading screenshots, claims the app can't back up — fall under Guideline 2.3. 2.1 covers dead URLs and placeholder text in metadata, but its core is whether the app itself works.
Where to go next
- Guideline 4.3: SpamThe rejection that's about sameness, not bugs — and was rewritten in June 2026.
- RevenueCat reviewWhat a purchase backend handles for you, including the receipt validation that trips 2.1(b).
- RevenueCat vs SuperwallChoosing the paywall stack before you wire purchases into the build.
- The Review Check — $49A pre-submission pass over your build, demo account and purchase flow.
Sources
- App Store Review Guidelines — 2.1 App Completeness — Apple Developer
- App Review — review times, bug-fix submissions, appeals — Apple Developer
- Request an expedited App Review — Apple Developer
- Forum: "unable to review your app as it crashed on launch" — Apple Developer Forums
- Forum: demo credentials returned to the login screen — Apple Developer Forums
- Forum: "unable to complete IAP transaction" on iPad — Apple Developer Forums
- Forum: IAP products returned because the binary wasn't submitted — Apple Developer Forums
Published Sep 30, 2026 · last checked Sep 30, 2026. Found something out of date? Tell us and we'll fix it within a day. Machine-readable version: /app-review/guideline-2-1-app-completeness.md
Have it done for you
The Review Check
$49 one-time · Delivered in 2 business days
Send us the TestFlight link before you submit. We run the reviewer's path — fresh install, demo login, purchases, iPad — and hand you a fix list in two business days.
- Written pass / fail read against the guidelines that actually reject indie apps — 3.1.1 in-app purchase, 5.1.1 data and privacy, account deletion, Sign in with Apple, privacy manifest and nutrition labels, subscription disclosure, metadata claims
- The exact fix for every flag, in the order to do them
- One re-check of the fixed build, included