Skip to content
This repository

A utility that reminds your iPhone app's users to review the app.

branch: master

Merge pull request #169 from sticksen/master

removing self as an Observer from NSNotificationCenter
latest commit 217d882dc9
Arash Payan authored
Octocat-spinner-32 ar.lproj Added Arabic localization November 23, 2013
Octocat-spinner-32 ca.lproj - Catalan localization October 14, 2012
Octocat-spinner-32 cs.lproj fixed Czech again (last one, I promise :)) October 27, 2012
Octocat-spinner-32 da.lproj Don't clobber an app's existing Localizable.strings files. September 07, 2012
Octocat-spinner-32 de.lproj Minor change in capitalisation (german) May 25, 2013
Octocat-spinner-32 el.lproj Greek localization January 30, 2013
Octocat-spinner-32 en.lproj Changed capitalisation to keep consistency May 24, 2013
Octocat-spinner-32 es.lproj Don't clobber an app's existing Localizable.strings files. September 07, 2012
Octocat-spinner-32 fi.lproj Converted Finnish and Norwegian localizations to UTF-8 November 14, 2012
Octocat-spinner-32 fr.lproj Multiple corrections in french translation May 25, 2013
Octocat-spinner-32 he.lproj Hebrew localization compliments of Ron Grosberg November 10, 2012
Octocat-spinner-32 hu.lproj Hungarian localization November 21, 2012
Octocat-spinner-32 id.lproj Add Indonesia translation June 03, 2013
Octocat-spinner-32 it.lproj more minor changes to italian localization November 27, 2013
Octocat-spinner-32 ja.lproj Don't clobber an app's existing Localizable.strings files. September 07, 2012
Octocat-spinner-32 ko.lproj Don't clobber an app's existing Localizable.strings files. September 07, 2012
Octocat-spinner-32 ms.lproj Added Malay localization courtesy of translator colleague November 06, 2013
Octocat-spinner-32 nb.lproj Minor translation fix (Norwegian) May 06, 2013
Octocat-spinner-32 nl.lproj Don't clobber an app's existing Localizable.strings files. September 07, 2012
Octocat-spinner-32 pl.lproj - Catalan localization October 14, 2012
Octocat-spinner-32 pt-BR.lproj Added Brazilian Portuguese localization courtesy of translator colleague November 06, 2013
Octocat-spinner-32 pt.lproj Don't clobber an app's existing Localizable.strings files. September 07, 2012
Octocat-spinner-32 ro.lproj Romanian translation February 28, 2013
Octocat-spinner-32 ru.lproj Added missing comma to Russian localization November 06, 2013
Octocat-spinner-32 sk.lproj Slovak translation added. October 11, 2012
Octocat-spinner-32 sv.lproj Improved Swedish localization courtesy of translator colleague November 06, 2013
Octocat-spinner-32 th.lproj Added Thai localization courtesy of translator colleague November 06, 2013
Octocat-spinner-32 tr.lproj Turkish localization, compliments of Olivier Carruezco February 01, 2013
Octocat-spinner-32 uk.lproj Corrected Ukrainian locale. February 26, 2014
Octocat-spinner-32 vi.lproj Missing semicolon in Vietnamese localization November 10, 2013
Octocat-spinner-32 zh-Hans.lproj Don't clobber an app's existing Localizable.strings files. September 07, 2012
Octocat-spinner-32 zh-Hant.lproj Don't clobber an app's existing Localizable.strings files. September 07, 2012
Octocat-spinner-32 .gitignore Add .gitignore August 31, 2012
Octocat-spinner-32 Appirater.h more control to show prompt December 10, 2013
Octocat-spinner-32 Appirater.m removing self as an Observer from NSNotificationCenter March 13, 2014
Octocat-spinner-32 Appirater.podspec Version 2.0.2 September 24, 2013
Octocat-spinner-32 AppiraterDelegate.h Added config option for disabling animation (used in StoreKit views) … January 11, 2013
Octocat-spinner-32 CHANGELOG.md Version 2.0.2 September 24, 2013
Octocat-spinner-32 README.md Fixes #163 (error in example) February 06, 2014
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 check out the Appirater group.

Getting Started

Cocoapods

If you're new to Cocoapods watch this. To add Appirater to your app, add pod "Appirater" to your Podfile.

Cocoapods support is still experimental, and might not work in all use cases. If you experience problems, open an issue and install via Git submodule

Git submodule

  1. Add the Appirater code into your project.
  2. If your project doesn't use ARC, add the -fobjc-arc compiler flag to Appirater.m in your target's Build Phases » Compile Sources section.
  3. Add the CFNetwork, SystemConfiguration, and StoreKit frameworks to your project. Be sure to change Required to Optional for StoreKit in your target's Build Phases » Link Binary with Libraries section.

Configuration

  1. Appirater provides class methods to configure its behavior. See 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];

Help and Support Group

Requests for help, questions about usage, suggestions and other relevant topics should be posted at the Appirater group. As much as I'd like to help everyone who emails me, I can't respond to private emails, but I'll respond to posts on the group where others can benefit from the Q&As.

License

Copyright 2013. Arash Payan. 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.

Tips

Bitcoin tips are welcome: 1PxVtrzR4oHEKPojVx41JJnWGuPLggYDQy

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.

  • MonoTouch Port (using C#). Github
  • MonoTouch Binding (using native Appirater). Github
  • Corona SDK. Github
  • Titanium SDK. Github
Something went wrong with that request. Please try again.