RejectProofRun the free check

Guideline 2.1 rejection: App Completeness

How the rejection usually reads: "We discovered one or more bugs in your app" / "Information Needed" / "the app crashed on launch"

Why it happens

2.1 is the single most common rejection because it is a catch-all: crashes, dead links, placeholder content, a demo account that does not work, a feature the description promises but the build does not have. The reviewer runs the app on a real device for a few minutes and reports whatever breaks. The frustrating part is that most 2.1 rejections are mechanical and visible in the build before you upload: a framework that was not embedded (crash on launch), a support URL that returns 404, a leftover localhost address from development. Fix what they named, then look for what they did not name — on the next round they only re-check the diff.

What can be checked before you submit

7 of RejectProof’s checks map to Guideline 2.1. Each one reads your .ipa — no upload — and reports the evidence with a fix.

What a scan cannot tell you

Static checks read the build; they do not run it. Whether a reviewer likes your design, agrees with your content, or considers the app “sufficiently different” is their call. Fix the mechanical layer first so the human review is about your product, not about a missing plist key.

← All rejection reasons