
【iOS】requestReview(in:)がiOS 18から非推奨だったので対応した
はじめに
スターバックス デジタルテクノロジー部のリルオッサです。
ユーザーにアプリの評価を促すSKStoreReviewController.requestReview(in:)がiOS 18から非推奨になっていたので、推奨されている形に直す為に調べました。
実は4年前にもreviewRequestの書き換え記事を書いており、4年越しの続編となっております。
環境
- Xcode 26.1
- iOS 26.1
requestReview(in:)とは
ユーザーにアプリのレビューを促すこのような画面を出す処理になります。

SwiftUIでの実装
SwiftUIでは、iOS 16以降からEnvironmentValuesにrequestReviewというプロパティが追加されており、以下のようにシンプルに呼び出せます。
import SwiftUI
import StoreKit
struct ContentView: View {
@Environment(\.requestReview) var requestReview
var body: some View {
Button("🦑") {
requestReview()
}
}
}
UIKitでの実装
SwiftUIでのシンプルな実装については紹介しましたが、UIKitではこのシンプルな呼び出し方法をそのまま使用することはできないため、以下のようなコードで呼び出している方が多いのではないでしょうか。
import StoreKit
//...
func requestReview() {
if let scene = view.window?.windowScene {
SKStoreReviewController.requestReview(in: scene)
}
}
ただ、iOS 18からこのメソッドは非推奨になってしまったため、書き換える必要があります。

ドキュメントにも代わりになるメソッドが記してあるため、そのメソッドを使用します。
Use AppStore.requestReview(in:).
AppStoreのメソッドに書き換え
このAppStore.requestReview(in:)はiOS 16以上で使える点や、既存のメソッドを大きく書き換える必要がないため、簡単に移行できそうです。
書き換え後は次の例になります。
import StoreKit
//...
func requestReview() {
if let scene = view.window?.windowScene {
AppStore.requestReview(in: scene)
}
}
おわりに
レビューリクエストをユーザーとアプリの評価の大切な接点なので大事にしていきたいですね。
Human Interface Guideline に記載のベストプラクティスに沿ってユーザーが評価したくなるようなタイミングを研究していきたいと思います。
iOSエンジニア募集中
スターバックス デジタルテクノロジー部では、iOSアプリ開発のできるエンジニアを募集しています。
iOSアプリ開発についてワイワイしながら一緒に働いてくれる仲間をお待ちしています☺










