2015-12-06 71 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