前提
- Google Play Instant と Unity でインスタント ゲームを作成する
- unity 2018.4.4f1
- android studio 3.4.2
- Google Play Instant Development SDK 1.7.0
Android Instant Appsってなんだろう?
- アプリのサブセットをインストールせずに「今すぐ試す」ものです。
- ストアに「今すぐ試す」ボタンが付きます。
- 有料アプリの無料体験版にできます。
- 「Install版がストアにない状態」=「Instant版だけ」では使えません。
- アプリ中にインストールボタンを付けられるので、インストールの導線になります。
- 「アプリを起動するリンク」を作ることもできます。
- Webアプリのような感じで使えます。
- ただし、端末側で許可設定が必要です。
※あくまでも私の理解です。
準備
- 基本的には、上記のGoogleの記事に従います。
- play-instant-unity-plugin をプロジェクトに導入します。
- android studio に Google Play Instant Development SDK を導入します。
できること
- ビルド自体は、公式記事通りに進めれば、容易にできます。
- サイズ制限がある以外に違いはありませんし、テストする分にはサイズ制限もありません。
- PlayerSettings以外は、何も変えずともビルドできます。
- InstantとInstallを切り替えてビルドできます。
-
PLAY_INSTANT
というシンボルを使って、条件コンパイルできます。
-
- InstantAppを(実/仮想)デバイスに送って起動できます。
- コンソールへアップロード可能なInstant版APKが作れます。
- 容量制限がありますが、InstantからInstallへデータを引き継げます。(CookieApi)
- アプリサイズ制限をオーバーしていても、テストトラックで試すことはできます。
できないこと
- InstantとInstallでPlayerSettingsを切り替えてくれません。
- Instantでは、いくつかのPlayerSettingsが強制されます。
- プロジェクトやブランチを別にするなどの工夫が必要です。
- エディタ環境では、InstantからInstallへのデータ引き継ぎができません。
-
try {CookieApiで保存/取得} catch {PlayerPrefsで保存/取得}
として、エディタ上でシミュレートしました。
-
- Android App Bundleをサポートしていません。
- もちろん、InstantとInstallの混成aabを作ることもできません。
- これのせいで、サイズ制限を超えられませんでした。
留意点
- サイズを減らすために、複数のPlayerSettingsに対して更新が提示されます。
- いくつかは強制のようで、更新しないとビルドできません。
- 更新しなくてもビルドできるものもありました。
- 推奨通りに更新されたものを元に戻したい場合は、PlayerSettingsで個別に直すことになります。
- ビルドタイプをInstallに切り替えても、元に戻りません。
- InstallとInstantで設定を別にしたい場合は、プロジェクトやブランチを別にすることになるでしょう。
- いくつかは強制のようで、更新しないとビルドできません。
- Install版は、Instant版より大きなビルド番号でなければなりません。
- ツール側で混成aabがサポートされれば、同じビルド番号でも良いものと思われます。
- InstantからInstallへのデータ引き継ぎ(CookieApi)には、容量制限があります。
- 保存可能なサイズは
CookieApi.GetInstantAppCookieMaxSizeBytes ()
で取得可能です。
- 保存可能なサイズは
- テスト機のGoogle設定で、「バックアップ」⇒「アプリのデータ」の「自動復元」を切っておきましょう。
- インストール直後にデータが復活するので、データの引き継ぎが阻害されます。
結論
- aabの生成がサポートされるまでは厳しいです。