イラスト英熟語、1.0.2

バージョン1.0.2
・プレミアム編(110個の厳選熟語)を追加
・アプリ内課金機能を実装
・基礎編(190個)とプレミアム編(110個)に分割

Google Play Console。App Store Connectに審査を提出しました。

目次

はじめてのアプリ内課金実装

STEP
パッケージの追加

pubspec.yamlを開いて、dependenciesセクションに以下を追加→flutter pub get

dependencies:
  flutter:
    sdk: flutter
  audioplayers: ^6.1.0
  shared_preferences: ^2.3.2
  # 既存のパッケージ...
  
  # 追加:アプリ内課金パッケージ
  in_app_purchase: ^3.2.0
STEP
課金サービスクラスの作成

新しいファイル lib/services/purchase_service.dart を作成

課金サービスクラスを作成

STEP
ホーム画面の修正

home_screen.dartに課金ボタンを追加

追加した主な機能:
✅ 基礎編(1-190)と プレミアム編(191-300)に分割
✅ プレミアム編のロック/アンロック表示
✅ 購入ダイアログ
✅ 購入復元ボタン(AppBarの右上)

STEP
AndroidとiOSの設定

android/app/src/main/AndroidManifest.xmlを開いて、権限を追加
タグの前に追加:uses-permission android:name=”com.android.vending.BILLING”

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
  
    <uses-permission android:name="com.android.vending.BILLING" />
    
    <application
STEP
実機テスト&スクリーンショットをとる

トップ画面にボタンが追加され、申請する時にこの分のスクショを差し替えるので
この時点でスクショを撮っておきます

STEP
pubspec.yamlを開いて、バージョンを更新

version: 1.0.2+3

STEP
商品IDの登録

Google PlayとApp Storeで商品を登録する
商品ID: purchase_service.dartのコード側と一致させる(半角英数アンダーバー)
価格: ¥600-800(お好みで)
タイプ: 非消費型(買い切り)

Google Play Consoleで商品登録

Screenshot

Google Play Consoleで「Google Playで収益化する」→「商品」→「1回限りのアイテム」

「1回限りのアイテム」をクリック
変更内容:

各項目の違い:

  • 「1回限りのアイテム」 ← 私の場合はこれ!一度購入すれば永久に使える
  • 「定期購入」月額・年額のサブスクリプション
  • 「アプリの価格設定」アプリ全体を有料にする場合
Screenshot

スクショのような画面が表示されました。「新しいAP Kをアップロード」という青いボタンが中心にあります。
この画面が表示されているということは、まだBILLING権限を含むAPKがアップロードされていないためらしい。

新しいAPK(バージョン1.0.2+3)をビルド

  1. ステップ1:APKをビルド
  2. ステップ2:Google Playにアップロード(「製品版」にアップロード)
  3. 「新しいリリースを作成」
    「app-release.aab」をアップロード
    バージョン番号:1.0.2 (3)
  4. リリースノートを入力

再度「1回限りのアイテム」の画面

Google Play Consoleで「Google Playで収益化する」→「商品」→「1回限りのアイテム」
「商品を作成」ボタンが表示
クリックして商品情報を入力


このような画面になりました。「1回限りのアイテムを作成」ボタンが表示されています!

Screenshot

手順:

STEP
右上の青いボタン「1回限りのアイテムを作成 →」をクリック

商品ID、名前(Name)、説明(Description)を入力。
タグは空欄のままで大丈夫

Screenshot

購入オプションIDは、ユーザーには表示されない内部管理用のID
私はdefaultと入力しました
購入の種類は「購入」のままでOKです。

タグは空欄のままで大丈夫。

STEP
価格を設定でつまづく
Screenshot

全ての国に個別に価格を設定する必要はなく、日本(Japan/日本)の欄を探して
日本の価格を¥600に設定すると、Google Playが自動的に他の国の価格を為替レートに基づいて換算してくれるらしい

ところがスクロールして、日本のところに600と入れたのですが
保存ができない!!

下の「未公開として保存」を押しても、横の青いボタンの「有効にする」を押しても変更保存できましたと言う警告メッセージ

Screenshot
STEP
右上の「Set prices」ボタンで解決

右上の「Set prices」ボタンをクリック
基準価格を設定する画面が開きます

「日本 (JPY)」を選択
価格に「600」と入力

「すべての国に適用」または「Apply to all countries」をクリック
保存
これで解決しました。やれやれ

STEP
しばらく価格でつまずく・・

一度、「破棄」し、そして必要な入力項目を入れ、日本のところを600と入れても
「価格を設定してください」がでてしまい
先にいけないトラップに陥る

STEP
審査に出す

バージョン1.0.2+3のAPKアップロード済みだったので審査に提出しました


App Store Connectでの入力

  1. App Store Connectにログイン
  2. 「イラスト英熟語」を選択
  3. 左メニューの「機能」タブをクリック
  4. 「App内課金」セクションを見つける
  5. 「+」または「作成」ボタンをクリック
    価格の設定
  6. 「価格を追加」ボタンをクリック
  7. 日本:価格を入れる
  8. 保存
  9. App内課金情報を追加
  10. 画面を上にスクロール
  11. 「App内課金情報」セクションを探す
  12. 言語:日本語
  13. 表示名:私は「プレミアム編」と入力
  14. 説明:入力
  15. 審査に関する情報は任意項目なので空欄にしました

iOS版のビルドとアップロード

STEP
iOS版をビルド
bashflutter clean
flutter pub get
flutter build ipa

101.2MBのIPAファイルが完成しました!

STEP
Transporter アプリを使う

いつもはXcodeからアップしていましたがTransporterでアップロードにしました

STEP
Transporterアプリを開く

Mac App Storeからインストール済みでした

STEP
IPAファイルをドラッグ&ドロップ

Finderで build/ios/ipa フォルダを開く
.ipa ファイルをTransporterにドラッグ

Screenshot

その後、青い「デリバリ」ボタンをクリックしました。

Screenshot


App Store Connectへのアップロードが始まります。

Screenshot
STEP
アップロード完了
Screenshot

App Store Connect のTestFlightをのぞいたらビルドは正常にアップロードされ、App Store Connect側で処理中

Screenshot
STEP
新しいバージョン1.0.2を作成

「App Store」タブをクリック
新しいバージョン1.0.2を作成
スクショをホーム画面のスクリーンショットは差し替える
ビルド1.0.2 (3)を選択
アプリ内課金商品を選択

STEP
審査提出


目次