1. 程式人生 > >flutter 打包apk

flutter 打包apk

前言

完成專案時,我們需要將專案打包成一個apk,方便測試以及釋出版本.
並且釋出版本還需要簽名,今天把這一系列操作記錄下來.

App簽名

建立 keystore

如果您有現有keystore,請跳至下一步。如果沒有,請通過在執行以下命令來建立一個:

keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key

注意:

  • 保持檔案私密; 不要將它加入到公共原始碼控制中。
  • 此操作生成的簽名是*.jks格式

引用應用程式中的keystore

建立一個名為/android/key.properties的檔案,其中包含對金鑰庫的引用:

storePassword=<建立keystore時的storePassword>
keyPassword=<建立keystore時的keyPassword>
keyAlias=key
storeFile=<金鑰庫檔案的位置 , 例如: /Users/<user name>/key.jks>

檔案內容和層級如圖所示:
在這裡插入圖片描述
注意:

  • 保持檔案私密; 不要將它加入公共原始碼控制中.
  • storeFile 這裡要使用絕對路徑

在gradle中配置簽名

通過編輯/android/app/build.gradle檔案為您的應用配置簽名

替換:

android {

為:

def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))

android {

替換:

buildTypes {
    release {
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.debug
    }
}

為:

signingConfigs {
    release {
        keyAlias keystoreProperties['keyAlias']
        keyPassword keystoreProperties['keyPassword']
        storeFile file(keystoreProperties['storeFile'])
        storePassword keystoreProperties['storePassword']
    }
}
buildTypes {
    release {
        signingConfig signingConfigs.release
    }
}

如圖所示:
在這裡插入圖片描述

在這裡插入圖片描述

現在,您的應用的release版本將自動進行簽名。

構建一個釋出版(release)APK

使用命令列:

  • cd <app dir> (<app dir> 為您的工程目錄).
  • 執行flutter build apk (flutter build 預設會包含 --release選項).

可直接使用編輯器中的Terminal執行 flutter build apk 命令.

打包好的釋出APK位於/build/app/outputs/apk/app-release.apk。

在裝置上安裝發行版APK

按照以下步驟在已連線的Android裝置上安裝上一步中構建的APK

使用命令列:

  • 用USB您的Android裝置連線到您的電腦
  • cd <app dir> .
  • 執行 flutter install .

將APK釋出到Google Play商店

將應用的release版釋出到Google Play商店的詳細說明,請參閱 Google Play publishing documentation. (國內不存在的,但你可以釋出到國內的各種應用商店)