【Flutter】Google Play Storeからインストールした時のみ、画面が真っ白のまま起動できなくなる問題の解決法
概要
エミュレーターでは、問題なく動く。
flutter run
で実機テストを行なった場合でも、問題なく動く。
しかし、Google Play Store経由でアプリインストールした場合のみ、起動時に画面が真っ白(White screen)になったまま動かなくなる問題の解決法です。
解決策
自分の場合、build.gradle
に、shrinkResources false
(圧縮OFF)とminifyEnabled false
(最適化OFF)を追加することで解決できました。
buildTypes {
release {
<!-- 中略 -->
// GooglePlayStore経由でインストールした場合のみ、起動時にWhiteScreenのまま動かなくなる問題の解決
// ref: https://blog.pentagon.tokyo/1824/
shrinkResources false
minifyEnabled false
}
}
参考にした以下のissueによると、useProguard false
(難読化OFF)も必要らしいのですが、自分の場合、useProguard を追加するとビルドエラー(No signature of method: build_xxxx)が起きたので、取り除きました。
ちなみにビルドは、flutter build appbundle --dart-define=ROOT_URL="https://www.diqt.net"
といった形で行っています。
余談: GooglePlayStore経由でもテストしよう。
普段使いはiPhoneなので、今回の件はユーザーさんからのご報告によって初めて気づいたのですが、久しぶりに変な汗をかきました。
こういう、GooglePlayStore経由でインストールした場合でのみ発生するバグもあるので、きちんとリリース前には、GooglePlayConsoleでテスト配信を行って実機テストを行いましょう!!(戒め)
かくいう自分も、Androidは「オープンテスト」と「クローズドテスト」と「内部テスト」と3つも種類があってよくわからないし、TestFlightと違ってテスト配信するだけでも審査が必要で時間がかかるから面倒だと思ってたんですが、これは本当よくないですね。
内部テストであれば審査も必要なく、すぐに確認できるのでオススメです。
今回は、アプリのレビューからも問題をご報告いただいたりして、本当に冷や汗をかきました。
(幸運にも、星を4つもつけてご報告いただける優しいユーザーさんで本当に助かりました😭)
もうぜっっったいに内部テスト前にリリースしないぞ!!!!
ちなみにDiQtのリポジトリは公開してるので、レビューや⭐️スターをいただけたら嬉しいです!!
どうぞ今度ともDiQtをよろしくお願いいたします!!
参考
Discussion
記事拝見させていただきました。
私も同様の経験があります。(auto_route パッケージでの画面遷移で起きました。)
エミュレーターでは、問題なく動く!(android ios)
flutter run で実機テスト(android ios)を行なった場合でも、問題なく動く。(Profile,Relese)
しかし、androidのみストアからのDL(内部テストも含め)クラッシュ‥
私の場合は画面遷移を変更して対応いたしました‥
記事の内容とても参考になりました。
ありがとうございます!
おおお!Tanuchiさん、コメントありがとうございます!
参考になったようで光栄ですー!
他の解決策のご報告もありがとうございます!