Android App Bundle で戸惑ったこと (Unity)


はじめに

少々時間を無駄にしたので、ここに書き留めます。

環境

  • Unity 2018.4.x

得た知見

aabのBuild&Runでは、エラーせずとも実行されない場合がある

  • aabをBuild&Runした場合、端末への転送に失敗してもエラーにならず、インストール済みのバージョンが起動されます。
    • 転送に失敗する場合は、署名が違うとか、バージョンダウンだとか、色々あります。
  • なお、既にアプリが起動中だった場合は再起動されません。
    • 従って、ビルド開始時にあらかじめ旧版を起動しておけば、再起動するかどうかで成否を確認可能です。

aabとapkでは挙動が異なる場合がある

  • 同じソースでビルドしても、aabとapkでは挙動が異なる場合があります。
    • 具体的には、アセットの読み込み時に、apkには存在しない遅延が、aabでは生じることがあります。
    • apkは最初に全てロードしますが、起動を早めるために、aabでは必要になってからロードするのでしょうか。

さいごに

  • 転送に失敗していることに気付かず、特定のソースだけがコンパイルから漏れているのかと考えて、試行錯誤してしまいました。
  • 挙動が異なるのは、ソースが巻き戻っているのではないかと疑ってしまいました。