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