Request reviews only from users with enough recent positive activity and only at appropriate times.
Read the Introduction Article to learn how to best use ReviewKit in your app.
- Minimum deployment target iOS 11+, macOS 10.14+
- Swift 5.8+ (Xcode 14.3+)
Add ReviewKit to your app using SwiftPM:
https://github.com/FlineDev/ReviewKit.git(Optional) Adjust the criteria by which app reviews are requested on app start (defaults to 3 positive events & expiration after 14 days):
import ReviewKit // ... ReviewKit.criteria =ReviewCriteria(minPositiveEventsWeight:5, eventsExpireAfterDays:30)
Determine common workflows in your app and when a user completes one of them, call this:
ReviewKit.recordPositiveEventAndRequestReviewIfCriteriaMet()
(Optional) Determine other activities that you think are positive experiences for your users. If they are in the middle of workflows, instead of the above call:
ReviewKit.recordPositiveEvent() // optionally, you can pass a custom `weight` parameter, defaults to 1
(Optional) Get more reviews from users who tried your app at least once, add this to your app entry point:
@AppStorage("appStarts")varappStarts:Int=0
And attach this modifier to your apps' root view:
.onAppear {self.appStarts +=1ifself.appStarts >=2{ReviewKit.recordPositiveEventAndRequestReviewIfCriteriaMet()}}
That's it – you have configured App Review requests for your app!
- ReviewKit is using Apple's
SKStoreReviewControllerAPI internally. That API already encapsulates some logic to make sure not to ask users too often. - That logic is turned off in
DEBUGmode, so you might want to setReviewKit.enabledInDebugBuilds = falseonce you've tested that everything works. - There's also a function
requestReviewIfCriteriaMet()that does not record a positive event in case you need that.
I extracted this library from my following Indie apps (rate them with 5 stars to support me!):
| App Icon | App Name & Description | Supported Platforms |
|---|---|---|
![]() | TranslateKit: App Localizer Simple drag & drop translation of String Catalog files with support for multiple translation services & smart correctness checks. | Mac |
![]() | Pleydia Organizer: Movie & Series Renamer Simple, fast, and smart media management for your Movie, TV Show and Anime collection. | Mac |
![]() | FreemiumKit: In-App Purchases Simple In-App Purchases and Subscriptions for Apple Platforms: Automation, Paywalls, A/B Testing, Live Notifications, PPP, and more. | iPhone, iPad, Mac, Vision |
![]() | FreelanceKit: Time Tracking Simple & affordable time tracking with a native experience for all devices. iCloud sync & CSV export included. | iPhone, iPad, Mac, Vision |
![]() | CrossCraft: Custom Crosswords Create themed & personalized crosswords. Solve them yourself or share them to challenge others. | iPhone, iPad, Mac, Vision |
![]() | FocusBeats: Pomodoro + Music Deep Focus with proven Pomodoro method & select Apple Music playlists & themes. Automatically pauses music during breaks. | iPhone, iPad, Mac, Vision |
![]() | Guided Guest Mode Showcase Apple Vision Pro effortlessly to friends & family. Customizable, easy-to-use guides for everyone! | Vision |
![]() | Posters: Discover Movies at Home Auto-updating & interactive posters for your home with trailers, showtimes, and links to streaming services. | Vision |








