2.1

Guideline 2.1 rejection: App Completeness, and how to fix it

The reviewer hit a crash, a broken link, placeholder content, a login they couldn’t get past, or an in-app purchase they couldn’t find.

“We will reject incomplete app bundles and binaries that crash or exhibit obvious technical problems.”
App Review Guidelines, 2.1 App Completeness

Why apps get rejected for it

  • ×A crash on launch or on a common path, often on a device or iOS version you didn’t test.
  • ×The app needs a login and there is no demo account in the review notes, or the backend was off.
  • ×Placeholder text, “coming soon” screens or buttons that do nothing.
  • ×In-app purchases configured in App Store Connect that the reviewer can’t find or buy in the app.
  • ×Links in the app or the listing that go to an empty or broken page.

How to fix it

  1. 01Read the crash log attached to the rejection (or in Xcode Organizer) and reproduce it on the same iOS version.
  2. 02Test the full flow on a real device with a fresh install and no saved state.
  3. 03Add a working demo account to the review notes and keep the backend running during review.
  4. 04Remove or finish every placeholder screen. Hide features that aren’t ready instead of shipping them empty.
  5. 05Make every configured in-app purchase reachable, or explain in the review notes where it is and why.

What to tell App Review

Say what was broken and what you changed, for example: “The crash on launch on iOS 18 was caused by X and is fixed in build 42. A demo account is in the review notes.” Then submit the new build.

Want a second pair of eyes before you resubmit?

The App Launch Audit checks your app against 2.1 and every other common rejection reason, and gives you a READY / NOT READY report with the exact fixes within 48 hours.

Not affiliated with Apple. The guidelines change; the full text on Apple's site is what counts. Last checked 5 October 2026.