【Swift/iOS】レビューリクエストを実装する方法!StoreKit
この記事からわかること
- App Storeのアプリレビューリクエストを実装方法
- Swiftでアプリ内からレビューページに直接遷移させる方法
- iOS18移行のAppStore.requestReview(in:)の使い方
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- Xcode:16.0
- iOS:18.0
- Swift:5.9
- macOS:Sonoma 14.6.1
iOSアプリでレビューリクエスト
iOSアプリでアプリ内からApp Storeのレビューをリクエストしたい場合はよくあると思います。Swiftでは以下のようなアプリ内から星を選択できるレビューリクエストが簡単に実装できるようになっています。
また今回紹介する方法とは別にはなりますがアプリレビューページのURLを取得し、アプリ内から起動させることで直接レビューページに飛ばす方法もあるので参考にしてみてください。
実装方法
レビューリクエストはStoreKit
フレームワークのSKStoreReviewController.requestReview(in:)
を使用します。引数には表示するための画面としてUIWindowScene
を渡します。
import StoreKit
guard let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene else { return }
// レビューリクエストポップアップを表示する
SKStoreReviewController.requestReview(in: scene)
これを呼び出すだけでアプリアイコンと星を入力して送信できるポップアップが表示されユーザーがアプリ内からレビューを投稿できるようになります。
Swift UIでの実装
Swift UIの場合はrequestReview
環境値を読み取ってRequest
のインスタンスを取得しそれを関数として呼び出すことで簡単に実装することもできます。
@Environment(\.requestReview) private var requestReview
RootView()
.onAppear {
requestReview()
}
iOS18以降の実装
レビューリクエストの実装方法はこれまでiOSのバージョンとともに少しずつ変化してきています。
- iOS14以前:SKStoreReviewController.requestReview()
- iOS14〜18:SKStoreReviewController.requestReview(in:)
- iOS18以降:AppStore.requestReview(in:)
iOS18以降の開発であればAppStore.requestReview(in:)
を使用するのがよさそうです。
import StoreKit
guard let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene else { return }
AppStore.requestReview(in: scene)
レビューリクエストのガイドライン
レビューリクエストはAppleの掲げているガイドラインに従って実装することが推奨されています。
公式リファレンス:Requesting App Store reviews
- 365日の間に3回まで
- ユーザーの操作を遮らない
- 新規ユーザーのアプリ起動時に表示しない
- ユーザーのアクションの結果として表示しない
- システムポップを使用する
レビューリクエストは適切なユーザーに適切なタイミングで表示させることが重要でユーザーに煩わしくない程度に制御する必要があります。
Apple推奨の実装
Appleの公式サイトではレビューリクエストを表示させる条件として「アプリの起動回数」や「バージョンごとに一回」のような制限を付与することを推奨しています。
レビュー依頼をしたい「好評化をつけてくれそうなユーザー」を考えるとある程度アプリを使ってくれた人になるかと思います。そのためアプリの起動回数だけでなく、データの保存数などアプリの活用度に合わせて出してあげるような設計が良さそうです。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。