Drowsy Dog's Diary

any note, any thought

[ios][appstore] In-App Purchase プロダクトとアプリバージョンの紐付け

| 0 comments

これもやるたびにミスって Developer Reject するので今さらだけどメモっておく。。

iTunesConnect に新規のアプリ内購入(IAP)アイテムを追加するときの順序について。

基本的にここでは Non-consumable プロダクトについて書いてます(これしかやったことない)。
間違い等ありましたらご指摘いただけると重畳。

現バージョンのアプリでそのまま購入できるアイテムを追加する場合

これは単純に、アプリ管理画面の “Manage In-App Purchase” から “Create New” ボタンで追加して submit すればよい。

ProductID や値段など、基本的な情報を登録して Save すれば、 Submit する前にテストアカウントで購入テストができるようになる。この時点でサムネイルはまだ無くてもOK。

テストアカウントは、iTunesConnect トップの “Manage Users” から登録できる。Android と違って「購入キャンセル」というものが(事実上)存在しないので、同じアカウントで同じアイテムの購入テストは一度しかできない。なのでメールアドレスがいくつも必要になったりするが、そんなときは「10分間だけ有効な」アドレスを生成してくれる 10 Minute mail がべんり。

http://10minutemail.com/

テスト用購入確認ダイアログには、[Environment: Sandbox] という表記が付いている。レビュー用のサムネイルにどのような画像を使うのが適切か定かではないが、kazoo はいつもこの購入ダイアログのキャプチャをサムネイルにしている。

アプリのバージョンアップと同時に課金アイテムを追加する場合

問題はこのケース。未確認だがたぶん新規アプリの場合も同じ。

アプリのバージョンアップで買えるようになる課金アイテムは、まず上と同様に “Manage In-App Purchase”から新規アイテムを追加し、サムネイルを登録して “Ready to submit” の状態までもっていく。Submit はしない

次に、”Add Version” ボタンからアプリの新規バージョンを用意して、更新情報を追加する。ここで注意するのは、“Ready to Upload” ボタンを押す前に、このバージョンに課金アイテムを紐づける必要があること。状態が “Waiting for Upload” になってしまうと、もうそのバージョンは一度リジェクトしない限り紐付けはできない。

状態としては “Prepare for Upload”(または Developer Rejected)のときに、アプリの Deteil を見ると、このときのみ In-App Purchase の編集ができるようになっているので、これをエディットして、先ほどのアイテムを紐づければよい。Submit はまとめて行われるので、”Manage In-App Purchase” での Submit は必要ない。

IAP

アイテムを “Ready to submit” にする → アプリが “Prepare for Upload” のときにそれを紐づける。

書き記すと大したことではないのだが、うっかり失敗すると、一度 XCode から Submit して Developer Reject して(しかも次に再アップロードする際にまったく同じバイナリでは受け付けてくれない)というのが大変めんどくさい。アップロードとキャンセルが同時に走るのを避けたいのだろうが、Waiting for Upload を一回押してしまうと絶対にキャンセルできないのどうなん??と毎回思う。。

ちなみに、アプリバージョンと課金アイテムバージョンに依存関係がないからといって、In-App Purchase が Waiting for Review のときに次のアプリバージョンを Submit したりすると、まだレビュー通ってないアイテムに対して「このバージョンでこれ買えないぞ」みたいな Reject をされることがある(ぽい)。
基本的に、アイテムとバージョンを完全に紐づけるか、アイテムがレビュー中のときにはアプリ本体は触らない方が良さそう。

参考:
In-App Purhcaseプログラミングガイド


Author: kazoo

犬はさよならを言わないのだ。

コメントを残す

Required fields are marked *.