概要
iOS18.2からアプリ内購入時のエラーの頻度が増加した。
どうやらiOS18.2でStoreKit
のpurchase
メソッドに変更があり、その影響を受けたものと見られる。
iOS18.2より前から存在するメソッドに以下のような記述があり、UIKitを使用している場合はcomfirmIn
とoptions
を引数とする方のメソッドを使えとのこと。
Use Product/purchase(confirmIn:options:) for apps that use UIKit.
結論
UIKitを用いているアプリはpurchase
メソッドをiOS18.2以降と未満で処理を分ける。
if #available(iOS 18.2, *) {
result = try await product.purchase(confirmIn: viewController)
} else {
result = try await product.purchase()
}
実装時に参考にしたスレッドなど
Apple Forums
X