(如果打包前的Android环境还没有配置好,请参考我的另一篇文章:https://blog.csdn.net/weixin_44035088/article/details/87066964)
一、生成apk文件
- 在项目文件目录运行终端输入打包命令
运行一段时间的编译和生成后,控制台会提示生成完成信息以及生成的apk文件位置,示例:ionic cordova build android --prod --release
/Users/kobe/Desktop/ionic/imooc/zhihu/platforms/android/app/build/outputs/apk/release/app-release-unsigned.apk
- 如果打包之前有修改文件,或者之前进行过打包,要先检查一下
文件夹下是否有之前添加的Android平台支持,如果有要先将其移除,执行以下命令:platforms
ionic cordova platform rm android
- 可能出现的错误 解决方案:
Ionic3--Android打包流程
命令执行成功后再重新执行打包命令即可。//全局安装increase-memory-limit sudo npm install -g increase-memory-limit //进入工程目录,执行: increase-memory-limit
二、生成用于签名的私钥
- 新建一个文件夹用于存放私钥
- 在新建的文件夹下运行终端并输入:
代码解释:keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-alias
-
:是工具名称keytool
-
:意味着执行的是生成数字证书操作-genkey
-
表示将生成证书的详细信息打印出来,显示在dos窗口中-v
-
表示生成的数字证书的文件名为“my-release-key.jks”(名字可以自定义)-keystore my-release-key.jks
-
表示证书的别名为“my-alias”(名字可以自定义)-alias my-alias
-
表示生成密钥文件所采用的算法为RSA-keyalg RSA
-
表示该数字证书的有效期为20000天,意味着20000天之后该证书将失效-validity 20000
-
- 回车之后根据提示完成信息配置,如下图:
Ionic3--Android打包流程 - ⚠️私钥的口令要记住,后面会用到。
三、对apk文件进行签名
- 将之前生成的私钥文件复制到
所在的目录下app-release-unsigned.apk
- 在目录下终端运行以下命令:
代码解释:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.jks app-release-unsigned.apk my-alias
-
:之前生成的私钥的文件名-keystore my-release-key.jks
-
:运行打包命令后生成的未签名apk文件app-release-unsigned.apk
-
:私钥的别名my-alias
-
- 回车之后根据提示输入私钥口令,随后会对apk进行签名并生成新的apk,如下图:
Ionic3--Android打包流程
四、优化apk文件并改名
- 在终端继续运行:
1、这里/Users/kobe/Library/Android/sdk/build-tools/28.0.3/zipalign -v 4 app-release-unsigned.apk zhihu.apk
路径是/Users/kobe/Library/Android/sdk/build-tools/28.0.3/zipalign
zipalign
工具所在的文件路径。
2、命令执行完成后会在文件夹下生成一个名为
的apk文件zhihu
大功告成,随后就可以将签名后的apk安装到自己的手机上进行查看了。