2015-12-06 67 views
13

我正在使用離子框架爲Android平臺生成apk。從離子生成非調試apk

運行ionic build android後,會生成一個android-debug.apk。我怎樣才能生成一個更小,更快的非調試apk?

+3

使用--release標誌。科爾多瓦建立 - 釋放機器人。 http://ionicframework.com/docs/guide/publishing.html –

回答

10

這是我的Android版本的shell腳本

IFY

clear 

gulp 

ionic build --release android 

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore "path/to/your/keystore" "platforms/android/build/outputs/apk/android-release-unsigned.apk" "keystore alias" -storepass xxx -keypass xxx 

/path/to/android-sdk/build-tools/23.0.2/zipalign -v 4 "platforms/android/build/outputs/apk/android-release-unsigned.apk" "android-release.apk" 

rm "platforms/android/build/outputs/apk/android-release-unsigned.apk" 
2

基本上,如Jan評論的那樣,您應該使用命令:cordova build android --release。你可以看看Ionic官方指南關於how to publish your app

2

由於離子CLI是基於科爾多瓦CLI,您可以使用,直接:

ionic build android --release

此外,如果你擔心的優化,你可能會發現有趣的usign 的zipalign,從而排列數據以4字節爲邊界,從而導致應用程序減少使用的RAM數量。一旦你建立與前面的命令發佈APK,可以運行:

zipalign -v 4 yourReleaseApp.apk zipalignedReleaseApp.apk

6

科爾多瓦6.2.0你可以使用follwoing命令發佈一個apk。由於離子是圍繞科爾多瓦的包裝,這應該起作用。

cd cordova/ #change to root cordova or ionic folder 
platforms/android/cordova/clean #clean if you want 
cordova build android --release -- --keystore="/path/to/keystore" --storePassword=password --alias=alias_name #password will be prompted if you have any 
1

要釋放構建Android,我們可以使用下面的科爾多瓦CLI命令

離子科爾多瓦建設--release安卓

2.生成APK是無符號。需要簽名。這就是爲什麼使用JDK的keytool創建私鑰。我們可以用以下CLI命令

的keytool -genkey -v -keystore mykey.keystore -alias ALIAS_NAME -keyalg RSA -keysize 2048 -validity 10000

保持mykey.keystore文件以備將來使用一個安全的地方。 如果keytool不工作,則複製此文件的路徑並將其設置在系統環境變量中。

現在用以下命令

的jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mykey.keystore projectpath \平臺\機器人\編譯\輸出\ APK \ Android的版本簽署APK未簽名-unsigned.apk alias_name

4.最後優化apk文件。您可以使用zipalign -v 4項目路徑\ platforms \ android \ build \ outputs \ apk \ android-release-unsigned.apk項目路徑\ platforms \ android \ build \ outputs \ apk \ android-release。APK

瞭解更多詳情,您可以訪問以下網址 Build Release APK of Android Application from ionic