iOS サンドボックス テストの構成
iOS でアプリ内購入をテストするには、App Store Connect とテスト デバイスで適切な設定が必要です。このガイドでは、サンドボックス テストを開始するために必要なすべてを説明します。
- Apple 開発者プログラム: 毎年更新されるアクティブなメンバーシップ
- 契約: 銀行業務および税務情報を記入した「有料アプリケーション契約」に署名済み
- Xcode プロジェクト: 適切なバンドル識別子と機能で構成されています
セットアッププロセス
Section titled “セットアッププロセス”-
有料アプリケーション契約書に署名します
App Store Connect で、契約、税金、銀行 に移動し、次の項目を完了します。
- 有料アプリケーション契約に署名します
- 銀行情報を追加します
- 納税フォームに記入してください
Apple があなたの情報を承認するまで待ちます (これには 24 ~ 48 時間かかる場合があります)。
-
サンドボックス テスト ユーザーの作成
App Store Connect で、ユーザーとアクセス > サンドボックス テスター に移動します。
+ ボタンをクリックして、新しいサンドボックス テスターを作成します。
重要: Apple ID にまだ関連付けられていない電子メール アドレスを使用してください。電子メール エイリアスを使用できます。
- Gmail:
youremail+test@gmail.com - iCloud:
youremail+test@icloud.com

- Gmail:
-
テストデバイスの構成 (iOS 12+)
iOS 12 以降、購入をテストするために iTunes アカウントからサインアウトする必要はなくなりました。
iOS デバイスで:
- 設定を開きます
- 「App Store」をタップします
- 一番下までスクロールします
- [サンドボックス アカウント] をタップします
- サンドボックス テスト アカウントでサインインします。
:::ヒント これは、iTunes アカウントからサインアウトする古い方法よりもはるかに便利です。 :::
-
Xcode プロジェクトの構成
Xcode プロジェクトに以下が含まれていることを確認してください。
バンドル識別子
- デベロッパー センターの識別子と一致する必要があります
- App Store Connect の識別子と一致する必要があります
アプリ内購入機能
- Xcode でプロジェクトを選択します
- 署名と機能に移動します
- [+ 機能] をクリックします。
- アプリ内購入を追加します
-
アプリ内購入製品の作成
App Store Connect で、アプリに移動し、アプリ内購入製品 (サブスクリプション、消耗品など) を作成します。
サンドボックス テストでは、製品が少なくとも「送信準備完了」ステータスにある必要があります。
-
実装をテストする
テスト デバイスでアプリをビルドして実行します。購入しようとすると、次のように表示されます。
[環境: サンドボックス]
この確認は、サンドボックス環境にいて、実際のお金が請求されないことを示します。
重要な注意事項
Section titled “重要な注意事項”サンドボックス環境の特性- 実質料金なし: サンドボックス モードではすべての購入が無料です
Section titled “サンドボックス環境の特性- 実質料金なし: サンドボックス モードではすべての購入が無料です”- 高速サブスクリプション: テストを迅速化するためにサブスクリプション期間が短縮されます。
- 1 週間のサブスクリプション = 3 分
- 1 か月のサブスクリプション = 5 分
- 2 か月のサブスクリプション = 10 分
- 3 か月のサブスクリプション = 15 分
- 6 か月のサブスクリプション = 30 分
- 1 年間のサブスクリプション = 1 時間
- 自動更新制限: サブスクリプションはサンドボックスで最大 6 回まで自動更新されます
- 即時キャンセル: キャンセルされたサブスクリプションはすぐに期限切れになります
サンドボックスアカウント管理
Section titled “サンドボックスアカウント管理”- さまざまなシナリオ用に複数のテスト アカウントを作成します
- テスト アカウントはテスト デバイスでのみ使用します
- サンドボックス テストには個人の Apple ID を使用しないでください
- テストアカウントは地域に関係なくあらゆる製品を購入できます
サンドボックス テストの使用
Section titled “サンドボックス テストの使用”import { NativePurchases, PURCHASE_TYPE } from '@capgo/native-purchases';
const { isBillingSupported } = await NativePurchases.isBillingSupported();if (!isBillingSupported) { throw new Error('StoreKit not supported on this device');}
// Fetch products (automatically uses sandbox when available)const { products } = await NativePurchases.getProducts({ productIdentifiers: ['premium_monthly'], productType: PURCHASE_TYPE.SUBS,});
// Make test purchaseconst transaction = await NativePurchases.purchaseProduct({ productIdentifier: 'premium_monthly', productType: PURCHASE_TYPE.SUBS,});
console.log('Test purchase successful!', transaction.transactionId);正しく構成されている場合は、次の点に注意してください。
- 購入時の サンドボックス バナー: 「[環境: サンドボックス]」
- 製品は正常に読み込まれます
- 実際の料金なしで購入が完了
- 領収書は正しく検証されます
- サブスクリプションは自動的に更新されます (高速で)
トラブルシューティング
Section titled “トラブルシューティング”製品が読み込まれていません:
- バンドル識別子が App Store Connect と一致することを確認します
- 契約書が署名され、承認されていることを確認する
- 製品が少なくとも「送信準備完了」ステータスであることを確認してください
- 製品を作成した後、2 ~ 3 時間待ちます
「iTunes Store に接続できません」:
- サンドボックス アカウントが正しく構成されていることを確認します
- デバイスがインターネットに接続されていることを確認してください
- サンドボックス アカウントからサインアウトして再度ログインしてみてください
- アプリを再起動します
購入がサイレントに失敗する:
- Xcode コンソールでエラー メッセージを確認してください
- アプリ内購入機能が有効になっていることを確認します
- サンドボックス アカウントのメールアドレスが実際の Apple ID でないことを確認してください
- 新しいサンドボックス テスト アカウントを作成してみる
受信検証エラー:
- テストでサンドボックス受信検証エンドポイントを使用する
- 本番エンドポイント:
https://buy.itunes.apple.com/verifyReceipt - サンドボックス エンドポイント:
https://sandbox.itunes.apple.com/verifyReceipt - ネイティブ購入プラグインはこれを自動的に処理します
間違ったサブスクリプション期間:
- サブスクリプションはサンドボックスで高速化されることを忘れないでください
- 予想される期間については上記の換算表を使用してください
- サブスクリプションはサンドボックスで最大 6 回自動更新されます
「この Apple ID は iTunes Store でまだ使用されていません。」:
- これは新しいサンドボックス アカウントでは正常です
- 購入を進めてアカウントを有効化してください
- 最初の使用時にのみ発生します
ベストプラクティス
Section titled “ベストプラクティス”- さまざまなテスト シナリオ用に 複数のテスト アカウントを作成
- すべてのサブスクリプション期間をテストして動作を確認します
- テストのキャンセルと更新の流れ
- 領収書の検証が正しく機能することを確認します
- 購入の復元をテスト 機能
- サブスクリプションのアップグレード/ダウングレードの動作を確認します
- 劣悪なネットワーク条件でのテスト
本番環境とサンドボックスの比較
Section titled “本番環境とサンドボックスの比較”| 特集 | サンドボックス | 制作 |
|---|---|---|
| 実質料金 | いいえ | はい |
| 購読期間 | 加速 | 通常 |
| 自動更新の制限 | 6回 | 無制限 |
| キャンセル効果 | 即時 | 期間の終わり |
| 受信エンドポイント | サンドボックス URL | 制作URL |
| テストアカウントのみ | はい | いいえ |