AnbLnの日記

AnbLn@ぽりえすてるのブログ

iOSアプリ開発メモ アプリ内課金

こんにちは、AnbLnです。

 

現在スクショ連結くんのアップデートを作っています。

課金の部分が今までやったことのない部分なので調べるのに時間を使いました。

そのまとめをこの記事に残したいと思います。

 

アプリ内課金を導入するにはStoreKitというframeworkを使います。

In-App Purchase プログラミングガイド - Google 検索

こちらに詳しいことが書かれています。

 

処理は、大きく三段階に分かれていると書かれています。

  1. プロダクト情報の要求
  2. 支払い処理の要求
  3. プロダクトの配信

 

プロダクトには消耗型、非消耗型、購読型など、いくつかのタイプがあります。

今回、スクショ連結くんには広告削除などの、一回課金したら課金情報が永続する非消耗型のプロダクトを作成したいと思っています。

非消耗型の場合は復元処理も実装しないといけません。

(他のプロダクトタイプの場合、復元処理が必要かはガイドを確認してください)

 

実際に実装する上では購入の持続も大事です。

購入の持続をしなければアプリを起動するたびに復元しないといけなくなります。

非消耗型のプロダクトの場合Appレシートを使って検証すればいいよみたいなことが書いてあります。

レシート検証プログラミングガイド - Google 検索

AppレシートについてはStoreKitの範疇を超えて別のプログラミングガイドを読む必要があります。

 

個人でこれをやれなくはないですが、めんどくさいし、何より初めての課金システム導入ということなので、もう少し簡単な方法をとりたいと思います。

つまりIn-App Purchaseプログラミングガイドにも書いてありますが、UserDefaultsに課金したという情報を登録する方法です。

改ざん防止の観点から劣る気もしますが、とりあえずこれで今回はしのぎます。

(もちろん平文で登録はしません)

 

リリース前にテストが必要になるでしょう。

プログラミングガイドにも書いてあることですが、リリース済みのアプリではsandboxテストできないという注意があります。

[iOS] Sandboxテスターによる課金デバッグはProduction環境で行なってはいけない | Developers.IO

スクショ連結くんはリリース済みなのでテスト環境を用意する必要があるようです。(めんどくさい)

 

以上がアプリ内課金のまとめでございます。

ご精読ありがとうございます。

 

関連記事

anbln.hatenablog.jp