从 ionic 生成非调试 apk

Generate non-debug apk from ionic

我正在使用 ionic 框架为 android 平台生成 apk。

在运行ionic build android之后,生成了一个android-debug.apk。如何生成更小更快的非调试 apk?

基本上,正如 Jan 评论的那样,您应该使用命令:cordova build android --release。你可以看看 Ionic 关于 how to publish your app.

的官方指南

由于ionic CLI基于cordova CLI,您可以直接使用:

ionic build android --release

此外,如果您担心优化,您可能会发现有趣的使用 zipalign,以便在 4 字节边界上对齐数据,从而使应用程序减少数量使用的 RAM。使用前面的命令构建发布 apk 后,您可以 运行:

zipalign -v 4 yourReleaseApp.apk zipalignedReleaseApp.apk

这是我的 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"

在 cordova 6.2.0 中,您可以使用以下命令发布 apk。由于 ionic 是 cordova 的包装器,因此这应该有效。

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 的构建,我们可以使用以下 cordova cli 命令

ionic cordova build --release android

2. 构建 apk 未签名。需要签字。这就是为什么使用 JDK 的 keytool 创建私钥的原因。我们可以使用以下 cli 命令

keytool -genkey -v –keystore mykey.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

将 mykey.keystore 文件保存在安全的地方以备将来使用。 如果密钥工具不起作用,则复制此文件的路径并将其设置在系统环境变量中。

3. 现在使用以下命令对未签名的 apk 进行签名

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore mykey.keystore projectpath\platforms\android\build\outputs\apk\android-release-unsigned.apk alias_name

4.最后优化apk文件

zipalign -v 4 projectpath\platforms\android\build\outputs\apk\android-release-unsigned.apk projectpath\platforms\android\build\outputs\apk\android-release.apk

更多详情可以访问以下url Build Release APK of Android Application from ionic