認証もDBも実装し、ついにアプリが動くようになりました。
しかし、今のスマホの画面を見てみてください。アイコンが「Flutterのロゴ」のままではありませんか?
今回は、アプリを「開発中のコード」から「ストアに並ぶ商品」へと進化させるための「リリース準備」を行います。
やることが少し多いですが、これを乗り越えればあなたのアプリが世界中に公開されます。一つずつ片付けていきましょう!
0. Google Play Consoleへの登録(お金の話)
技術的な作業の前に、現実的な準備です。
Androidアプリをリリースするには、Googleに「デベロッパー登録」をする必要があります。
- 費用: 25ドル(約4,000円前後)※一度払えば一生有効
- 必要なもの: Googleアカウント、クレジットカード
登録には本人確認などで数日かかることがあるので、Google Play Consoleから早めに手続きを済ませておきましょう。
1. アプリの顔「アイコン」を作る
デフォルトのFlutterアイコンのままだと、誰もダウンロードしてくれません。
オリジナルのアイコンを設定しましょう。
最強ツール「flutter_launcher_icons」
AndroidとiOSでは必要なアイコンのサイズがバラバラで、手動で作るのは地獄です。
そこで、1枚の画像から全サイズを自動生成してくれる神パッケージを使います。
- 画像を用意する:
1024x1024ピクセルの正方形のアイコン画像(icon.png)を作り、プロジェクトのassets/icon.pngに置きます(フォルダがなければ作ってください)。 - pubspec.yaml に追記する:
dev_dependencies(開発用依存関係)の部分に以下を追加します。
dev_dependencies:
flutter_test:
sdk: flutter
# ▼ ここに追加
flutter_launcher_icons: ^0.13.1
# ▼ ファイルの一番下に追加
flutter_launcher_icons:
android: "launcher_icon"
ios: true
image_path: "assets/icon.png"
min_sdk_android: 21 # min_sdk_android は「Androidアイコン生成時のminSdk」を指定します(最小16、既定21)。アプリ本体のminSdkはGradle側(minSdkVersion)で管理します。
3. 生成コマンドを実行する:
ターミナルで以下のコマンドを叩けば、一瞬で全サイズのアイコンが生成・配置されます。
flutter pub get
dart run flutter_launcher_icons
2. アプリ名の最終確認
スマホのホーム画面の下に表示される名前です。
前回の記事でも触れましたが、リリース前にもう一度確認しておきましょう。
ファイル: android/app/src/main/AndroidManifest.xml
<application
android:label="習慣トラッカー" <!-- ←ここがアプリ名 -->
...>
💡 Tips:テスト環境と本番環境を分ける
開発中に適当に入力したデータが、本番ユーザーに見えてしまったら大変です。
実際の開発では「開発用(Dev)」と「本番用(Prod)」でFirebaseプロジェクト自体を分けることも多いです。
【初心者に一番簡単な分け方】
- 開発中:
google-services.jsonは開発用のプロジェクトのものを使う。 - リリース直前: 本番用のFirebaseプロジェクトを新規作成し、そこからDLした
google-services.jsonにファイルを差し替えてからビルドする。
※慣れてきたら「Flavor(フレーバー)」という機能を使って自動切り替えしますが、最初は「手動差し替え」でも十分です。事故を防ぐためにプロジェクトは分けましょう。
3. アプリに署名をする(Keystoreの作成)
ここが一番の難関です。
Androidアプリをストアに出すには、「このアプリは間違いなく私が作りました」という電子署名が必要です。
これまではPCが勝手に作った「デバッグ用の鍵」を使っていましたが、リリース用には「あなただけの本番の鍵(upload-keystore.jks)」を作る必要があります。
Step 1: 鍵を作るコマンド
ターミナル(Mac)またはPowerShell(Windows)で以下を実行します。
※パスワードを求められるので、忘れないようにメモしてください。
# Mac / Linux
keytool -genkey -v -keystore upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
# Windows (PowerShell)
keytool -genkey -v -keystore upload-keystore.jks -storetype JKS -keyalg RSA -keysize 2048 -validity 10000 -alias upload
これでフォルダに upload-keystore.jks というファイルが生成されます。
これを android/app/ フォルダの中に移動させてください。
Step 2: 鍵情報を登録する
Android側に「この鍵を使ってね」と教える設定ファイル(key.properties)を作ります。android/ フォルダ直下に新規ファイル作成し、以下を記述します。
storePassword=さっき決めたパスワード
keyPassword=さっき決めたパスワード
keyAlias=upload
storeFile=upload-keystore.jks
最後に、android/app/build.gradle を編集して、このファイルを読み込む設定を追加します。
(記述場所は少し複雑なので、公式ドキュメントのコピペ推奨です)
⚠️ 絶対に無くさないで!
この upload-keystore.jks を紛失すると、二度とそのアプリをアップデートできなくなります。
また、セキュリティ上、このファイルと key.properties はGitにコミットしないように .gitignore に追加しておきましょう。
4. リリース用ファイル(AAB)のビルド
準備は整いました。いよいよ「提出用ファイル」を作ります。
昔は APK という形式でしたが、現在は AAB (Android App Bundle) という形式が推奨されています。これを使うと、Google Playがユーザーの端末に合わせてサイズを最適化してくれます。
flutter build appbundle
ビルドが成功すると、以下の場所にファイルが完成します。build/app/outputs/bundle/release/app.aab
この .aab ファイルが、Google Play Consoleにアップロードする「商品そのもの」です。
5. 最終確認:実機で「リリース版」を動かす
ストアにアップロードする前に、自分のスマホで「リリース版」の挙動を確認しましょう。
デバッグ版(普段F5で動かしているもの)とは動きが違うことがあります。
Android端末をPCに繋ぎ、以下のコマンドを実行します。
flutter run --release
- チェックポイント:
- アイコンは変わっているか?
- アプリ名は正しいか?
- Googleログインはできるか?
※重要:リリース用のSHA-1(新しい鍵のフィンガープリント)をFirebaseとGoogle Cloud Consoleに追加していないと、ここでログインに失敗します!
まとめ:あとは審査を待つだけ!
お疲れ様でした!
これで手元に「ストアに提出できるファイル(AAB)」が完成しました。
あとは Google Play Console にログインし、「新しいアプリの作成」から必要事項(説明文やスクリーンショット)を入力して、AABファイルをアップロードするだけです。
最初は審査にドキドキしますが、通った瞬間の喜びはひとしおです。