Guideline 5.6.3

Guideline 5.6.3 - Developer Code of Conduct: Requesting App Ratings Too Early

Low RiskEasyTypical Fix: 1-3 hours0 Reports
Also known as:App shows a rating prompt on first launchReview request appears during onboarding or sign-upSKStoreReviewController fires immediately on app openCustom 'Rate us' modal interrupts the user before they use the appStar-rating prompt shown on the first screen before any engagement

Our Take

Apple is taking a hard stance on apps that request an app rating and review on first launch or during onboarding before they have had enough time to understand the app's value.


Under guideline 5.6.3 (Developer Code of Conduct), ratings and review prompts must only appear after a user has meaningfully engaged with the app, not the moment they open it for the first time.


It seems obvious, but Apple's reasoning is that a rating request shown before a user has experienced the product produces low-quality, uninformed reviews and pressures users who have nothing to base an opinion on yet.


The Developer Code of Conduct (and the App Store Review Guidelines on ratings and reviews) require the prompt to be a natural, well-timed moment — for example, after the user completes a core task, finishes a level, saves their first item, or experiences some other AHA moment.


Common triggers include:

  • Presenting a star-rating prompt on the very first screen
  • Asking for a review inside the onboarding/sign-up flow
  • Firing SKStoreReviewController immediately in application(_:didFinishLaunchingWithOptions:) or onAppear of the first view
  • Or using a custom rating modal that interrupts the user before they reach any real functionality.

  • Reviewers test fresh installs, so a launch-time prompt is caught reliably.

    Resolution Guide

    01

    Remove the rating prompt from launch and onboarding

    Delete any call to request a review from `application(_:didFinishLaunchingWithOptions:)`, your first view's `onAppear`/`viewDidAppear`, or anywhere in the sign-up/onboarding flow. Nothing should ask for a rating before the user reaches real functionality.

    02

    Trigger the prompt after meaningful engagement

    Move the request to a natural success moment: after the user completes a core task, finishes a workout/level/edit, saves their first item, or opens the app several times across multiple days. Let the user experience value first.

    03

    Use Apple's official review API

    Call `SKStoreReviewController.requestReview(in:)` (UIKit) or the SwiftUI `requestReview` environment value. The system limits how often the prompt appears and renders it natively — never build a custom star-rating modal that links to the App Store or gates the app.

    04

    Never gate functionality behind a rating

    The user must be able to dismiss the prompt and keep using the app. Do not block content, features, or progress until they rate. (That overlaps with a separate 3.2.2 violation.)

    05

    Add a simple engagement gate in code

    Track a counter (e.g. sessions ≥ 3, or after the Nth completed action) and only call the review API once the threshold is met. Persist it so the prompt isn't re-attempted every launch.

    06

    Test on a fresh install before resubmitting

    Delete the app, reinstall, and walk through first launch and onboarding. Confirm no rating prompt appears anywhere in that flow.


    Prevention

  • Wire all review requests through a single helper that enforces the engagement threshold
  • Never place a review call in launch, onboarding, or first-view lifecycle methods
  • Prefer `SKStoreReviewController` / SwiftUI `requestReview` over any custom modal
  • Add 'no rating prompt on first launch' to your pre-submission QA checklist
  • Example Rejection Email

    From:Apple App Review Team
    Subject:Guideline 5.6.3 - Developer Code of Conduct: Requesting Ap
    Guideline 5.6.3 - Developer Code of Conduct Issue Description The app requests users to rate the app on first launch or during onboarding, before they've had enough time to gain a clear understanding of the app's value. Apps should only ask for a rating after the user has sufficiently engaged with the app. Next Steps Revise the app to not request a rating on first launch or during onboarding. Resources Learn more about requesting ratings and reviews in the App Store Review Guidelines and the Human Interface Guidelines.

    Consider Appealing

    Appeal only if the rating prompt is genuinely NOT shown on first launch or during onboarding — e.g. it is already gated behind meaningful engagement and the reviewer triggered it through an unusual path. In that case, reply with a screen recording showing the exact engagement steps required before the prompt appears. If the prompt does fire on launch or in onboarding, do not appeal — move it behind an engagement gate and resubmit; this is a quick, clear-cut fix.

    Generate Appeal

    Before & After

    Before — Rejected

    On first launch, the app calls SKStoreReviewController.requestReview() from the root view's onAppear — the user sees a 'Rate this app' prompt before doing anything

    After — Approved

    The review request is deferred behind an engagement gate (e.g. after the user completes 3 sessions or finishes their first core task) and uses the system requestReview API, so it never appears during first launch or onboarding

    What changed: The issue is timing, not the prompt itself. Deferring the request until the user has experienced the app's value satisfies guideline 5.6.3.

    Community Solutions · 0

    Sign in to share your solution.

    More Guideline 5 (Legal) rejections

    View all Guideline 5 rejections