【Swift/StoreKit】アプリ内課金のテスト環境を用意する方法!
この記事からわかること
- Swift/iOSでアプリ内課金をテストする方法
- StoreKitの使い方
- StoreKit Configuration Fileとは?
- テスト環境構築方法
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- Xcode:16.0
- iOS:18.0
- Swift:5.9
- macOS:Sonoma 14.6.1
StoreKit(アプリ内課金)のテスト環境
公式リファレンス:Setting up StoreKit Testing in Xcode
iOSアプリでアプリ内課金を実装する際に動作確認を行うための機能としてXcodeではテスト環境を構築できるようになっています。テスト環境を構築しておくことで本番のApp Storeサーバーに接続せずローカルで課金アイテムの取得や購入などの動作を確認することができるようになります。
動作確認できること
- App Store Connectでの設定を行う前のアプリ内課金のテスト
- ネットワーク接続できない状態でのテスト
- サンドボックス環境では設定が難しいアプリ内課金のユースケース(プロモーションオファーの適格性など)をデバッグ
- 支払いシートでローカライズされた製品情報を表示
- 失敗したトランザクションも含め、トランザクションをエンドツーエンドでテスト
- StoreKitテストの自動化:参照 StoreKit Testフレームワーク
テスト環境はXcode内に「StoreKit Configuration File(拡張子.storekit)」を用意することで構築することができます。このファイルはXcodeでプロジェクト内に手動で作成もしくはApp Store Connectに設定済みであれば同期されたファイルを設定することも可能です。
テスト環境を構築する方法
テスト環境を構築するステップを大きく分けて2つです。
- StoreKit Configuration Fileを追加する
- StoreKitテストスキームを作成する
1.StoreKit Configuration Fileを追加する
Xcode上部メニューの「File」>「New」>「File from Template...」から「storekit
」と入力して「StoreKit Configuration File」を選択します。
「Sync this file...」にチェックを入れることでApp Store Connectに設定済みであれば同期したファイルを自動生成することが可能です。未設定であればチェックはつけずにファイル名を入力して「Next」をクリックすることで手動で課金アイテムを設定できるようになります。ファイル名は何でも良いですが、同期ファイルなら「SyncProducts
」、非同期ファイルなら「AsyncProducts
」などがわかりやすいと思います。
今回は非同期で進んでいくのでデフォルトでは生成されたファイルには課金アイテムが1つもありません。一番左下の「 + 」から任意の課金アイテムの種類を選択して追加することが可能です。
- Consumable(消耗型)
- Non-Consumable(非消耗型)
- Auto-Renewing Subscription(自動更新サブスクリプション)
- Non-Renewable Subscription(非更新サブスクリプション)
例えば「Consumable(消耗型)」を選択して進んでみます。最初に「Reference Name」と「 Product ID」を設定します。
作成すると「IN-APP PURCHASE」内に追加した課金アイテムが表示されます。ここからアイテムの詳細な設定(金額や画像、Localizationsなど)を変更することが可能です。
デフォルトでは「Localizations」に「English(U.S.)
」がありますが「Display Name
」が空なので入力しておいてください。
2.StoreKitテストスキームを作成する
課金アイテムの準備が整ったら実際にテスト環境を有効にしていきます。有効にするための設定(StoreKit Configuration Fileの反映)はスキーム単位で行うので既存のスキームもしくは新規でスキームを作成して設定を行なっていきます。今回は「StoreKit-Test
」というスキームを作成して設定していきます。
スキームを新規作成したら「Edit Scheme」から「Run」>「Options」>「StoreKit Configuration」から先ほど生成したStoreKit Configuration Fileを選択します。これでこのスキームではテスト環境(ローカル)でアプリ内課金の動作確認を行うことができるようになります。
元に戻す(App Storeサーバーに接続する)にはNone
に戻してください。
StoreKit Configuration Fileの設定
※ 同期ファイルの場合はそのままでは変更ができないので「Editor」>「Convert to Local StoreKit Configuration」からローカルファイルに変換する必要があります。また左下隅の「Sync」ボタンをクリックして、App Store Connectから最新の情報にアップデートすることも可能です。
「StoreKit Configuration File」の「Configuration Settings」からテスト環境の構成をカスタマイズすることが可能です。この設定から購入設定やフローの中で発生しうるエラーをシミュレートすることが可能です。
- Default Storefront:デフォルトの通貨
- Default Localization:デフォルトの通貨
- Purchase Options:購入設定
- Simulated StoreKit Failures Options:エラーシミュレーション
購入トランザクション履歴を確認する
シミュレーターなどで購入テストを実行した際のトランザクション履歴はXcode上部メニュー「Debug」>「StoreKit」>「Manage Transactions..」から確認することができます。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。