🛍️

【iOS 17】StoreKitに追加されたAPIを試す

2023/08/25に公開


アプリ内課金機能を搭載するためには、購入処理のロジックや、ユーザーの課金アイテム購入状況を考慮したUIを実装する必要がありました。これらの実装は、未経験の方はもちろん、実装経験がある方にとってもそれなりに負荷がかかるものでした。
iOS 17から使用可能なStoreKitのSwiftUI Viewとモディファイアがいくつか追加されました。これらを使用することで、わずか数行のコードでアプリ内課金機能をアプリに搭載することができます。

新しく追加されたSwiftUI View

ProductView

引数に課金アイテムのProductIDを指定することで、指定したProductIDのアイテムを購入するためのViewを表示することができます。productViewStyle(_:) でViewの外観を変更することができます。

StoreView

引数に課金アイテムのProductIDのコレクションを指定することで、指定したProductIDのアイテムを購入するためのViewをリスト形式で表示することができます。

SubscriptionView

引数に課金アイテムのProductIDのコレクションを指定することで、指定したProductIDのサブスクリプションイテムを購入するためのViewを表示することができます。

新しく追加されたモディファイア

onInAppPurchaseStart(perform:)

onInAppPurchaseStart(perform:) は購入処理が開始したことを検知するためのモディフィアです。購入処理を行う前に行いたい処理を記述することができます。

onInAppPurchaseCompletion(perform:)

onInAppPurchaseCompletion(perform:) は購入処理が完了したことを検知するためのモディフィアです。購入処理の結果を受けて、UIやデータの更新を行うことができます。

アプリ内課金処理の実装

前準備

今回は消費型の課金アイテムを実装します。

前準備として、App Store Connectを操作して、アプリ内課金アイテムを追加します。さらに、TestFlightでアプリをテスターに配信できる状態にする必要があります。
App Store Connect上で、アプリ内課金アイテムを追加する方法は、以下をご参照ください。
https://developer.apple.com/jp/help/app-store-connect/manage-in-app-purchases/create-consumable-or-non-consumable-in-app-purchases/

サンプルコード

参考資料

・Meet StoreKit for SwiftUI
https://developer.apple.com/videos/play/wwdc2023/10013/

Discussion