A utility that reminds your iPhone app's users to review the app.
Objective-C
Permalink
Failed to load latest commit information.
ar.lproj Added Arabic localization Nov 23, 2013
ca.lproj - Catalan localization Oct 14, 2012
cs.lproj fixed Czech again (last one, I promise :)) Oct 27, 2012
da.lproj Don't clobber an app's existing Localizable.strings files. Sep 7, 2012
de.lproj Minor change in capitalisation (german) May 25, 2013
el.lproj Greek localization Jan 31, 2013
en.lproj Changed capitalisation to keep consistency May 24, 2013
es.lproj Most friendly messages in spanish Jun 15, 2015
fa.lproj Add Persian Localizatoin (#249) Jan 26, 2017
fi.lproj Converted Finnish and Norwegian localizations to UTF-8 Nov 14, 2012
fr.lproj Multiple corrections in french translation May 25, 2013
he.lproj Hebrew localization compliments of Ron Grosberg Nov 11, 2012
hu.lproj Hungarian localization Nov 21, 2012
hy.lproj Add Armenian localization (fixes #158) Sep 23, 2017
id.lproj Add Indonesia translation Jun 3, 2013
it.lproj more minor changes to italian localization Nov 27, 2013
ja.lproj Used better Japanese translations. Jun 3, 2015
ko.lproj Don't clobber an app's existing Localizable.strings files. Sep 7, 2012
ms.lproj Added Malay localization courtesy of translator colleague Nov 6, 2013
nb.lproj Minor translation fix (Norwegian) May 6, 2013
nl.lproj Don't clobber an app's existing Localizable.strings files. Sep 7, 2012
pl.lproj - Catalan localization Oct 14, 2012
pt-BR.lproj Added Brazilian Portuguese localization courtesy of translator colleague Nov 6, 2013
pt.lproj Don't clobber an app's existing Localizable.strings files. Sep 7, 2012
ro.lproj Romanian translation Feb 28, 2013
ru.lproj Added missing comma to Russian localization Nov 6, 2013
sk.lproj Slovak translation added. Oct 11, 2012
sv.lproj Improved Swedish localization courtesy of translator colleague Nov 6, 2013
th.lproj Added Thai localization courtesy of translator colleague Nov 6, 2013
tr.lproj Turkish localization, compliments of Olivier Carruezco Feb 1, 2013
uk.lproj Corrected Ukrainian locale. Feb 26, 2014
vi.lproj Missing semicolon in Vietnamese localization Nov 11, 2013
zh-Hans.lproj Don't clobber an app's existing Localizable.strings files. Sep 7, 2012
zh-Hant.lproj Don't clobber an app's existing Localizable.strings files. Sep 7, 2012
.gitignore Add .gitignore Aug 31, 2012
Appirater.h Use #import instead of @import (#246) Nov 11, 2016
Appirater.m Fixes #215 (delegate not setting after singleton is instantiated) Sep 23, 2017
Appirater.podspec.json Update podspec for 2.2.0 release Sep 24, 2017
AppiraterDelegate.h Use #import instead of @import (#246) Nov 11, 2016
CHANGELOG.md Update README and CHANGELOG for v2.2.0 Sep 24, 2017
README.md Update README and CHANGELOG for v2.2.0 Sep 24, 2017

README.md

Introduction

Appirater is a class that you can drop into any iPhone app (iOS 4.0 or later) that will help remind your users to review your app on the App Store. The code is released under the MIT/X11, so feel free to modify and share your changes with the world. Read on below for how to get started. If you need any help using, the library, post your questions on [Stack Overflow] stackoverflow under the appirater tag.

Getting Started

CocoaPods

To add Appirater to your app, add pod "Appirater" to your Podfile.

Configuration

  1. Appirater provides class methods to configure its behavior. See [Appirater.h] Appirater.h for more information.
[Appirater setAppId:@"552035781"];
[Appirater setDaysUntilPrompt:1];
[Appirater setUsesUntilPrompt:10];
[Appirater setSignificantEventsUntilPrompt:-1];
[Appirater setTimeBeforeReminding:2];
[Appirater setDebug:YES];
  1. Call [Appirater setAppId:@"yourAppId"] with the app id provided by Apple. A good place to do this is at the beginning of your app delegate's application:didFinishLaunchingWithOptions: method.
  2. Call [Appirater appLaunched:YES] at the end of your app delegate's application:didFinishLaunchingWithOptions: method.
  3. Call [Appirater appEnteredForeground:YES] in your app delegate's applicationWillEnterForeground: method.
  4. (OPTIONAL) Call [Appirater userDidSignificantEvent:YES] when the user does something 'significant' in the app.

Development

Setting [Appirater setDebug:YES] will ensure that the rating request is shown each time the app is launched.

Production

Make sure you set [Appirater setDebug:NO] to ensure the request is not shown every time the app is launched. Also make sure that each of these components are set in the application:didFinishLaunchingWithOptions: method.

This example states that the rating request is only shown when the app has been launched 5 times and after 7 days.

[Appirater setAppId:@"770699556"];
[Appirater setDaysUntilPrompt:7];
[Appirater setUsesUntilPrompt:5];
[Appirater setSignificantEventsUntilPrompt:-1];
[Appirater setTimeBeforeReminding:2];
[Appirater setDebug:NO];
[Appirater appLaunched:YES];

If you wanted to show the request after 5 days only you can set the following:

[Appirater setAppId:@"770699556"];
[Appirater setDaysUntilPrompt:5];
[Appirater setUsesUntilPrompt:0];
[Appirater setSignificantEventsUntilPrompt:-1];
[Appirater setTimeBeforeReminding:2];
[Appirater setDebug:NO];
[Appirater appLaunched:YES];

SKStoreReviewController

In iOS 10.3, SKStoreReviewController was introduced which allows rating directly within the app without any additional setup.

Appirater automatically uses SKStoreReviewController if available. You'll need to manually link StoreKit in your App however.

If SKStoreReviewController is used, Appirater is used only to decide when to show the rating dialog to the user. Keep in mind, that SKStoreReviewController automatically limits the number of impressions, so the dialog might be displayed less frequently than your configured conditions might suggest.

License

Copyright 2017. [Arash Payan] arash. This library is distributed under the terms of the MIT/X11.

While not required, I greatly encourage and appreciate any improvements that you make to this library be contributed back for the benefit of all who use Appirater.

Ports for other SDKs

A few people have ported Appirater to other SDKs. The ports are listed here in hopes that they may assist developers of those SDKs. I don't know how closesly (if at all) they track the Objective-C version of Appirater. If you need support for any of the libraries, please contact the maintainer of the port.