Flutter 打包發佈

創建一個密鑰庫

打開Flutter的開發文檔,進入配置 key store 的頁面,請注意以下紅線,是很容易忽略的地方

 

 

 

 

 

 

 

找到Java源文件

$ /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/java

 

 

 

錯誤信息

 $ /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/java keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

錯誤: 找不到或無法加載主類 keytool

 

 

 修改後,

$ /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore /upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload

又報錯了:keytool 錯誤: java.io.FileNotFoundException: /upload-keystore.jks (Read-only file system)

 

 

 

將文件生成個到其他目錄,例如 Mac路徑:~/platform,  windows 路徑:D:/platform

$ /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/bin/keytool -genkey -v -keystore /upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -keystore ~/platform/android/keytool/android.key

生成成功:

 

 

 

從應用程序引用密鑰庫

創建一個名爲的文件[project]/android/key.properties ,其中包含對密鑰庫的引用:

storePassword=<password from previous step> //密鑰庫密碼
keyPassword=<password from previous step> //密鑰密碼
keyAlias=upload // 密鑰標示名
storeFile=<location of the key store file, such as /Users/<user name>/upload-keystore.jks> //密鑰庫存放的路徑

  

請注意紅色部分,千萬不要忽略,因爲我已經被坑的很慘很慘了,

以下是我代碼的部分,你可以按照你的填寫

storePassword=1234567890 // 查看下圖
keyPassword=1234567890 //查看下圖
keyAlias=mykey // 查看下圖
storeFile=/Users/<yourname>/android.key

  

 

 

 

配置Gradle登錄

通過編輯[project]/android/app/build.gradle文件,將gradle配置爲在發佈模式下構建應用程序時使用上載密鑰

 

1. 在該android塊之前,從屬性文件中添加密鑰庫信息: 

   def keystoreProperties = new Properties()
   def keystorePropertiesFile = rootProject.file('key.properties')
   if (keystorePropertiesFile.exists()) {
       keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
   }

   android {
         ...
   }

key.properties文件加載keystoreProperties對象中。

2. 更換buildTypes塊:

   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 keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
           storePassword keystoreProperties['storePassword']
       }
   }
   buildTypes {
       release {
           signingConfig signingConfigs.release
       }
   }

您的應用的發佈版本現在將自動簽名。

 注意: 您可能需要flutter clean在更改gradle文件後運行。這樣可以防止緩存的版本影響簽名過程。

 

生成APK

直接在終端中輸入:

flutter build apk

這時候就打包成功了  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章