ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
アプリ内課金のテストの詳細
Xcode、App StoreのSandbox、およびTestFlightでStoreKit Testingを使用して、開発プロセス全般にわたりアプリ内課金をテストする方法を学びます。各ツールがどのように機能するのか、また、アプリやゲームをテストするための適切なワークフローを構築するためにこれらのツールをどのように組み合わせられるのかを確認します。さらに、App StoreのSandboxでアプリ内課金とサブスクリプションのファミリー共有をテストする新しい方法についても先立って紹介します。
リソース
- App Store Server Notifications
- Beta Testing Made Simple
- Message
- Setting up StoreKit Testing in Xcode
- Submit feedback
- Testing at all stages of development with Xcode and the sandbox
- Testing failing subscription renewals and In-App Purchases
- Testing In-App Purchases with sandbox
- Turn on Family Sharing for in-app purchases
関連ビデオ
WWDC23
Tech Talks
WWDC22
-
ダウンロード
♪ ♪
こんにちは Hemantです App Storeの Commerce Developer Advocateです 今回は アプリ内課金体験のテストと 検証に役立つApp Storeの ツールについてお話します それぞれのツールの利点と いつどのツールを使うのが ベストなのかを説明します また アプリ内課金をテストするために 今年導入する 素晴らしい新機能についても説明します では 始めましょう App Storeでは アプリ内課金のテストに 役立つ3つのツールを提供しています アプリ内課金をローカルでテストできる XcodeのStoreKit Testing App Store Connectで設定した プロダクトを使用するSandbox エンドツーエンドのベータテストを実施し テスターからのフィードバックを 収集するためのTestFlightがあります これらのツールは アプリ内課金体験の構築 テスト 最適化に役立ちます アプリ内課金テストに適切なツールを 判断するために それぞれのツールについて 簡単に説明します
まず Xcodeでの StoreKit Testingです WWDC20ではXcodeに StoreKit Testingを導入しました App Store Connectで プロダクトを設定せずに アプリ内課金をテストできます サーバを必要とせず 完全にオフラインで アプリ内課金をテストできます StoreKitの設定ファイルで アプリ内課金を作成し 管理することができます そのため コードの変更をローカルで リアルタイムにテストできます StoreKitとの統合を始めたら シミュレータやデバイスを使って アプリ内課金体験を テストしてみましょう 専用のStoreKitTestフレームワークを 使用することで アプリ内課金の継続的なテストを 自動化できます さらに App Store Connectから Xcodeへアプリ内課金プロダクトを 同期できます これにより StoreKit設定ファイルを 手動で設定する必要がなくなります また オファーコードの利用や 値上げのお知らせシート 支払いの再試行の開始と完了など 高度なサブスクリプションユースケースを サーバに依存することなく すべてローカルで テストすることができます また ユニークな機能として柔軟な サブスクリプション更新レートがあり リアルタイムから2秒ごとまで ニーズに合ったレートを 選択することができます そして今 Xcode 15では 新しいオプションが利用可能で サブスクリプションの期間に 依存しない固定された 更新料金のセットを提供します つまり プロダクトが月払いでも 年払いでも 同じレートで更新されることになります アプリが遭遇する可能性のある StoreKitエラーをシミュレートでき これにより プロダクトが販売中でない場合や ユーザーが購入を キャンセルした場合などの エラー処理をアプリに 組み込むことができます また アプリの複数のインスタンスを 実行している場合 トランザクションマネージャは 各アプリインスタンスのトランザクションを 表示し 複数のデバイスでテストできます トランザクションマネージャは アプリを開かずに アプリ内課金を直接購入する機能を 追加しました それで アプリが外部トランザクションを どう処理するかをテストできます これらの新機能は Xcode 15で利用可能です 詳しくはWWDC23のセッション 「StoreKit 2の新機能とXcodeでの StoreKitテスト」 をご覧ください では App StoreのSandboxを 見てみましょう App StoreのSandboxでは クライアントとサーバの両方で エンドツーエンドのアプリ内課金の実装を テストおよび検証できます これは 完全なアプリ体験を構築し 検証し ユーザーにコンテンツを うまく配信していることを 確認する際に重要です Sandboxでアプリ内課金を テストするには デベロッパアカウントに 有料アプリケーション契約が必要です デベロッパーアカウントで登録した デバイスで アプリとアプリ内課金をテストできます Sandboxで購入するには まずApp Store Connectの 「ユーザーとアクセス」セクションで Sandbox用のApple IDを 作成する必要があります iOS 16以上のiOSデバイスで アプリを実行するには プライバシー設定で開発者モードを 有効にする必要があります インストールされたアプリは 開発や テストの使用を目的としています
Sandboxは 購入 復元 サブスクリプションの提供などの 実環境同様のシナリオを処理するための ロジックの検証を支援し 実環境でアプリを起動する自信を 提供します Sandboxでアプリをテストするには デバイスが必要です デバイスをMacにテザリングして デバイスにアプリをダウンロードするか Release Testing Debugging Customなどの 配信方法のいずれかを使って IPAファイルを生成するか 2つのオプションを使ってアプリを 配信できます これらの方法では ソースコードを 提供する必要がなく テスト用のアプリをチームに 提供するのに役立ちます 皆さんからのフィードバックに基づき Sandboxは カスタマー体験をテストする上で 重要であると理解しています Sandboxの改善と 新しいテスト機能の追加を続けており 今年は サブスクリプションの請求で 発生した問題のメッセージや 請求猶予期間など ユーザーが不本意に登録解除される シナリオをシミュレートするための サポートを追加しました 今年後半には ファミリー共有の アプリ内課金のテストサポートをリリースし iOS Sandboxの アカウント設定ページに 新しいオプションを追加します では これらの機能を 深く掘り下げてみましょう 課金問題メッセージのシミュレーションは Sandboxで利用できますが 今年の後半には 実環境のカスタマーが 支払いの再試行に入る際に 表示されるようになります 課金問題のメッセージングは カスタマーがアプリを離れることなく 支払い問題を解決し コンテンツや サービスの購読を 継続するのに役立ちます 課金問題シートは 請求問題の理由が 含まれる StoreKit 2 メッセージAPIを 使用します StoreKitメッセージAPIは カスタマーがアプリを起動したとき またはアプリがフォアグラウンドに 表示された際 デフォルトで表示されます 課金問題シートの提示が カスタマーを― 混乱させる可能性がある場合 ビューにメッセージリスナーを― 実装することで メッセージを延期または抑制できます SandboxでメッセージAPI 請求理由問題をシミュレートして アプリがメッセージ説明を どう処理するかをテストできます StoreKit 2 Message APIの 実装についての詳細は WWDC22のセッション 「アプリ内課金の新機能」をご覧ください ではSandboxで課金問題メッセージを シミュレートする手順を確認しましょう 課金問題のメッセージをテストするには SandboxのApple IDがアクティブな状態で 自動更新サブスクリプションに 加入している必要があります 次に App Storeの設定でデバイスの Sandboxアカウント設定ページに移動し "Allow Purchases & Renewals" スイッチを無効にすることで 課金問題をシミュレートできます このスイッチを無効にすると Sandbox Apple IDの課金問題が シミュレートされ 既存の 自動更新サブスクリプションは 設定された更新率に従って更新されず 支払いの再試行状態になります そして アプリに移動したとき App Storeは サブスクリプションの更新に失敗すると billingIssueメッセージを送信し 課金問題のメッセージが表示されます Continueボタンをタップすると iOS Sandboxの Account Settingsページが開くので 「Allow Purchases & Renewals」 をオンに切り替えて サブスクリプションの更新が成功させます サブスクリプションが正常に更新されると 請求に関する問題のメッセージは 表示されなくなります これは カスタマーがApple IDの支払い方法を 更新したときに アプリを離れることなく 請求の問題から回復することを シミュレートするのに役立ちます 猶予期間を設定することで Appleが支払いを回収するまでの間 カスタマーはアプリの有料コンテンツや サービスにフルアクセスできます これはまた 猶予期間内に 自動更新サブスクリプションが 回復した場合 デベロッパとして 有料サービスの日数の中断を 避けるのに役立ちます Sandboxで課金猶予期間を 有効にしてシミュレートするには App Store ConnectのApp Subscriptions セクションに移動します 請求猶予期間セクションで "Set Up Billing Grace Period"をクリックします アプリの課金猶予期間を設定する ダイアログが開きます 利用可能な猶予期間から選択できます これらの期間は本番環境にのみ 適用されるので Sandboxでテストする場合 支払いの再試行期間と課金猶予期間は Sandboxアカウントの 更新率に応じて 事前に設定されます また 課金猶予期間の対象となる 契約者を選択し 環境を選択することもできます Sandboxで最初に有効にするか Sandboxと本番環境の両方で 有効にするかを選択し Confirmをクリックします 選択した内容がApp Store Connectに 表示されます そして次は ファミリー共有です ファミリー共有は カスタマーが デジタルで購入したプロダクトを 家族と簡単に共有できる強力なツールです 自動更新サブスクリプションと 非消耗型のプロダクトで ファミリー共有を有効にすると 新規顧客の獲得 ユーザーエンゲージメントの向上 リテンションの改善に役立ちます 私たちは ファミリー共有のアプリ内課金を Sandboxでテストする機能を 提供したいと考えました
Sandboxでファミリー共有を テストするには App Store Connectにログインし サブスクリプションまたは 非消耗プロダクトに移動して ファミリー共有を有効にする必要があります その後 App Store Connectで Sandboxのファミリー共有メンバーを 整理する必要があります 最後にファミリー共有が有効になっている Sandboxの Apple IDで購入します では テストの詳細を説明します アプリ内課金プロダクトを ファミリー共有可能にしたら App Store Connectの 「ユーザとアクセス」に移動すると 「Family Sharing」という 新しいセクションが表示されます このセクションで ストアフロントの Sandboxファミリーを整理し 表示することができます Sandboxでのアプリ内課金体験が どのようなものかを説明しましょう ここでは 通常のSandbox購入と 同様に デバイス上で購入を開始します ファミリー共有が有効になると 各家族メンバーのトランザクションが 作成されます アプリの起動時やStoreKitからの リアルタイムで これらの新しい トランザクションが表示されます この時点で アプリのロジックをテストして トランザクションの有効化とサービスの エンタイトルメントを確認できます さらに 家族がサービスへのアクセスを 失った場合の シミュレーションもできます そのためには iOSのSandbox Account Settingsで Family Sharingをタップします Sandboxにいる すべての家族が表示され ファミリー共有を停止することができます Sandbox内のファミリー共有では StoreKitのisFamilySharable プロパティを使用した ファミリー共有可能なプロダクトの マーチャンダイジングなどの ユースケースを検証し 確認できます アプリのロジックを検証し 新規または既存の購入に対して 家族メンバーにサービスを付与します 各家族メンバーは共有をオフにでき 他の家族メンバーが以前共有されていた 購入アイテムへのアクセスを失う シナリオをテストできます 購入者がファミリー共有を 停止する状況では JWSTransactionsで利用可能な revocationDateを使用することで サービスへのアクセスの取り消しを 検証できます そして最後に 家族メンバーへの App Storeサーバ通知が 届きます ファミリー共有の実装について詳しくは Tech Talkセッション 「App内課金のファミリー共有について」 をご覧ください 今年後半には iOSのSandboxのAccount Settingsにオプションを追加します iOSのSandboxのAccount Settingsは Sandboxのアプリで 最初のアプリ内課金を行うと 利用できるようになります サインインしたSandboxアカウントは App Storeの設定で確認できます このページを下にスクロールすると Sandbox Apple IDが表示されます Sandbox Apple IDをタップすると ダイアログが表示されます 「Manage」ボタンをタップすると SandboxのAccount Settingsに 移動します 今年後半には App Store Connectで 先行提供されていた 3つのオプションが デバイス上で テストできるようになります Account Settingsページから サブスクリプション更新率の調整や 中断された購入のテスト 購入履歴の 消去ができるようになります Renewal Rateをタップすると Sandboxアカウントの サブスクリプション更新率を調整できます また SandboxのApple IDの 購入履歴をクリアして SandboxのApple IDをリフレッシュし ユースケースを再テストできます 最後に TestFlightを見てみましょう TestFlightは アプリの エンドツーエンド体験のテスト アプリの配信 より多くのテスターからの フィードバックの収集に役立ちます これは App Storeでリリースする前に アプリ体験を検証し 改善するのに役立ちます
TestFlightを使用すると Appleの 全プラットフォームでアプリを配信できます 内部テスターと外部テスターの 両方を追加し 複数のテスターグループを作成し テストしてもらいたい機能に応じて 異なるビルドを各グループに追加できます テスターは 最新のビルドが自動的に インストールされるように許可でき 各ビルドはアップロード後 90日間利用可能です 詳しくは Tech Talksセッション 「TestFlightの概要」を ご覧ください アプリ内課金をテストする場合 テスターはTestFlightアプリを使って アプリのビルドを ダウンロードする必要があります TestFlightを通じてダウンロードした アプリのアプリ内課金を購入する場合 デバイスのメディアと購入の設定で サインインしている Apple IDが使用されます Sandboxと同様に TestFlightを 通じてダウンロードしたアプリの アプリ内課金のテストに 請求されることはありません 自動更新サブスクリプションを テストする場合 TestFlightの更新率はSandboxの デフォルトの更新率と同じです また、もしあなたのアプリがStoreKitの showManageSubscription APIを 実装していれば サブスクリプションの キャンセルや変更をテストできます 今年は TestFlightでさらに簡単に テスターを管理できるようになります テスターのステータスやセッションなどの データでフィルタリングしたり テスターのグループを一括選択して グループから追加または削除できます また TestFlightアプリの配信を 効率化するために ビルドを配信する新しいメソッド 「Internal Only」が追加されました この方法を使用すると ビルドを内部の テスターが利用できるようになり App Storeのレビューに 提出できなくなります 詳細については セッション 「App Store Connectの新機能」と 「Simplify distribution in Xcode and Xcode Cloud」をご覧ください さて アプリ内課金をテストするための ツールを概観してきましたが これらのツールにはそれぞれの利点や 違いがある一方で すべてのアプリ内課金タイプのテストを サポートしていることや サブスクリプションが更新率を 加速化できることなど 多くの共通点があることを 知っておくことが重要です 一方でこれらのツールの中には 特定の機能の実装やユースケースに 最適なものもあります 例えば Xcodeの StoreKit Testingを使用することで サブスクリプションオファーコードの 利用と値上げシートのテストが可能です 支払いの再試行と請求の猶予期間は XcodeのStoreKit Testingと Sandboxの両方を使用して テストできます サーバーサイドの実装を検証するために SandboxとTestFlightの両方が App Storeサーバ通知と App Store Server APIを サポートしており TestFlightは アプリのパフォーマンスと 全体的な体験について 内部と外部のテスターから フィードバックを受けるための 合理化されたプロセスを提供します ユースケース 機能の実装 組織のチーム構成に応じて アプリ内課金のテストにこれらのツールを 活用することを検討してください このセッションで アプリ内課金を テストするために 利用可能なすべてのツールについて 理解を深めていただけたと思います 詳しくはdeveloper.apple.comの ドキュメントをご覧ください また アプリ内課金のテスト体験を どのように改善できるか ぜひフィードバックアシスタントを通じて ご意見をお知らせください ご視聴ありがとうございました
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。