Flutter Build release APK

Table of Contents

Table of Contents

Flutter Build release APK


為了在Google商店裡上架自己的APP,必須先製作公開用APK(這裡稱為release apk),再將製作完成的APK上傳到Google play商店裡公開下載。本篇文章裡著重於如何製作release APK。


整體過程

  • 添加應用程式的圖標。
  • 應用程式的簽名設定。
  • 製作公開app
  • release app的版本管理

添加應用程式的圖標,本文先省略,別篇文章中再做介紹。

應用程式的簽名設定的部分可以參見官方文檔


製作公開app

製作的部分也是參考官方文檔來實施,擷取重點部分做說明。

官方文檔中提到,公開app有兩種格式可以製作,擇一即可。 一種是appbundle、另一種是apk。 Google play推薦使用appbundle格式,較為明顯的好處是,對用戶來說appbundle的下載檔案小於apk。

但是,文檔裡也提到appbundle格式的檔案對於Android 6.0的裝置似乎存在著問題。

Warning: Recently, the Flutter team has received several reports from developers indicating they are experiencing app crashes on certain devices on Android 6.0 when building an app bundle. While the Android team is working to identify a feasible solution, you might try splitting the APK as a temporary workaround. For more information, see Issue 36822.


製作appbundle

首先打開Terminal(使用Android Studio的話,可以直接View->Tool Windows->Terminal開啟),然後移動至應用程式專案所在的檔案夾。 cd <app dir>

然後執行build命令。 flutter build appbundle

命令執行成功後,release bundle會被製作在 <app dir>/build/app/outputs/bundle/release/app.aab


製作APK

跟製作appbundle一樣,打開Terminal移動應用程式專案所在的檔案夾。 cd <app dir>

然後執行build命令。 --split-per-abi 根據ABI (Application Binary Interface)的不同製作相對應的APK。

flutter build apk --split-per-abi

執行成功後,可以在下面的路徑裡發現兩個APK檔案: <app dir>/build/app/outputs/apk/release/app-armeabi-v7a-release.apk <app dir>/build/app/outputs/apk/release/app-arm64-v8a-release.apk


release app的版本管理

Flutter專案的pubspec.yaml中可以設定release app的版本。

...
version: 1.0.0+1
...

這裡version的設定可以相對應於Android的版本設定。

versionName: 1.0.0 versionCode: 1

由此可知,pubspec.yaml的設定跟Android設定的對應關係。 version: [versionName]+[versionCode]


參考

https://flutter.dev/docs/deployment/android