バージョン1.0.2
・プレミアム編(110個の厳選熟語)を追加
・アプリ内課金機能を実装
・基礎編(190個)とプレミアム編(110個)に分割
Google Play Console。App Store Connectに審査を提出しました。
はじめてのアプリ内課金実装
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
新しいファイル lib/services/purchase_service.dart を作成
課金サービスクラスを作成
home_screen.dartに課金ボタンを追加
追加した主な機能:
✅ 基礎編(1-190)と プレミアム編(191-300)に分割
✅ プレミアム編のロック/アンロック表示
✅ 購入ダイアログ
✅ 購入復元ボタン(AppBarの右上)
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
トップ画面にボタンが追加され、申請する時にこの分のスクショを差し替えるので
この時点でスクショを撮っておきます

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

Google Play Consoleで「Google Playで収益化する」→「商品」→「1回限りのアイテム」
「1回限りのアイテム」をクリック
変更内容:
各項目の違い:
- 「1回限りのアイテム」 ← 私の場合はこれ!一度購入すれば永久に使える
- 「定期購入」月額・年額のサブスクリプション
- 「アプリの価格設定」アプリ全体を有料にする場合

スクショのような画面が表示されました。「新しいAP Kをアップロード」という青いボタンが中心にあります。
この画面が表示されているということは、まだBILLING権限を含むAPKがアップロードされていないためらしい。
新しいAPK(バージョン1.0.2+3)をビルド
- ステップ1:APKをビルド
- ステップ2:Google Playにアップロード(「製品版」にアップロード)
- 「新しいリリースを作成」
「app-release.aab」をアップロード
バージョン番号:1.0.2 (3) - リリースノートを入力
再度「1回限りのアイテム」の画面
Google Play Consoleで「Google Playで収益化する」→「商品」→「1回限りのアイテム」
「商品を作成」ボタンが表示
クリックして商品情報を入力
このような画面になりました。「1回限りのアイテムを作成」ボタンが表示されています!

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

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

全ての国に個別に価格を設定する必要はなく、日本(Japan/日本)の欄を探して
日本の価格を¥600に設定すると、Google Playが自動的に他の国の価格を為替レートに基づいて換算してくれるらしい
ところがスクロールして、日本のところに600と入れたのですが
保存ができない!!
下の「未公開として保存」を押しても、横の青いボタンの「有効にする」を押しても変更保存できましたと言う警告メッセージ

右上の「Set prices」ボタンをクリック
基準価格を設定する画面が開きます
「日本 (JPY)」を選択
価格に「600」と入力
「すべての国に適用」または「Apply to all countries」をクリック
保存
これで解決しました。やれやれ
一度、「破棄」し、そして必要な入力項目を入れ、日本のところを600と入れても
「価格を設定してください」がでてしまい
先にいけないトラップに陥る
バージョン1.0.2+3のAPKアップロード済みだったので審査に提出しました
App Store Connectでの入力
- App Store Connectにログイン
- 「イラスト英熟語」を選択
- 左メニューの「機能」タブをクリック
- 「App内課金」セクションを見つける
- 「+」または「作成」ボタンをクリック
価格の設定 - 「価格を追加」ボタンをクリック
- 日本:価格を入れる
- 保存
- App内課金情報を追加
- 画面を上にスクロール
- 「App内課金情報」セクションを探す
- 言語:日本語
- 表示名:私は「プレミアム編」と入力
- 説明:入力
- 審査に関する情報は任意項目なので空欄にしました
iOS版のビルドとアップロード
bashflutter clean
flutter pub get
flutter build ipa
101.2MBのIPAファイルが完成しました!
いつもはXcodeからアップしていましたがTransporterでアップロードにしました
Mac App Storeからインストール済みでした
Finderで build/ios/ipa フォルダを開く
.ipa ファイルをTransporterにドラッグ

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

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


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

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