ExpoでビルドしたアプリをGoogle Play Consoleにアップすると警告「Android App Bundleの利用」と「64bitビルド」
先日、React Native + expo で作成したアプリをExpoでビルドしてアップロードしたのですが、アップロード後に警告が出ました。2つ警告が出ており、どちらもアプリのビルドに関する内容です。
これらは無視しても先に進むことができます。しかし、内容のメッセージから察すると2019年8月1日以降は状況が変わりそうですので、解決できないか調べました。
調査のためにはExpoのフォーラムなどを確認するのがよいです。英語なのですが、そもそも日本語の情報はまだまだ少ないので、本家のサイト確認するのがおすすめです。簡単な英語ばかりなのでGoogle翻訳しながら読める様なものばかりです。
結論を先に言うと
- 「Android App Bundle」の件
Expoでのビルドの際にオプションを設定することで解決できました。以降はこの方法でビルドを行えばいいのかなと思います。 - 「64bitビルド」の件
Expoはまだ未対応の様子です。コミュニティでは8月1日までに対応する予定ということですので、その情報を受けてから対応するしかなさそうです。
発生した警告
以下の2つが発生していた警告です。
1. Android App Bundleの利用
APK が最適化されていません
警告:
この APK では、使用されていないコードやリソースがユーザーに送信されます。Android App Bundle を使用すると、アプリのサイズを小さくすることができます。
デバイスの設定に合わせてアプリを最適化しないと、ユーザーのデバイスにダウンロードしてインストールするアプリのサイズが必要以上に大きくなります。
アプリは、サイズが大きくなるほどインストール成功率の低下を招き、ユーザーのデバイスのストレージを消費します。
解決策:
Android App Bundle を使用してデバイスの設定に合わせて自動的に最適化するか、複数の APK を使って自分で管理します。
解決方法
すでにExpoはAndroid App Bundleに対応しています。ズバリ、ビルドコマンドにオプションをつけることで利用できます。
expo build:android --type app-bundle
特に準備や変更が必要ないので気軽に利用できました。
2. 64bitビルド
警告
このリリースは Google Play の 64 ビット要件に準拠していません
以下の APK または App Bundle は 64 ビットのデバイスで利用できますが、32 ビット向けネイティブ コードしか含まれていません。1
2019年8月1日 以降、すべてのリリースが Google Play の 64 ビット要件に準拠していなければなりません。
アプリには 64 ビットと 32 ビットのネイティブ コードを含めます。Android App Bundle 公開形式を使用して、各デバイスのアーキテクチャが自動的に必要なネイティブ コードだけを受け取るようにします。
これにより、アプリ全体のサイズが増大することを回避できます。詳細
解決方法
こちらについてはExpoのフォーラムでも話に上がっていました。この問題は把握しており、現在対応中のようです。2019年8月1日までには対応する予定ですので、それを待ってから対応することになりそうです。
Expoの対応を待てば良さそうです。Expoのバージョンをアップデートする必要もあると思いますので、プログラムの修正が必要になる箇所があるかもしれません。8月1日までに忘れずに対応するようにしましょう。
おわりに
久しぶりにビルドしたものをアップしたら警告が出たので何事かと思いました。それほど問題もありませんでしたし、順次対応されて解決できそうなものばかりでした。ただExpoのアップデートが必要になる可能性がありますので、エラー等発生しないか要チェックです。
久しぶりに触ってみて改めて感じましたが、Google Playのリリース関連のフローはややこしいです。内部テストやクローズドテストあたりのフローについてもややこしいことが多いので、たまに触っておかないと忘れてしまいます。
こまめに触るかGoogleの変更を追いかけるかを続けようと思います。 もしくは、警告を読んで対応できるように知識を蓄えておくことが必要そうです。
追記
後日、64bitビルドも対応されました。特にコマンドの変更は必要なく、通常通りにexpoでビルドを行えば64bitビルドで作成されます。