It_lives_vainlyの日記 このページをアンテナに追加 RSSフィード

2009-11-14

[] In App Purchase の開発を行う為の環境構築

iPhone の In App Purchase に関する作業ログ第二回目.

概要に関しては、前回のエントリ(『In App Purchase 概要』d:id:It_lives_vainly:20091101)を参照のこと

今回は、主にiTuneConnect 上での登録作業についてまとめる.

iTuneConnect 上で必要な申請処理

アプリ内課金の配信の実装を始める前に、アプリが有料課金配信を行える状態になっている(銀行情報などの許可が下りている)必要がある.

アプリ内課金で配信されるアイテムの登録は、iTuneConecct上から、[Manage Your In App Purchase]によって登録を行う必要があるが、

有料課金配信の申請が通っていない場合には、[Manage Your In App Purchase] の表示が出こない.

解説サイトなどを眺めただけでは気づきにくい点なので注意すること.

有料課金配信の申請については、『 iTuneConnect での 銀行情報の登録』d:id:It_lives_vainly:20091108 を参照のこと.

iPhone Developer Program 上で必要な申請処理

アプリ内課金の処理を実装する前に、課金の元となるアプリの登録が必要となる.

普通のアプリの登録と異なる点は、"In App Purchase"を有効にする必要だという点だ.

アプリで "In App Purchase" を有効にするためには、ワイルドカードを含まない Description を指定しておく必要がある.

"In App Purchase" を有効にするのは、アプリの登録後からでも問題ない.

具体的には、IDPにログインをして、[App IDs]に表示されているアプリケーションの一覧を確認すること.

アプリ内課金が行えるアプリは、"In App Purchase" の欄が、緑色のチェックで Enabled になっている筈だ.

App Store のテストユーザの作成に関して

開発中のアプリの課金処理は、Apppleが用意しているサンドボックス内で行うことになる.

このため、通常の iTune Store 上でのユーザではなく、テストユーザの作成を行う必要がある.

当然、テストユーザが購入したアイテムに関しては、何度課金処理を行っても実際に課金されることはない.

テストユーザの作成は、 iTuneConnect 上で行う.

iTuneConnect にログインして、『In App Purchase Test User』の作成を行う.

テストユーザの登録のためには、AppleID を取得していない メールアドレスが必要となるので、先に用意しておいた方がよい.(※1)

(すでにAppleIDに登録してある、メールアカウントは利用できない)

iTuneConnect に表示されている項目から、[Manage Users] - [In App Purchase Test User] とたどって、必要項目を入力するだけなので特に迷うところはない.

後に、アプリテスト時に利用することとなる UserID は、ここで登録したメールアドレスがそのまま UserID となる.(パスワードも)

※1

新規テストユーザを作成しても、登録の確認メールなどが送られてくるわけでもなければ、課金のレシートがメールで送られてくることもない.

そもそも有効なメールアカウントが必要なのかもわからない.

In App Purchase 対応アプリの登録について

IDPの、[App IDs] から対応する AppID について、 In App Purchase の申請を行う必要がある.

ワイルドカードを利用した ID を In App Purchase として申請することはできない.

(項目が表示されない)

課金アイテムの登録に関して

iTuneConnect [Manager Your In App Purchase] から課金アイテムの登録を行う.

まだ、課金するアイテムを登録していないアプリについては、最初にアプリの "Bundle Identifire" と課金アイテムの関連づけを行う必要がある.

手順としては、次のようになる.

1. iTune Connect へログインする

2. [Manage Your In App Purchase] を選択

3. [Create New] を選択

4. アプリ内課金を行うアプリの、 "Bundle Identifire" の選択(※2)

5. 必要事項を記入する(当ドキュメントの次項目「課金アイテムの登録について」を参照すること

(注意点/要調査事項)

Approve をしてしまうと、課金アイテムの登録申請が Apple に送信してしまうと思う.(まだ、試していない)


※2 IDPでアプリを登録するときに、"In App Purchase" が有効になっているものだけが、表示されている.

選択できるアプリが内場合には、 IDP の[App IDs] 欄を確認して、 In App Purchase が有効になっていることを確認すること.

課金アイテムの登録項目について

課金アイテムの登録は、iTuneConnect で必要項目を書き込んでいくだけで良いけれども、わかりづらいのでメモを残しておく

  • Pricing
    • Reference Name(*3) ... どこに表示されるの?
      • Product ID(*3) ... 任意の文字が設定できる.(自分たちの中で、ユニークな文字列になっていればよい※4)
      • Type(*3)
        • Non-Consumable ... 消費しないもの(※5)
        • Consumable ... 消費するもの(※6)
        • Subscription ... サブスクリプション(購読)(※7)
    • Price Tier ... アプリの価格帯
    • Cleared for Sale ... このチェックが入っているアイテムだけが、アプリ内課金が可能になる.(テスト時にも適用されているのでチェックを入れておくこと)
  • Display Ditail .... アプリ中の課金の確認の時に表示する商品に関する文字列
    • Lauguage Add ... ローカライズされる言語を選択
    • Displayed Name ... 課金するアイテムの名称.アイテム課金時にシステムが確認画面で表示するアイテム名になる.
    • Description ... 課金するアイテムの説明文、システムが表示することは内が、アプリ内での説明に利用することになる.
  • For Review(※8)
    • Screen Shot

※3 (*3) がついている項目に関しては、後から修正を行うことができない

※4 自由な文字列を設定できるが、ガイドラインが存在する.(詳しくは、当ドキュメントの「Product ID の命名規則」を参照このと)

※5 type を consumable で指定しているモノに関しては、購入後に購入履歴の復元が行えない.

※6 type を Non-Consumable で指定しているモノは、購入履歴の復元が行える.

※7 type を Subscription で設定しているモノは、購入後に購入履歴の復元が行えない.

※8 レビューの目的にしか利用されない、iTune上では表示されないらしいが詳細はよく分からない(要調査項目)


In App Purchase で取得できるローカライズ言語に関して

iTuneConnect で課金アイテムを登録する際、ローカライズする言語ごとにアイテム名/説明の入力が行える.

アプリ側からも、この文字列が取得できるが、アプリから取得する文字列は、端末上の言語設定ではなく、接続している AppStore に依存する点に注意する必要がある.

アプリによっては端末設定とは関係なく、独自にローカライズを行っている場合もあると思うが、このときにはアプリ内の表示に、アプリ設定とは異なった言語が表示される可能性があることに注意しておくこと.


Product ID の命名規則

自身のアカウントの中で、ユニークになっていれば良い.

iTuneConnect 上のレポートでは、この Product ID を利用してレポートの表示が行われるので、内容が判別しやすい名前をつけておく方がよいと思う.

ユニークな名称になっていれば、どのような名前をつけることもできるが、javaのパッケージよろしく自分の保持しているドメインを逆から記述する方法が推奨されている.

次回予告

次回は、実装の詳細に入っていこうと思います

関連エントリ

『In App Purchase 概要』d:id:It_lives_vainly:20091101

『 iTuneConnect での 銀行情報の登録』d:id:It_lives_vainly:20091108

KK 2009/11/15 12:39 >有料課金配信の申請が通っていない場合には、[Manage Your In App Purchase] の表示が出こない.

私、銀行口座の情報まだ入れていませんが、Store Itemの登録して、実機でテスト出来てますよ。

It_lives_vainlyIt_lives_vainly 2009/11/16 11:18 > Kさん

ご報告ありがとうございます.
詳しいことはわからないのですが、有料・無料にかかわらずアプリの登録まで進んでいれば出てくるってことなんですかね...

う〜む...

Hamken100perHamken100per 2009/12/22 13:16 For Review用のスクリーンショットに画像をアップロードすると、AppleへIn App Purchaseのレビューをして下さいと宣言したことになります。なのでこの時にアプリがアップロードされていないといけません。アプリがアップロードされていないと、In App PurchaseのアイテムのステータスがDeveloper Action Neededとなってしまいます。
なんでスイッチがチェックボックスじゃなくて、画像送信なんだろうと思うのですが、これがApple仕様みたいですw

It_lives_vainlyIt_lives_vainly 2009/12/22 23:09 > Hamken100perさん

なんとっ
これはわかりづらいですよねw
補足ありがとうございます.
後でエントリーの方も修正しておきます

ご指摘ありがとうございました

yuum3yuum3 2010/08/19 15:27 続編たのしみにしてます

ぼぶぼぶ 2010/08/31 12:12 > Hamken100perさん
In App Purchase用のバイナリってどうやったらアップロードできるのですか?
通常のアップデート版とInAppPurchase版で、バイナリアップデートするやり方の違い?
がさっぱりわかりません!!
ドキュメント見ても、理解できません!!!!(泣)

むにむに 2010/09/08 11:38 ぼぶさん、アプリ内課金でデータを追加する場合、そのデータは自前で用意したサーバに置きます。
そして、アプリへのデータダウンロードも独自で処理しないといけません。
アップル側は課金のみしてくれます。

かむかむかむかむ 2011/08/24 19:02 非常に参考になる記事を拝見させて頂き、ありがとうございます。
現在、私のアプリのin app purchase画面でステータスが「Developer Action Needed」となっており、「language」の箇所に[REJECTED]の記載があります。
また、正しいスクリーンショットを送付する前にアプリ自体の審査がin reviewになってしまい慌ててスクリーンショットを添付しましたが、ステータスは変わらない状態です。。。
この場合、どう対処すればよろしいでしょうか?ご教示頂けますと幸いです。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証