uka.apple のすべての投稿

StoreKit2でシンプルな課金処理 第4回

課金処理の実装は、昨年実施された WWDC21 でStoreKit2紹介時にサンプルとして利用されたプロジェクトを参考に行います。

開発元のAppleが紹介しているサンプルなので、利用するコードとしては最高です。

このページのDownloadボタンからサンプルプロジェクトを取得してください。

ダウンロードして解凍後、SKDemo.xcodeprojを開いてプロジェクトを立ち上げます。

プロジェクト実行前に、このページの手順1〜4の設定を行わないと課金アイテムが表示されないので注意してください。

下記画像の赤部分です。

設定後、実行すれば、サンプルプロジェクトが正常に動作します。

次回からはこのプロジェクトを元に、自分のプロジェクトへ自動更新サブスクリプションの部分だけを移植、調整していくこととします。

(੭ ˃̣̣̥ ω˂̣̣̥)੭ु⁾⁾

StoreKit2でシンプルな課金処理 第3回

前回に引き続き、事前の設定作業を行なっていきます。


下記6箇所の設定を行います。

1.まずは、一番上に水色の背景色で表示されている「ローカライゼーションを追加」の文字をクリックします。プルダウンが表示されるので “日本語” を選択します。

「サブスクリプショングループ表示名」は、下記画像の赤丸部分の箇所で表示されます。ここでは “テキスト漫画サブスクリプション” としました。

「App名表示オプション」は、上記のサブスクリプショングループ表示名と共に表示される名前で、そのままでもOKです。右上の「保存」ボタン押下後、元の画面に戻ります。

2.次に「サブスクリプション期間」を設定します。1ヶ月ごとに¥120円としたいので、ここでは “1ヶ月” をプルダウンから選択しました。

3.「サブスクリプション価格」の右にある「+」をクリックし、価格を決定します。テキスト漫画は日本向けに売るので、通貨は “JPY – 日本 円”、価格は “¥120” を選択し、「次へ」をクリックします。

他の国の価格は、上記で選択した価格をベースに自動でセットされます。必要に応じて調整後「作成」をクリックします。

4.次は「ローカライゼーション」の右にある「+」をクリックします。プルダウンが表示されるので “日本語” を選択します。

「サブスクリプション表示名」はApp Store に表示される App 内課金の名前です。ここでは “お気に入り(¥120/月)” としました。

説明欄には、このサブスクリプションで実現可能な機能を記述します。文字数制限があるため簡潔に記述します。

5.次に、これは任意ですが、アプリ内課金用のイメージを指定します。

画像は 1024 x 1024 で指定します。下のチェックボックスをオンにすると、アプリをインストールしていないユーザがアプリストアでこのアプリを見たときに、どんなことが課金で実現できるのか確認できます。

6.最後に、「審査に関する情報」を設定します。

アプリ内課金で実現可能な機能を、スクリーンショットと共に文章での説明を行います。審査で利用されます。

(あまりにしょぼい機能だとリジェクトを喰らうと思います。自動更新サブスクリプションは特にそうだと思います・・・)

上記画像のようにステータスが「送信準備完了」となればOKです!(広告非表示のアプリ内課金も追加しました)

ついでに、上記画像右上の「App 用共用シークレット」をクリックして、あとで利用する「App用共有シークレット」のコードを生成しておきましょう。


以上で、App Store Connectでの設定はほぼ終わりました!

次回は Xcode を利用しての実装作業に入ります!!

(੭ ˃̣̣̥ ω˂̣̣̥)੭ु⁾⁾

StoreKit2でシンプルな課金処理 第2回

第2回は、事前準備のため、App Store Connectで必要な設定を行なっていきます。誰にでもわかるよう、ログイン画面から操作手順を解説していきます。

※アプリ開発経験者向けの課金処理に関する解説です。


1.App Store Connectにログインします。

2.「契約/税金/口座情報」をクリックします。

3.「有料App」のステータスが「アクティブ」になっていることを確認します。

※上記のようになっていなければ、「有料App」の文字をクリックして、口座情報などを正しく設定します。

4.App Store Connectログイン直後の画面に戻って「マイApp」をクリックします。

5.これから課金処理を実装する、あなたのアプリをクリックします! (※初回バージョンからアプリ内課金を実装する場合は8へ)

6.iOS App の右横の「+」をクリックします。

7.新しいバージョンを入力します。このバージョンからアプリ内課金が有効になります。

8.アプリ画面の左下にあるApp内課金から「管理」をクリックし、App内課金 (0) の右側にある「+」をクリックします。

9.課金タイプを選択します。今回は “自動更新サブスクリプション” を選択します。

10.「参照名」と「製品ID」を入力します。

「参照名」はApp Store Connect上のみで表示されます。自分があとで見て分かりやすい名前をつければ大丈夫です。作成後に変更可能です。

「製品ID」はあとで変更出来ません。他とかぶらない一意のIDを指定します。アプリの識別IDに加えて機能名や金額を指定すると良いと思います。

11.サブスクリプショングループを作成します。

「サブスクリプショングループ参照名」は、サブスクリプションの管理単位で、通常1つのアプリに対して1つあれば良いようです。App Store Connectおよび「売上とトレンド」のレポートでのみ表示されます。App Storeには表示されません。

1〜11の手順が終わると、下記のような画面になります。

(੭ ˃̣̣̥ ω˂̣̣̥)੭ु⁾⁾

長くなってきたので、第3回へ続きます。

StoreKit2でシンプルな課金処理 第1回

あけましておめでとうございます。本年もよろしくお願いいたします。

(੭ ˃̣̣̥ ω˂̣̣̥)੭ु⁾⁾

本年2022年はiPhoneアプリのテキスト漫画に課金処理を実装していきたいと思います。2022年1月時点で最新の Xcode (13.2.1) をベースに、iOS15で登場したStoreKit2を利用して誰でも確実に課金処理を実装できるよう、連載形式で少しずつ解説していきます。

※アプリ開発経験者向けの課金処理に関する解説です。


早速ですが、第1回はアプリ内課金の種類を説明します。

アプリ内課金には

1.消耗型
2.非消耗型
3.自動更新サブスクリプション
4.非自動更新サブスクリプション

の4種類があります。

1の消耗型は皆さん大好きなガチャを回すため、ゲーム内通貨を購入する際に利用されます。1回使ったら戻ってきません。お金は大切にしましょう。

2の非消耗型は、1回購入すればアカウントに紐づいて一生涯使い続けられるものです(アプリが無くならなければ)。アプリの広告をオフにする機能や、永続して使い続けられる非消耗型アイテム購入などがあります。

3の自動更新サブスクリプションは、キャンセルするまで継続的に課金されるタイプです。課金している間だけコンテンツへのアクセスが有効になったりします。ビデオ、音楽、記事、クラウドストレージなどへのアクセス権が一例です。課金をやめると利用不可になります。

4の非自動更新サブスクリプションには、シーズンパスなどがあります。自動的に更新されないため、都度購入する必要があります。

今回、テキスト漫画では3の自動更新サブスクリプションを実装予定です。現時点で結構な数のテキスト漫画が存在するため、その中から自分の気に入ったテキスト漫画だけを

お気に入り

に追加し、お気に入りだけを閲覧できる画面を実装します。

(੭ ˃̣̣̥ ω˂̣̣̥)੭ु⁾⁾

・・

・・・え?2の非消耗型でいいんじゃないかって?

ごめんなさい、サーバー代を稼がせてください。

サーバー代は継続してかかるんです。

     -ーー ,,_
   r'”      `ヽ,__
   \       ∩/ ̄ ̄ ヽつ
  ノ ̄\ /”ヽ/ ”   ノ   ヽi
 |  \_)\ .\    ・  ・ |\
 \ ~ )     \ .\_  ( _●_)\_つ
    ̄       \_つ

第2回へ続く・・・

ねこマタ バージョンアップ

今更ながらiPhoneのノッチ対応のため ねこマタ(Catama) をバージョンアップしました。

“ねこマタ”は、22世紀から来た猫型ロボットです。

人類は、自分で動くのが面倒なので、仕事も遊びも戦いも、何もかもロジックを組んでロボットに任せるようになりました。21世紀のねこ人気は22世紀でも続いていました。ねこマタはねこ型のオートマタです。

ねこマタへの命令は、”ロジックボード”に”ロジックパネル”をはめ込むことで行います。
うまくロジックパネルを配置して、ねこマタを上手に操ってください。

全ての敵も、ねこマタ同様にロジックで動いています。敵のロジックをよく観察して、ステージをクリアしてください。

対人戦も絶賛稼働中です!

(੭ ˃̣̣̥ ω˂̣̣̥)੭ु⁾⁾

DOTTER バージョンアップ

今更ながらiPhoneのノッチ対応のため Dotter. をバージョンアップしました。

シンプルすぎて使い方説明不要な、でもエリアコピーなど便利な機能が使えてドット絵が簡単に作成できる「Dotter.」をよろしくお願いします。

プロモーション動画を見ていただければ分かりますが、ドットを打ち間違えないよう”カーソル”を利用してドットが打てます。

もしカーソルの利用が面倒なら「SETS」タブから”Direct Mode”をオンにすれば普通の使い方もできます。

•ू(ᵒ̴̶̷ωᵒ̴̶̷*•ू) ​ )੭ु⁾ もきゅ~

次は、絶賛対人戦システム稼働中だけどプレイ人口が超絶少ない「Catama」をノッチ対応のためにバージョンアップ予定です。

新作アプリベータリリース!!

デアゴスティーニ式に毎週(毎日)ちょっとずつ制作し、なんだかんだでトータル3年近くかけて、遂に新作アプリ”隣の田所さん”がベータリリースまで漕ぎ着きました。

こちらのリンクから遊べます。

今回のアプリはWebGLという技術を使っているため、iPhoneやPCなどのブラウザから手軽にどこからでも遊べるようになっています。

公開したばかり かつ 告知も広告も、ゲームのルール説明すら何もしていないこともあり(ゲームのルール説明は今後追加予定)、オンラインゲームでありながらあまり人がいないです。

ゲームログイン後にお隣さんが誰もいなくてつまらなかったら、是非周りの知り合いを連れてきて一緒に遊んでください。

 ∧_∧ 
( ´・ω・) 
ノ^ yヽ 
ヽ_ノ==|ノ 
 / || 
“””~””””””~”””~”””~”

デアゴ管理アプリ制作 第2弾 隣の田所さん 742日目

デアゴスティーニのようにちょっとずつの作業を毎回確実に行うことでアプリを最後まで完成させることを目指して制作している新作アプリ「隣の田所さん」第107週目の作業予定です。

743日目:オンライン決済実装 課金額選択UI その1
744日目:オンライン決済実装 課金額選択UI その2
745日目:オンライン決済実装 $と円の切り替え その1
746日目:オンライン決済実装 $と円の切り替え その2
747日目:オンライン決済実装 β公開準備
748日目:オンライン決済実装 β公開
749日目:予備日(次の週の予定を立てる)

先週は、課金についてサーバ処理する方針に方向転換してセキュアに実装作業を完了しました。

今週は、複数の課金額や、日本語版では円で、英語版では$で課金できるように調整してからβ公開を実施予定です。

告知など何もせずひっそり公開するため、誰もいなくてつまらなかったら

誰か連れてきてください。

 ┌(_Д_┌ ) ┐

デアゴ管理アプリ制作 第2弾 隣の田所さん 735日目

デアゴスティーニのようにちょっとずつの作業を毎回確実に行うことでアプリを最後まで完成させることを目指して制作している新作アプリ「隣の田所さん」第106週目の作業予定です。

736日目:オンライン決済実装 webhook受信
737日目:オンライン決済実装 webhookから支払い情報受信
738日目:オンライン決済実装 webhookからユーザID受信
739日目:オンライン決済実装 webhookで通貨加算
740日目:オンライン決済実装 webhook署名検証 その1
741日目:オンライン決済実装 webhook署名検証 その2
742日目:予備日(次の週の予定を立てる)

今までは、課金で所持金(TD)を増やす処理をクライアント側だけで行おうとしていましたが、やはり無理があるためwebhookをサーバ側で受信し、ちゃんとサーバ処理する方針に方向転換しました。

当たり前ですが、クライアントだけでやるのは無理がありました。

(#`ェ´)┌┛)´Д゚)ノ・;’.

今週はサーバ側での各種課金処理を実装予定です。

デアゴ管理アプリ制作 第2弾 隣の田所さん 728日目

デアゴスティーニのようにちょっとずつの作業を毎回確実に行うことでアプリを最後まで完成させることを目指して制作している新作アプリ「隣の田所さん」第105週目の作業予定です。

729日目:オンライン決済実装 クライアント1
730日目:オンライン決済実装 クライアント2
731日目:オンライン決済実装 クライアント3
732日目:オンライン決済実装 サーバ1
733日目:オンライン決済実装 サーバ2
734日目:オンライン決済実装 サーバ3
735日目:予備日(次の週の予定を立てる)

先週は、ベータ公開前のテスト作業を完了しました。

今週は、最後の仕上げとしてゲーム内通貨購入処理を実装します。

ベータなので購入する人はいないと思いますが。

ヽ(;´д`)丿