Learn iPhone, iOS, Objective-c, Swift, cocos2dx, Unity and ….?

iOSやAndroid開発でのエラー解決法や便利tipsのメモ

RSS Feed

Objective-C – レビュー誘導アラートの実装(iRate) –

0 Comments
Posted by Kuro on 2013/02/03

スポンサードリンク

iRateというMITライセンスのライブラリを使った実装方法を紹介します。

導入手順

https://github.com/nicklockwood/iRateからiRateをダウンロードし、iRateフォルダをプロジェクトに追加してください。

デフォルトで数十カ国分多言語対応されています。
多言語対応をしない場合はiRate.bundleは追加する必要ありません

ARCを使用しないプロジェクトの場合はTargets » Build Phases » Compile SourcesからiRate.mを見つけてダブルクリックし、compiler flagに”-fobjc-arc”を追加してください。

StoreKitフレームワークを追加してください。

後述するようにいろいろと使いにくいのですが、基本的にこれだけで機能します。

表示条件等の設定

iRateにはAppIDを設定する場所がありません。
bundle IDを使ってAppIDを自動で取ってきてくれます。
しかし、この仕様はかなり不便。
previewMode以外だと”iRate could not find your app on iTunes. If your app is not yet on the store or is not intended for App Store release then don’t worry about this”とログが出力されて評価アラートは表示されません。

直接AppIdを指定してもBundleIdと一致しないといったログが出てアラートは出ず。
結局ソースコードを書き換えるはめになります。

initに中でAppIdを設定し、checkForConnectivityInBackgroundの中の整合性チェックを行なっているif文を回避するようにしました。
自分が気が付かないだけで、さすがに他にもっと簡単な方法があるのかもしれません。

各項目の条件がやや分かりづらいです。
式で説明すると以下のようになります。
“if (self.daysUntilPrompt and (self.usesUntilPrompt or self.eventsUntilPrompt))”

この場合、2日経過した後、5回あるイベント通過または5回起動した後にアラートが表示されます。
“self.usesUntilPrompt”と”self.eventsUntilPrompt”は使わない場合はINT_MAXのような大きな値を、self.daysUntilPromptは”0″を入れます。
ちなみにiRateは比較する値にNSUIntegerというunsigned intを使っているのでAppiraterのように”-1″を入れてしまうと比較演算子が正しく機能しません。

最後に…

日本語が変です。

iRate_message

ここまで書いてきて言うのもなんですが、AppStoreの評価ページに誘導するアラート表示ライブラリはAppiraterの方が使いやすいです。
Appiraterについてはこちらを参照ください。
Objective-C – レビュー誘導アラートの実装(iRate) –

スポンサードリンク


You can leave a comment, or trackback from your own site.

0 Comments

You can be the first to comment!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサードリンク

Popular Posts