iOS6で追加されたIn-App-Purchaseのホスティングについて調べてみた
こんにちは、いちかわです。
ついに、iPhone5とiOS6がでましたね!
弊社でも早速iPhone5を手に入れましたが、AUのLTEの速さにびっくりしました。
iOS6ベータが提供された時から、気になっていたというか、Samurai Purchaseの競合じゃねーか!と戦々恐々していた、アプリ内課金のコンテンツをAppleさんがホスティングしてくれる機能について調べてみました。
今までのアプリ内課金では、ダウンロード型のコンテンツを提供する場合は、自分でサーバを立ててコンテンツをダウンロードできるようにする必要がありました。
Samurai Purchaseでは、開発期間の短縮や運用コストを削減するのに貢献できるよう、コンテンツの管理&配信をASPとして提供してます。
今回Appleから提供されたコンテンツ(プロダクト)のホスティングは、どんなものかと簡単に説明すると以下のように感じとなります。
1.プロダクトを登録できるのは、Non-Consumableタイプだけ
Appleのドキュメントを見ると「Hosting Non-Consumable Purchases」のところに書かれていて、「Apple can host your non-consumable purchases〜」と説明されているように、非消耗品タイプの課金アイテムだけが登録できます。
iTunes Connectでプロダクトが登録されている状態
2.登録できるファイルは1つ(ただし、複数のファイルを1つにまとめることが可能)
登録できるファイルはパッケージ(pkg)だけで、このパッケージを作るためにXcode4.5では、In-App-Purchase用のテンプレートが用意されています。
このテンプレートでプロジェクトを作成し、必要なファイルを格納して、パッケージを作成します。
3.決済の確認が取れると、ダウンロード可能となる。
SKPaymentQueueに新しく
– startDownloads:
– cancelDownloads:
– pauseDownloads:
– resumeDownloads:
とメソッドが追加され、startDownloadsを呼び出すとダウンロードが実行されます。
SKPaymentTransactionObserverのpaymentQueue:updatedDownloads:実装することで、ダウンロードのステータスをウォッチすることが出来、実際にダウンロードされたプロダクトの情報を含むSKDownloadを取得できます。
SKDownloadのcontentURLプロパティーで、ダウンロードされたコンテンツのパスが取得できますので、格納されているコンテンツを取り出すことができます。
順を追って説明すると
- 購入処理を実行します。
- SKPaymentTransactionObserverのpaymentQueue: updatedTransactions: メソッド内でSKPaymentTransactionStatePurchasedステータスになったら、SKPaymentQueueのstartDownloadsを呼びます
- ダウンロード中はSKPaymentTransactionObserverのpaymentQueue:updatedDownloads:が繰り返し呼ばれ、ステータスがSKDownloadStateFinishedになるとダウンロード完了
- SKDownloadのcontentURLで保存先のプロダクトに含まれているファイルを読み込む
となります。
(サンプルソースは近日公開します)
以上が、Appleにプロダクトをアップロードした場合の購入〜ダウンロードの流れとなります。
アプリに組み込む場合は、アプリ内課金を実装したことがある人であればそれほど難しくはないと思います。
では、Samurai Purchaseとの違いはと言いますと
- 通信料以外の料金がかからない。
- 登録するプロダクトを作成するにもXCodeでプロジェクトを作成する必要がある。(つまり、お客さんが運用する場合は、それなりの環境が必要)
- 販売するプロダクトを様々な条件で表示したい場合は(新着、人気順など)、アプリ内のその情報を持つか、別の場所からダウンロードする必要がる。
- iOS6以上が必要(StoreKitの一部の機能がiOS6以上を対象としているため)
と言ったところでしょうか。
逆にSamurai Purchaseを使うメリットは、
- 画像、動画、テキスト等登録可能なファイルの種類に制限は基本的に無い(もちろんzipにまとめて登録するのもOK)ので、お客さんが管理画面を操作してプロダクトを自由に追加できる。
- 一覧表示する情報や、サムネイル画像などもサーバから取得できるので、リッチなオリジナルのストアが構築できる。
- iOS3以上であればOK
- 登録したコンテンツはAndroidへの配信にも使える
となります。
実際にアプリを作成する際の企画によって、メリットデメリットがあるので、アプリに必要な機能を満たしている方(自作も含め)選ぶのが良いと思います。
- 2012年09月22日
- iPad, iPhone, Samurai Purchase, SamuraiSmartphoneServices