ios
簡單命令
flutter clean
rm -rf ios/Flutter/App.framework
先在項目目錄下運行
flutter build ios --release
再到xcode下進行打包
如果不進行build命令,則在xcode下會報錯:
flutter Could not find an option named "track-widget-creation".
具體打包方法:
https://github.com/bingoogolapple/bingoogolapple.github.io/issues/46
作者:Zszen
鏈接:https://www.jianshu.com/p/93a261ebdf67
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
Flutter-Build An Android Release Apk
上一篇已經說過了,使用Android Studio 中Build>Generate Signed Apk總是報錯,無法打包release版的apk!
幸好,flutter提供了其他方式
下面是完整的打包過程,官方參考;如果要打包iOS參考
檢查AndroidManifest.xml中的application、uses-permission、applicationId、versionCode、versionName、minSdkVersion、targetSdkVersion、替換圖標等等就不贅述了!開發過Android的都知道
-
准備
要打release 包,首先你得有個簽名文件,沒有的話cmd 執行keytool:
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
-genkey 在用戶主目錄中創建一個key.jks文件
-v 顯示密鑰庫中的證書詳細信息
-alias 產生別名
-keyalg 指定密鑰的算法
-keystore 指定密鑰庫的名稱(產生的各類信息將不在.jks文件中 -validity 指定創建的證書有效期多少天 -keysize 指定密鑰長度
然后根據提示輸入密鑰庫的口令、姓氏、省份、組織等等信息
-
- 也可以通過
AndroidStudio創建簽名文件
1.Build>Generate Signed Apk
2.點擊Create New...
3.在下面的窗口中填寫信息
create key.JPG
- 也可以通過
-
配置
key.properties
在<app dir>/android/目錄下,創建一個key.properties文件PS:<app dir>代表工程的根目錄,下同
需要填寫的內容
storePassword=<password from previous step> keyPassword=<password from previous step> keyAlias=key storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>
storePassword keystore 密碼
keyPassword key密碼
keyAlias key別名
storeFile .jks文件路徑
-
配置Gradle
gradle文件路徑<app dir>/android/app/build.gradle
-
- 找到
android {,在這一行上面配置key.properties信息
- 找到
def keystorePropertiesFile = rootProject.file("key.properties") def keystoreProperties = new Properties() keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
-
- 繼續向下,找到
buildTypes {,在上面配置signingConfigs:
- 繼續向下,找到
signingConfigs {
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes更改為:
buildTypes {
release {
signingConfig signingConfigs.release
}
}
-
開始打包了
cd到<app dir>,執行flutter指令flutter build apk //默認打包release包或者flutter build --release
打包的過程很快就完成了,會提示release包的路徑,adb命令即可安裝
當然也可以直接在<app dir>先執行flutter install安裝到電腦連接的手機上!
總體過程並不是很難,主要就是生成key文件,配置Gradle;我個人還是傾向於希望Android Studio修復Bug,可以通過點擊Build>Generate Signed Apk來生成!
Flutter Android 簽名打包
查看APP包的簽名
為了檢查flutter打包的簽名信息,
-
找到應用的apk文件,修改后綴改成zip包;
-
在壓縮文件中找到META-INF目錄下找到 CERT.RSA文件;
-
shift+鼠標右鍵打開cmd命令行;
-
輸入命令:keytool -printcert -file CERT.RSA
Flutter 配置Android 簽名
創建 keystore
如果您有現有keystore,請跳至下一步
Terminal運行以下命令來創建一個:
keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key
-validity 10000代表有效期天數
如果上述命令報錯“系統找不到指定的路徑”,請指明路徑
例如:
keytool -genkey -v -keystore D:/mykey.jks -keyalg RSA -keysize 2048 -validity 1
0000
D:/mykey.jks為生成的keystore路徑文件
執行該命令,如圖:

引用應用程序中的keystore
在Flutter中的andoid項目中,
創建一個路徑為android下的key.properties的文件,其中包含對密鑰庫的引用:
#密鑰庫口令
storePassword=<password from previous step>
#密鑰口令
keyPassword=<password from previous step>
#別名
keyAlias=key
#keystore的路徑
storeFile=<location of the key store file, e.g. /Users/<user name>/key.jks>
note: <>符號去掉,keyAlias直接寫你設置的別名,比如上面創建的keystore的alias 為key
gradle中配置簽名
在/app/build.gradle中
def keystorePropertiesFile = rootProject.file("key.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
....
signingConfigs{
release {
keyAlias keystoreProperties['keyAlias']
keyPassword keystoreProperties['keyPassword']
storeFile file(keystoreProperties['storeFile'])
storePassword keystoreProperties['storePassword']
}
}
buildTypes {
release {
// Signing with the debug keys for now, so `flutter run --release`works.
// signingConfig signingConfigs.debug
signingConfig signingConfigs.release
//混淆
minifyEnabled true
useProguard true
//Zipalign優化
zipAlignEnabled true
// 移除無用的resource文件
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
//設置只支持armeabi-v7a 平台,與簽名無關,可以自己配置
abiFilters "armeabi-v7a"
}
}
}
}
構建一個發布版apk(打包)
上述步驟完成以后
Terminal中運行:
flutter build apk
(flutter build 默認會包含 --release選項)
打包好的發布APK位於<app dir>/build/app/outputs/apk/app-release.apk
在設備上安裝發行版APK
按照以下步驟在已連接的Android設備上安裝上一步中構建的APK
使用命令行:
-
用USB您的Android設備連接到您的電腦
-
cd<app dir>. -
運行
flutter install.詳細參考:發布Android版APP
參考:
包](https://www.jianshu.com/p/888ac3b7df01)

