Google Playにあげるファイルは、exeやapkではなく、AAB(Android App Bundle)です。Unityで作る前に、設定を確認します。
筆者が使った設定(Unity 6)
| 項目 | 値 |
|---|---|
| パッケージ名 | com.am0500.maxstomach |
| バージョン | 1.0 |
| Bundle Version Code | 1(更新のたびに増やす) |
| 最低APIレベル | Android 8.0(API 26) |
| ターゲットAPIレベル | Automatic (highest installed) |
| Scripting Backend | IL2CPP |
| Target Architectures | ARM64のみ |
ターゲットAPIレベルは、最初「Target API Levelが見つからない」と迷いました。Unityのバージョンで表示が違うことがあるので、Androidタブの「その他の設定」の中を、上から順に探しました。
署名(キーストア)は最重要
アプリを更新するたびに、同じ鍵で署名します。Google Playアプリ署名を使う場合、自分で作るキーストアは「アップロード鍵」になります。
- キーストアは、Unityプロジェクトの外に保存する
- パスワードとファイルを、別の場所にバックアップする
- パスワードを、ブログやSNS、チャットに載せない
- 有効期限は長めにする(筆者は50年)
つまずき1:Unityを再起動すると、パスワードを聞かれる
Unityを再起動してビルドすると、次のエラーが出ました。
Unable to sign the Android application / No keystore passwords were found
原因は、Unityがキーストアのパスワードを記憶していなかったことです。Project Settings → Player → Android → Publishing Settings で、キーストアとキーのパスワードを入れ直して、ビルドし直したところ、通りました。Unityを起動し直すたびに、必要になることがあります。
つまずき2:「Active Input Handling」の警告
ビルドの途中で、「Active Input Handling is set to Both」という警告ダイアログが出ました。筆者は「Continue」で進め、動作に問題はありませんでした。設定を直す場合は、Windows版のキーボード・ゲームパッドの入力を、必ず確認してください。
有料版を、同じプロジェクトから作る
筆者は、無料版と有料版を1つのUnityプロジェクトから作っています。広告のコードは、#if ADS_ENABLED で囲んであり、Scripting Define Symbols に ADS_ENABLED があるかどうかで、広告ありとなしを切り替えます。
有料版をビルドする手順は、次の通りです。
- Project Settings → Player → Android で、パッケージ名を
com.am0500.maxstomach.paidに変える - Scripting Define Symbols から
ADS_ENABLEDだけを削除する(ほかのシンボルは残す) - キーストアのパスワードを入れる
- Build Profiles → Android で、Build App Bundle にチェックを入れ、Development Build はオフにして、Build を押す
- ビルドが終わったら、必ず無料版の設定に戻す(パッケージ名と
ADS_ENABLED)
5を忘れると、次に無料版をビルドしたときに、広告が出ない無料版ができてしまいます。筆者は、戻した後に、Consoleにエラーが出ていないことも確認しました。
つまずき3:「アプリのアイコン」と「ストア用アイコン」を混同した
有料版を作ったあと、「有料版のアプリアイコンを設定し忘れた」と思い込み、AABを作り直してしまおうとしました。実際には、次の2つを混同していました。
| 名前 | 設定する場所 | 大きさ |
|---|---|---|
| アプリのアイコン | Unityの Project Settings → Player → Icon(AABの中に入る) | 複数のサイズ |
| ストア用アイコン | Play Consoleのストア掲載情報(AABとは別) | 512×512 |
ストア用アイコンはAABと関係がないので、AABを作り直す必要はありませんでした。名前が似ているだけに、混ざりやすいです。
この章のポイント
- キーストアは、Unityプロジェクトの外と、別の場所のバックアップで守る。
- Unityを起動し直すと、パスワードを入れ直す必要がある。
- 有料版をビルドしたあとは、必ず無料版の設定に戻す。
- 「アプリのアイコン」と「ストア用アイコン」は、別物。
