読者です 読者をやめる 読者になる 読者になる

Still Life

残念IT系母ちゃん。旦那さん、娘1歳、猫の4人暮らし。

アプリ内課金の実装を目指しつつ、ProvisioningとかAdHocとかよくわかんないなりにまとめてみる(1)

iPhone

iPhone開発を始めて数ヶ月、現在「アプリ内課金」の実装にチャレンジしているところです。


アプリ内課金とは、ご存知のとおり、欲しいモノや購読料などをアプリ内で買えちゃう仕組みです。
これを実装できれば、Webゲームでよくある「基本無料(アイテム課金)」が実現できるわけです。
そのほかにも、課金することで全機能が使えるようになるとか、新聞の1ヶ月分購読料を支払うとかも、アプリ内課金の形態のひとつです。


これをやるためには、課金したいアイテム(プロダクトといいます)1つ1つについてAppleに登録し、審査を受けなければいけないのですが、審査を依頼する前に、Appleが用意したテスト環境を使ってじゅうぶんにテストしないといけません。
このために、Appleへテストアプリやプロダクトを登録しないといけないのですが、事務処理系が苦手なわたしには大変にやっかいなことです。


わたしの開発環境、とくにAppleへの登録関係は、弊社に指導的立場として時々来てくださる方(ここではAさんとしておきましょうか)にお願いしていて、かなり丸投げでした。
いくら事務処理が苦手だからって、ここに来てまるでわからないというのはさすがに問題なので、少しずつでも教わって理解していくことにしました。

公式の良い資料

まずわたしは、Aさんが以前に残してくれていた2つの資料をもとに準備をしました。
iTunes Connectデベロッパガイド
In App Purchaseプログラミングガイド

可能な限り分かりやすく書いてくれている資料だと思います。わたしのように登録関係に取り組もうという方は、まずは丹念に読むことをおすすめします。
ちなみにわたしはこの資料をサイトから自力で探すことはできませんでした。Appleのサイトは、リンクをたどっているうちにいつのまにか英語になってるんです。必死に英語を読んで、疲れて、ふと自社サーバを見たら、既に先人の知恵が保存されていたというorz


さて、資料をひととおりふむふむと読み、まずはテストの段階でも

  • アプリケーション
  • テストユーザー
  • アプリ内課金を行うプロダクト

の登録が必要なのかとわかりました。(登録するだけで、実際にアプリをアップロードするのはまだです。)
iTunes Connectデベロッパガイドにしたがって登録してみることにしました。

登録作業開始

さっそくつまづきました。
まずはMember Centerから、自分のアカウントでログインし、iOS Dev CenterからiTunes Connectを探したのですが、リンクがありません。。。
f:id:Aodrey:20110513151631p:image:w320

おろおろとリンクをたどりまくったので時間をロスしましたが、理由は簡単でした。わたしが開発している間に使っていたアカウントは「iTunes Connectユーサ」ではなく、要は権限が足りなかったのです。これは、権限のある人から「iTunes Connectユーサ」アカウントを作ってもらうことで解決。
f:id:Aodrey:20110513151630p:image:w320

テストユーザーの登録は特に疑問なし。この段階で、ガイドではさんざん、「テストユーザーで本番環境につないだらアカウントが無効になるよ」と注意しているので、間違えてもデバイスの設定では登録してはいけません。逆に、本番用のアカウントをテスト環境で使うこともできないので、テストで使う予定のデバイスでは、設定>Storeの設定をサインアウトしておくのが一番のようです。


続いて、アプリケーション登録でつまづいたのが、Bundle IDです。
選択できるリストから、いちばんてっぺんの汎用っぽいのを選択すると、更に何か入力を求められたので、とりあえず適当な文字列を打ち込んでおきました。


最後に、プロダクトの登録です。
ここでつまづいた、というか、一度失敗したことを書きます。
プロダクトのスクリーンショットを適当にUPしてみたところ、誤操作かもしれませんが、状態が「審査待ち」になってしまいました。スクリーンショットは審査のための資料になる画像らしいので、テスト前はむしろ上げちゃだめなんだと思います。
わたしは「審査待ち」になってしまったのを元に戻す方法がわからなかったので、プロダクトそのものを削除しました。でもそうすると、同じ「Product ID」が使えなくなってしまいます。新しいIDをまた振ればいいのですが、アプリ用のサーバーに登録していたProduct IDを変更したりと大変面倒なことになりました。。。


さてこうしてひととおり3者の登録が終了したようです。
まだ審査される段階ではないので、アプリの状態は「うp待ち」、プロダクトの状態は「スクリーンショットうp待ち」の状態です。

続いて、In App Purchaseプログラミングガイドにしたがってテスト環境からプロダクトの一覧を要求したのですが、残念ながら取得できませんでした。


理由はもちろん、アプリ登録時に適当にした部分です。
でも記事が長くなったので、今日は終わり。

タイトルに書いたのに、ProvisioningとかAdHocとかの話に至らないままになってしまいました。続きは忘れないうちに書くよ!

追記:書いたよ!
http://aodrey.hatenablog.com/entry/20110529/1306685426