Skip to content
Back to Blog
·8 min read

iOS ratings and reviews: ask in the app, reply and reset

When and how to ask for an App Store rating with SwiftUI's requestReview, the limit of three prompts in 365 days, replying to reviews in App Store Connect, resetting the summary rating and reporting a review.

To ask for a rating inside your app, use the system prompt: in SwiftUI, read requestReview from the environment and call it. StoreKit decides whether the prompt actually appears; Apple says it shows "a maximum of three times within a 365-day period" for someone who hasn't rated your app on that device. Ask only after people have used the app for a while, never on first launch, and never from a button. Custom rating prompts aren't allowed (guideline 5.6.1). In App Store Connect you can reply to reviews publicly, reset the summary rating when you release a new version (it can't be restored afterwards), and report reviews that break the rules.

Asking for a rating in the app

Which API

APIWhereStatus
RequestReviewAction, read as @Environment(\.requestReview)SwiftUI: iOS 16, iPadOS 16, Mac Catalyst 16, macOS 13, visionOS 1Current
AppStore.requestReview(in:)UIKit, with a window sceneCurrent; Apple's replacement for the old class in UIKit code
SKStoreReviewController.requestReview(in:)iOS 10.3 to 18Deprecated in iOS 18, macOS 15 and visionOS 2

All of them only request a prompt. Apple: "App Store policy governs the actual display of a rating and review request view."

How often the prompt appears

From Apple's RequestReviewAction documentation:

  • "If the person hasn't rated or reviewed your app on this device, StoreKit displays the ratings and review request a maximum of three times within a 365-day period."
  • "If the person has rated or reviewed your app on this device, StoreKit displays the ratings and review request if the app version is new, and if more than 365 days have passed since the person's previous review."

People can also turn these prompts off for all apps, per the Human Interface Guidelines. So a call can show nothing, and your app isn't told whether the prompt appeared. Apple's documentation doesn't describe any way to find out.

What follows from that

  • Don't call it from a button. Apple: "Because this API may not present an alert, don't call it in response to a button tap or other user action." A "Rate us" button that does nothing half the time looks broken.
  • For a button, link to the App Store instead. Apple suggests a persistent link in settings: add the query parameter action=write-review to your product page URL, which opens the App Store page where people write a review.
  • Testing. "When your app calls this method while it's in development mode, StoreKit always displays the rating and review request view". But it "has no effect in apps that you distribute for beta testing using TestFlight." Seeing nothing in TestFlight is expected.
  • Only Apple's prompt. Guideline 5.6.1: "Use the provided API to prompt users to review your app ... we will disallow custom review prompts."

A SwiftUI example

This asks after the third completed export, at most once per app version, two seconds after the result appears. A separate settings link covers people who want to leave a review whenever they like.

import SwiftUI
import StoreKit

struct ExportFinishedView: View {
    @Environment(\.requestReview) private var requestReview
    @AppStorage("completedExports") private var completedExports = 0
    @AppStorage("lastReviewPromptVersion") private var lastPromptVersion = ""

    var body: some View {
        Text("Export saved")
            .task { await askIfAppropriate() }
    }

    private func askIfAppropriate() async {
        completedExports += 1
        let version = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String ?? ""
        // Ask only after real use, and at most once per app version.
        guard completedExports >= 3, version != lastPromptVersion else { return }
        // Give the person a moment to see the result first.
        try? await Task.sleep(for: .seconds(2))
        guard !Task.isCancelled else { return }
        lastPromptVersion = version
        requestReview()
    }
}

struct RateAppButton: View {
    // Replace 1234567890 with your app's Apple ID.
    let url = URL(string: "https://apps.apple.com/app/id1234567890?action=write-review")!
    var body: some View {
        Link("Write a review", destination: url)
    }
}

What we checked: this file type-checks with swiftc -typecheck against the iOS 27.1 SDK from Xcode (Swift 6.4), target arm64-apple-ios17.0, in both the default and Swift 6 language modes, with no errors or warnings. We did not run it on a device, so whether the prompt appears is up to StoreKit as described above. The threshold of three exports and the once-per-version rule are our choices, not Apple's; pick a moment that fits your app.

When to ask, and when not to

From the Human Interface Guidelines, "Ratings and reviews":

  • After real engagement. "Ask for a rating only after people have demonstrated engagement with your app or game", for example after a level or "a significant task".
  • Not on first launch or during onboarding. People haven't formed an opinion yet, and Apple says they "may even be more likely to leave negative feedback" if asked too early.
  • Not in the middle of a task. "Look for natural breaks or stopping points".
  • Not too often. "Consider allowing at least a week or two between requests, prompting again after people demonstrate additional engagement".
  • Use the system prompt. It checks for earlier feedback and is limited by the system to "three occurrences per app within a 365-day period."

And from the App Review Guidelines:

  • Guideline 3.2.2(x): "Apps must not force users to rate the app, review the app, download other apps, or other store-related actions in order to access functionality, content, or use of the app."
  • The Business section warns that manipulating reviews "with paid, incentivized, filtered, or fake feedback" can lead to removal from the Apple Developer Program, and 5.6.3 forbids manipulating "charts, search, reviews, or referrals". Asking only happy users (a "do you like the app?" screen that sends only the yes answers to the prompt) is filtering.

Apple's ratings page adds one more tip: make your support contact easy to find, in the app and on the product page, so unhappy people reach you before they write a review.

Replying to reviews

  • Who. Account Holder, Admin or Customer Support role.
  • Where. In App Store Connect, open the app, click Ratings and Reviews in the sidebar, pick the platform at the top right, find the review and click Reply. Edit or delete through Edit Response.
  • Which platforms. Apple's overview says iOS, macOS, watchOS and visionOS apps. Customers can only rate tvOS apps, not write reviews.
  • What happens. "When you respond to a customer review, the customer is notified and can update their review in response." Several quick edits send only one notification. Replies "may take up to 24 hours to appear on the App Store" and show as pending until then.
  • One reply per review is shown, and it stays public even if the customer edits the review. Edited replies are marked as edited.
  • Old reviews too. "You can respond to all reviews of your app, regardless of when they were written".
  • Length. Apple's help pages don't state a character limit for replies.
  • You can also reply through the App Store Connect API.

Apple's guidelines for replies:

  • 5.6.1: "treat customers with respect ... Keep your responses targeted to the user's comments and do not include personal information, spam, or marketing in your response."
  • Apple's ratings page: keep replies "concise", personal rather than generic, and if you can't answer everything, start with "the lowest star ratings or those mentioning technical issues with the current version".
  • When an update fixes something people complained about, say so in the release notes and consider replying to those reviews.
  • Billing or download problems: direct the person to Apple Support rather than trying to solve it in a reply.

Resetting the summary rating

Each country or region has its own summary rating. When you release a new version you can reset it:

  • Who. Admin or App Manager.
  • How. On the app version page, in Reset Overview Rating, select Reset rating when this version is released, then save. The reset happens when the version is released.
  • Platforms. iOS, macOS and tvOS. For a universal app it applies only to the platform you reset; app bundles can't be reset.
  • Everywhere at once. It "affects all regions or countries simultaneously."
  • Written reviews stay. The reset "won't apply to written customer reviews, which will continue to display on the App Store."
  • No undo. "Once you release the new version of your app, you won't be able to restore the previous rating."
  • What people see. A message says the rating was recently reset, until enough people rate the new version.

Apple advises using it "sparingly": the HIG says resetting "tends to result in having fewer ratings overall, which can discourage some people from downloading your app." It makes sense when a version fixes what most low ratings were about, not as routine.

Reporting a review

For "offensive material, spam, or other content that violates Apple's Terms and Conditions", Apple says to use Report a Concern "instead of replying to the review." In Ratings and Reviews, find the review, click Report a Concern, choose a reason, describe it and submit. "The customer who wrote the review won't be notified if you report a concern."

The written reviews summary shown on the product page (on recent iOS versions, where enough reviews exist) can be reported the same way: click the … next to the summary under Review Summaries.

You may quote your rating in marketing if it "accurately reflects your app's current rating"; individual reviews only "if permission from the reviewer is granted."

FAQ

Why doesn't the rating prompt appear?

StoreKit decides. The person may have seen it three times in the last 365 days, may have rated this version already, or may have turned prompts off. In TestFlight it never appears; in development it always does.

Can I show my own "Enjoying the app?" screen first?

Guideline 5.6.1 disallows custom review prompts, and sending only satisfied users on to the prompt is the kind of filtering the guidelines warn about. Use the system prompt at a good moment instead.

Can a "Rate this app" button in settings call requestReview?

Apple says not to call it in response to a button tap, because it may show nothing. Link to your product page with action=write-review instead.

Can I offer a reward for a rating?

No. Apple warns against "paid, incentivized, filtered, or fake feedback", and 3.2.2(x) forbids requiring a rating to use the app.

Does resetting the rating delete reviews?

No. Written reviews stay on the App Store. Only the summary rating restarts, and the old one can't be restored once the version is released.

Is there a limit on how long a reply can be?

Apple's help pages don't state one.

Sources

All read on 1 November 2026.

Apple's limits and rules for ratings change; check the pages above for current details.

Written by

Building local-first Mac & iOS productivity apps at Obelisk Club. About the author →