Edited at

SKStoreReviewController.requestReview()を通っているのにレビュー依頼画面が表示されない時のチェック事項

More than 1 year has passed since last update.


最初に結論

SKStoreReviewController.requestReview()を発火させてもポップアップが表示されない場合に考えられる原因は

1. 端末の時間を変更している

2. ネットワーク通信ができていない

3. TestFlight経由である

レビューを配布テストしたい場合はプロモーションコード経由のテストを行いましょう


概要

iOS 10.3以降で使える

Appleが公式で用意しているレビュー訴求用のAPI

SKStoreReviewController

表示するのは非常にカンタンで以下のように一行書くだけです。


ViewController.swift

import UIKit

// ↓これをimport
import StoreKit

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

// これで発火
SKStoreReviewController.requestReview()
}
}


このように表示されます。

IMG_7434.PNG

この画面はappleにapiで問い合せて表示しています。

その為、メソッドを発火させてもポップアップを表示させるには

api通信で成功し、表示させるべく結果が返ってくる必要があります。

この時、圏外であれば当然結果が返ってこないため表示がされず、

また端末の時間が現在時刻から変更されていると表示されません。

(試すとだいたい前後5日以上ずれていると表示されない)

TestFlight経由でも、このポップアップは表示されません。

https://developer.apple.com/documentation/storekit/skstorereviewcontroller/2851536-requestreview


When you call this method while your app is still in development mode, a rating/review request view is always displayed so that you can test the user interface and experience. However, this method has no effect when you call it in an app that you distribute using TestFlight.


社内などのテスト配布で

このポップアップを確認したい場合は

プロモーションコードを利用して行えば可能であるようです。


結論(再掲)

SKStoreReviewController.requestReview()を発火させてもポップアップが表示されない場合に考えられる原因は


  1. 端末の時間を変更している

  2. ネットワーク通信ができていない

  3. TestFlight経由である


  • レビューを配布テストしたい場合はプロモーションコード経由のテストを行いましょう

「メソッド通っているのに画面が表示されない」と

デバッグに苦しむ前に、思い出して頂ければと思います。