【Xcode/Swift】レビュー依頼機能の実装方法~たった4行で記述~

レビュー依頼機能とは?

このような星だけで評価できるレビューボックスのことです。

表示条件

以下の条件に当てはまらないと表示されません。

  • iOS10.3以降であること。
  • iPhoneの設定で「App内評価とレビュー」がオンであること。(設定>App Store>App内評価とレビュー)
  • 3回以上表示させてないこと。(1年間でリセット)
  • AppStoreからの配信であること。

実装方法

まずは、importを行う。

import StoreKit

出したいタイミングで以下のコードを記述する

if let scene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
    SKStoreReviewController.requestReview(in: scene)
}

たったこれだけです。

OSバージョンを意識する

ちなみに、上記の書き方は、iOS14以上向けの書き方です。

以前は以下のように1行出かけたのですが、iOS14から非推奨になってしまいました。こちら

SKStoreViewController.requestReview()

そのため、ターゲットがiOS14未満のプロジェクトの場合は、以下のように記述した方が良いです。

if #available(iOS 14.0, *) {
    if let scene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene {
        SKStoreReviewController.requestReview(in: scene)
    }
} else if #available(iOS 10.3, *) {
    SKStoreReviewController.requestReview()
}

別の書き方

以下のような書き方もできます。しかし、この場合は、現在の画面が確実にアクティブな時に使いましょう。

if let scene = UIApplication.shared.connectedScenes.first as? UIWindowScene {
    SKStoreReviewController.requestReview(in: scene)
}