最近、iOS7対応で一部改修したアプリのテストをしていたのですが、実機(iPad)でアプリ内課金(In-App Purchase)のテストをしようとしたところで、「iTunes Storeに接続できません」だの何だのというエラーで行き詰まってしまったので、これをどうやって解決したかをまとめたメモです。
まず、アプリ内課金を実機上でテストするには、iPadに紐付けられている通常のアカウントではリリース前のアプリのアプリ内課金はできない、というのを理解しておかないといけません(私はこれが理解できていませんでした)。
なので、
- テストユーザ用に捨てアドレスを用意
- iTunes Connect でテストユーザを作成
- 実機(iPad等)に紐付けられている通常ユーザを一時的に解除
- Xcodeからアプリをビルドして実機にデプロイ
- 実機上でアプリ内課金を試してみる(その際、新たなアカウントが要求されるので、テストユーザを入力)
という流れで進めていく必要があります。
1. テストユーザ用に捨てアドレスを用意
テストユーザごとに、実在するメールアドレスが個別に必要になるので、一時的に使える捨てアドレスを用意します。
「10 Minite Mail」という素敵なサービスがあるのですが、その名の通り、10分だけ使える捨てアドがもらえます。簡易受信BOXでメールがチェックできたり、制限時間が延長できる「もう10分延長!」も直感的で分かりやすくていい感じです。
2. iTunes Connect でテストユーザを作成
アプリに組み込んだプロビジョニングプロファイルを発行した開発アカウントで iTunes Connect にログインし、「Manage Users」をクリックします。
ユーザタイプは「Test User」を選択します。
「Add New User」をクリック。
テストユーザの情報を入力して、「Save」ボタンをクリックします。
項目 | 入力例 | 備考 |
First Name | test1 | |
Last Name | user | |
Email Address | (入手したメールアドレス) | 実機テストで「Apple ID」として使う |
Password | Test1user | 8文字以上、英大文字・小文字・数字を混ぜる |
Confirm Password | (同上) | |
Secret Question | aaaaaaaa | 8文字以上 |
Secret Answer | bbbbbbbb | 8文字以上、Secret Questionと同一不可 |
Date of Birth | (適当) | |
Select iTunes Stone | Japan |
テストユーザが準備できました。
3. 実機に紐付けられている通常ユーザを一時的に解除
普段実機で使っている Apple ID(通常アカウント)では、リリース前のアプリのアプリ内課金は購入できません。
そこで、通常アカウントを 実機から一時的に解除しておくことで、テスト中に別のアカウントが要求されるようになります。
実機で、[設定] -> [iTunes & App Store] を選択します。
(画面は iPad/iOS 7.0.3)
「サインアウト」して、iPad に紐付けられた Apple ID を解除します。
5. 実機上でアプリ内課金を試してみる
購入手続きをすると、新たな Apple ID の入力が要求されます。
2.で登録済みのテストユーザのアカウント情報を入力します。
無事、実機上でのアプリ内課金が動作検証できようになりました。