App review is not a final administrative step. It is part of release engineering. The reviewer needs a stable build, working credentials, reachable backend services, accurate metadata, and enough context to exercise anything that is not obvious.
Apple says more than 40% of unresolved review issues relate to Guideline 2.1, App Completeness. That makes completeness the useful place to start, not guesswork about what a reviewer might prefer. The checklist below follows the current App Review guidance and the failure modes we check before submission.
Guideline 2.1: App Completeness
This category covers crashes, incomplete content, inaccessible features, missing review information, and backend services that are unavailable during review.
How we prevent it:
- We submit a dedicated demo account with the review notes. Username, password, and any two-factor codes the reviewer will need.
- The demo account has pre-populated data so the reviewer sees a realistic experience, not an empty state.
- We test the exact build binary on a clean device before submission. Not a debug build. The actual archive.
- If the app requires hardware (Bluetooth device, specific location), we include a video walkthrough in the review notes demonstrating the functionality.
Never submit a build you have not tested on a clean device with a fresh install. The reviewer's experience must match your test.
Guideline 5.1.1: Data Collection and Storage
Apple requires a privacy policy, accurate App Privacy disclosures, and clear purpose strings for protected resources. Treat these as one data inventory. If the app, privacy policy, SDK behavior, and store disclosure describe different collection practices, the submission is not ready.
Our checklist:
- Every
NSUsageDescriptionkey has a clear, specific purpose string. "We need camera access" is not enough. "Camera access is used to scan cheque images for mobile deposit" passes review. - App Privacy labels are reviewed against actual data collection before every submission. If a new analytics event was added, the label is updated.
- The privacy policy URL in App Store Connect is live and accessible. A 404 is an automatic rejection.
For Canadian clients, this overlaps with PIPEDA requirements. We align the App Store privacy disclosures with the broader privacy compliance documentation.
Guideline 4.2: Minimum Functionality
Guideline 4.2 asks whether the product provides lasting utility beyond a repackaged website or collection of links. Do not bolt on push notifications or offline storage merely to look more native. The app should have a coherent reason to exist on the platform, and its first release should demonstrate that value without relying on a future roadmap.
Google Play: policy declarations
Google Play rejections are more formulaic. The most common issues:
- Foreground service declaration: Since Android 14, every foreground service type must be declared in the manifest and justified in the Play Console. Using
connectedDevicefor a BLE app? You need to explain why in the declaration form. - Background location: If your app accesses location in the background, you must submit a video demonstrating the feature and explain why foreground-only access is insufficient. We prepare this video before submission.
- Target API level: Google requires new apps to target the latest API level. Existing apps have a deadline to update. We track these deadlines per client and build them into the maintenance schedule.
The pre-submission checklist
Before every App Store or Play Store submission, we run through a checklist:
- Build tested on a clean device with fresh install
- Demo account created with pre-populated data
- All permission purpose strings are specific and accurate
- Privacy policy URL is live and returns 200
- App Privacy labels match actual data collection
- Screenshots match the current build (not an older version)
- Review notes include any special instructions, demo credentials, or hardware requirements
- Version number and build number are incremented
- No references to competing platforms in metadata ("also available on Android" in an iOS listing)
When you do get rejected
It happens. Even with a thorough process, Apple reviewers are human and interpretations vary. When it does:
- Read the rejection carefully. Apple cites specific guideline numbers. Address exactly what they cited, nothing more.
- Reply in the Resolution Center. If the rejection is a misunderstanding, explain clearly and include screenshots or video. We have overturned rejections by demonstrating that the feature works as intended.
- Do not resubmit without changes. Resubmitting the same binary with no response to the rejection flags your app for closer scrutiny.
- Escalate if needed. Apple's App Review Board handles appeals. We have used it twice in edge cases where the reviewer misapplied a guideline. Both were resolved in our favour.
If you are preparing for a store release, contact DEVSFLOW. We can review the build, disclosures, account setup, and review notes before submission. No team can guarantee approval, but avoidable ambiguity should be removed before review.
Tired of dealing with App Store rejections and compliance changes? Our maintenance plans handle submissions, policy updates, and review responses so you don't have to. See our maintenance plans