iPhone アプリケーション開発 アプリ内課金のテスト

出典: encom wiki

daisuke 2010年6月29日 (火) 16:33 (UTC)


目次

[編集] テストまでの手順

[編集] iTunes Connect

  • Contracts, Tax, & Banking Information で、Contact Info、Bank Info、Tax Info を登録します。


[編集] iPhone Dev Center - Provisioning Portal

  • App ID を登録します。Bundle Identifier にワイルドカード(*)は利用できません。
  • 登録した App ID を Configure して、Enable In App Purchase にチェックを入れて Enabled にします。
  • In App Purchase を Enabled にした App ID で Development Provisioning Profile を作成し、ダウンロードします。


[編集] iTunes Connect

  • Manage Your Applications でアプリケーションを登録します。この時、バイナリはアップロードしません。
  • Manage Your In App Purchases で、先ほど登録したアプリケーションにアプリ内課金の商品を設定します。Cleared for Sale にチェックを入れます。ステータスは Pending Developer Approval で良いです。
  • Manage Users でアプリ内課金用のテストアカウントを作成します。


[編集] アプリケーションへの実装

  • plist ファイルの Bundle Identifier に、先ほど作成した Development Provisioning Profile の Bundle Identifier を設定します。Bundle Seed ID は不要ですので、T3JCV5VQKU.com.yourhost.appname などの場合は com.yourhost.appname を設定します。
  • Xcode の プロジェクト - プロジェクト設定を編集 からビルドタブを開いて、コード署名 ID - Any iPhone OS Device で先ほど作成した Development Provisioning Profile を選択します。
  • 下記のようにアプリケーションに実装します。PRODUCT_ID の箇所はアプリ内課金の商品を登録したときに設定した Product ID を指定します。
// 商品情報を要求します。
- (void)requestProductData
{ 
    SKProductsRequest *request
    = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:PRODUCT_ID]];
    request.delegate = self;
    [request start];
} 

// 商品情報の要求結果があった場合に呼び出されます。
- (void)productsRequest:(SKProductsRequest *)request 
     didReceiveResponse:(SKProductsResponse *)response 
{ 
    NSArray *products = response.products; 
    NSArray *invalidProducts = response.invalidProductIdentifiers; 
} 
  • アプリ内課金のテストはシミュレータでは行えません。実機の「設定」アプリケーションでアカウントをサインアウトします。先ほど作成したテストアカウントでログインしないでください。


以上の手順で実機でアプリ内課金のテストが行えます。

リンク