✍️
【UIKit】iOS18で終わるSKStoreReviewControllerに変わるAppStore.requestReview(in:)
iOS16から始まった(というか実際の心理的にはiOS18で引退する SKStoreReviewController.requestReview(in:)
の替わりになる)レビュー依頼のやり方は、SwiftUIのものはいくつか紹介しているものがある(最後に紹介)。この記事ではUIKitのやり方を紹介する。
UIKitの書き方は
extension AppStore {
@available(iOS 16.0, visionOS 1.0, *)
@available(macOS, unavailable)
@available(watchOS, unavailable)
@available(tvOS, unavailable)
@MainActor public static func requestReview(in scene: UIWindowScene)
}
を使って、scene
に UIWindowScene
を入れて
import StoreKit
AppStore.requestReview(in: scene)
とする。scene
の取得は従来通りかと( SKStoreReviewController.requestReview(in:)
で検索すると解説しているものが多くある)。
背景
第1期 SKStoreReviewController.requestReview()
10.3-14.0
第2期 SKStoreReviewController.requestReview(in:)
14.0-18.0
第3期 AppStore.requestReview(in:)
18.0-
@available(iOS, introduced: 10.3, deprecated: 18.0, message: "Use AppStore.requestReview(in:)")
open class SKStoreReviewController : NSObject, @unchecked Sendable {
@available(iOS, introduced: 10.3, deprecated: 14.0, message: "Use -[SKStoreReviewController requestReviewInScene:]")
open class func requestReview()
@available(iOS, introduced: 14.0, deprecated: 18.0, message: "Use AppStore.requestReview(in:)")
@MainActor open class func requestReview(in windowScene: UIWindowScene)
}
確認
シミュレータで表示を確認できました。
SwiftUI向けのもの
おまけ
OSにこんな機能がほしい
気が向いた時にまとめていくつか入力できる。
Discussion