コンテンツにジャンプ

iOSサンドボックステストの設定

GitHub

iOSでインストア購入をテストするには、App Store Connectとテストデバイスで適切な設定が必要です。このガイドでは、サンドボックステストを始めるために必要な全てのステップをカバーしています。

  • Apple Developer Program: 年間更新の有効な会員資格
  • 契約: 銀行と税金の情報を入力した “有料アプリケーション契約”に署名
  • Xcode Project: 正しいバンドル識別子と機能を持つように設定
  1. アプリケーションに対する有料契約を署名する

    App Store Connectに移動し、 契約、税金、銀行 を完了する

    • App Store Connectで有料アプリケーション契約を署名する
    • 銀行情報を追加する
    • 税金の書類を完了する

    Appleが情報を承認するのを待つ (24-48時間かかることがある)

  2. サンドボックステストユーザーを作成する

    App Store Connectに移動し、 ユーザーとアクセス > サンドボックステストユーザー.

    をクリックする + 新しいサンドボックステスターを作成するボタン。

    重要使用するメールアドレスは、Apple IDに関連付けられていないものを選択してください。メールアリセイも使用できます。

    • Gmail: youremail+test@gmail.com
    • iCloud: youremail+test@icloud.com

    サンドボックステスターを作成

  3. テストデバイスを設定 (iOS 12+)

    iOS 12以降では、購入テストを行うためにiTunesアカウントからサインアウトする必要はありません。

    iOSデバイスで

    1. 開く 設定
    2. タップ App Store
    3. 下にスクロールしてください
    4. タップ サンドボックスアカウント
    5. サンドボックステストアカウントでサインインしてください
  4. Xcodeプロジェクトの設定

    Xcodeプロジェクトには次の条件を満たす必要があります:

    バンドル識別子

    • 開発者センターに記載されている識別子と一致する必要があります
    • App Store Connect の識別子と一致する必要があります。

    イン アプリ 購入 能力

    1. Xcode でプロジェクトを選択してください
    2. Go to Signing & Capabilities
    3. Click + Capability
    4. Add イン アプリ 購入
  5. イン アプリ 購入商品を作成

    App Store Connect でアプリを選択し、イン アプリ 購入商品を作成してください (サブスクリプション、消費可能商品など)。

    商品は少なくとも「提出準備完了」状態でなければなりません。

  6. 実装をテストする

    テストデバイスでアプリをビルドして実行してください。購入を試みると、次のようになります:

    [環境: サンドボックス]

    この確認は、サンドボックス環境にいることを示し、実際の金銭的負担はありません。

  • 実際の請求はなし: サンドボックスモードではすべての購入が無料です
  • 加速されたサブスクリプション: サブスクリプションの期間は短縮され、テストを高速化します
    • 1 週間サブスクリプション = 3 分
    • 1 か月サブスクリプション = 5 分
    • 2 か月サブスクリプション = 10 分
    • 3 か月サブスクリプション = 15 分
    • 6 か月サブスクリプション = 30 分
    • 1 年サブスクリプション = 1 時間
  • 自動更新制限: サンドボックス環境でサブスクリプションが 6 回自動更新される
  • 即時キャンセル: キャンセルされたサブスクリプションは即時有効期限切れ
  • 異なるシナリオ用に複数のテストアカウントを作成する
  • テスト用デバイス以外でテストアカウントを使用しない
  • サンドボックステストのために個人的なApple IDを使用しない
  • テストアカウントは、地域に関係なく、どの製品も購入できる
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 purchase
const transaction = await NativePurchases.purchaseProduct({
productIdentifier: 'premium_monthly',
productType: PURCHASE_TYPE.SUBS,
});
console.log('Test purchase successful!', transaction.transactionId);

設定が正しく行われている場合、次のことを観察することができます:

  1. サンドボックスバナー 購入時:「[環境:サンドボックス]」
  2. 製品の読み込み 正常に読み込まれました
  3. 購入が完了 実際の請求なしで
  4. 領収書の検証 正しく検証されました
  5. サブスクリプションの更新 自動的に更新されます (加速された速度で)

製品が読み込まれていない:

  • バンドル識別子がApp Store Connectと一致することを確認してください
  • 契約が署名され、承認されていることを確認する
  • 製品が少なくとも「提出可能」状態であることを確認する
  • 製品を作成した後2-3時間待つ

“Cannot connect to iTunes Store”:

  • サンドボックスアカウントが正しく設定されていることを確認する
  • デバイスがインターネットに接続されていることを確認する
  • サンドボックスアカウントからログアウトし、再度ログインする
  • アプリを再起動する

購入が静かに失敗している:

  • Xcodeコンソールでエラーメッセージを確認する
  • In-App Purchase機能が有効になっていることを確認する
  • サンドボックスアカウントのメールアドレスが実際のApple IDではないことを確認する
  • 新しいサンドボックステストアカウントを作成してみましょう

受け取った金額の検証エラー:

  • テスト用にサンドボックス受け取った金額の検証エンドポイントを使用してください
  • 本番エンドポイント: https://buy.itunes.apple.com/verifyReceipt
  • サンドボックスエンドポイント: https://sandbox.itunes.apple.com/verifyReceipt
  • ネイティブ購入プラグインは自動的にこの処理を実行します

サブスクリプション期間が間違っている:

  • サブスクリプションはサンドボックスで加速されるため、ご注意ください
  • サブスクリプション期間の変換表を上に参照してください
  • サブスクリプションはサンドボックスで最大6回自動更新されます

「このApple IDはまだiTunes Storeで使用されていません」:

  • 新しいサンドボックスアカウントの場合、これは正常です
  • 購入を進めてアカウントを有効化
  • 初回使用のみ
  1. 異なるテストシナリオ用に複数のテストアカウントを作成 異なるテストシナリオ用に複数のテストアカウントを作成する
  2. すべてのサブスクリプション期間をテスト 動作を確認する
  3. キャンセルと更新のフローをテスト キャンセルと更新のフロー
  4. 受け取り確認の検証 正しく動作することを確認する
  5. 購入の復元テスト 機能
  6. サブスクリプションのアップグレード/ダウングレードの確認 動作
  7. ネットワーク環境が悪い場合のテスト

本番環境 vs. サンドボックス

セクション: 本番環境 vs. サンドボックス
機能サンドボックス本番
実際の請求なしはい
サブスクリプション期間加速通常
自動更新制限6回無制限
キャンセル効果即時期間終了
受領エンドポイントサンドボックスURL本番URL
テストアカウントのみはいいいえ

詳細については、公式の Apple StoreKitドキュメント サンドボックステストについて

「iOSサンドボックステストの設定から続けて」

「iOSサンドボックステストの設定から続けて」のセクション

Capacitorを使用している場合 iOSサンドボックステストの設定 ストアの承認と配布を計画するために、接続する Using @capgo/native-purchases for the native capability in Using @capgo/native-purchases, @capgo/capacitor-in-app-review for the implementation detail in @capgo/capacitor-in-app-review, Using @capgo/capacitor-in-app-review for the native capability in Using @capgo/capacitor-in-app-review, @capgo/capacitor-native-market for the implementation detail in @capgo/capacitor-native-market, and Using @capgo/capacitor-native-market for the native capability in Using @capgo/capacitor-native-market.