Unityを使ったMultiple APKのやりかた


Multiple APK とは

App Bundleより昔にあったやりかたで、
API levelやCPU architectureなどでインストールするAPKを切り替えることができる機能のこと。

基本的にはApp Bundleで十分なので使用する必要はない。
しかし、プラグインの事情など特別な理由によりAPKファイルを切り替えたい時に使用できる。

前提知識

Google Play Consoleにアップロードするため、リリースのやり方は別途調べておく必要がある。
- 私は https://qiita.com/tsucchi13/items/11b3d9c8f99ceedb4b47 を参照しました。

手順

  1. Player Settings - Android - Publishing Settings を設定しておく
  2. Player Settings - Android - Configuration を変更する
  3. Player Settings - Android - Identification - Bundle Version Code を被らないように変更する
  4. apkを出力し、必要な分だけ2に戻る
  5. Google Play ConsoleにすべてのAPKファイルをそれぞれアップロードする
  6. 公開する

要点

インストール時に使用されるAPKファイルは以下のように選択されるようなので、そこで制御を行う。
事実上、複数のAPKファイルさえ用意できればBundle Version Codeを管理できさえすれば、他には何もする必要はない。
(パックするツールがあるのかと探したが、その必要がなかった)

  1. 該当の端末で使用できるAPKファイルをフィルタリングする
    • API levelやCPU architectureなどでフィルタリングされる
  2. フィルタリングされたものの中でBundle Version Codeが一番大きいものが採用される
    • そのため、下位互換のあるもの(ARM64がARMv7のものを実行できるなど)については優先するものほど大きい値にする必要がある