Flutter 39: 圖解 Android 打包 APK 檔案
小菜是搞 Android 的,曾經嘗試過打包 APK 檔案失敗,由於種種原因暫停研究,今天重新學習一下如何打包 APK 。官網講解的清楚明瞭,小菜在此基礎上整理一下打包過程中遇到的問題。
打包步驟:
- 檢查 Android 環境,一般新建的應用若不做特殊調整基本沒有問題;若需要網路請求,需要在 AndroidManifest 檔案中新增網路許可權;若需要更改應用名稱和圖示可以參考 Flutter 05: 圖解修改應用名稱及圖示 ;
<uses-permission android:name="android.permission.INTERNET"/>

- 建立簽名檔案 key.jks ,與直接 Android 打包時 key 檔案生成略有不同;需要在【終端】中執行如下命令;並按照指示填寫密碼和使用者基本資訊; 注意 :密碼需要牢記,且 key 檔案可以通用;
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

- 在 Android 環境中配置 key.jks 檔案資訊;
3.1 建立一個 key.properties 檔案,名稱並非絕對,並在檔案中填寫如下 key 基本資訊;
storePassword=123456 keyPassword=123456 keyAlias=key storeFile=/Users/.../key.jks

3.2 在 gradle 檔案中新增如下訊息,名稱要對應;
def keystorePropertiesFile = rootProject.file("key.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } }

- 【終端】進入需要打包應用 pubspec.lock 目錄下,執行如下命令,等待即可,最終生成 APK 檔案目錄以【終端】顯示為準;
flutter build apk


- 將打包好的應用執行在終端裝置上即可;

問題一:key.jks 檔案存在卻忘記密碼;

keytool -genkey -v -keystore ~/key02.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
Tips: alias 和簽名檔案要與 key.properties 中對應。

問題二:command not found: flutter

小菜以前釋出外掛時配置了一個牆外環境和牆內環境兩套,所以有些混亂,這個問題主要是 Flutter 環境未找到,需要找到個人配置的環境即可,若有問題可參考小菜很久以前分別為 Windows 和 Mac 環境下配置環境的小部落格。
Flutter的打包並非難題,主要是細節方面要多注意,尤其是簽名檔案要牢記;如果有錯誤的地方煩請多多指導;以下是小菜公眾號,歡迎閒來吐槽~

公眾號