本教程适合于ionic3框架打包Android apk,命令与ionic2类似,可供ionic2参考。ionic之所以能运行在多个平台中,得益于集成了Cordova框架。
-
为ionic项目添加Android平台:
ionic cordova platform add android
同样,如果需要移除Android平台:
ionic cordova platform remove android
-
编译Android apk包:
这里有两种apk包,一种是debug类型的,一种是未签名的发布包。debug类型的比较大,而且运行在手机上会比较慢,使用ionic3的命令打包成未签名的发布包,可以进行优化,app运行速度会有质的提升。
打包debug类型,默认命名为android-debug.apk:ionic cordova build android
打包未签名的发布包类型,默认命名为android-release-unsigned.apk:
ionic cordova build android --prod --release
-
-prod ionic的打包方式,可以加快app开启速度
-
-release 声明打包的是发布版
-
-
生成.keystore签名文件
keytool -genkey -alias superatom.factory -keyalg RSA -validity 40000 -keystore superatom.factory.keystore
- keytool是生成签名文件的工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来。
- -keystore superatom.factory.keystore 证书的文件名;
- -alias superatom.factory 表示证书的别名
- -keyalg RSA 生成密钥文件所采用的算法;
- -validity 40000 该数字证书的有效期;
执行了这段命令,会在当前执行命令的目录下创建一个签名文件。
-
签名apk
使用上面生成的签名文件签名apk:jarsigner -verbose -keystore /home/superatom/superatom.factory.keystore -signedjar factory_signed.apk android-release-unsigned.apk superatom.factory
- arsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来;
- -keystore /home/superatom/superatom.factory.keystore之前生成的证书的绝对路径
- -signedjar factory_signed.apk 签名后的apk 命名
- android-release-unsigned.apk需要签名的apk
- superatom.factory 证书的别名
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore /home/superatom/superatom.factory.keystore -signedjar factory_signed.apk android-release-unsigned.apk superatom.factory
- 添加-sigalg SHA1withRSA -digestalg SHA1,即使用SHA1withRSA算法加密,如果不适用默认是SHA256withRSA。使用默认的算法会导致低版本的Android无法安装,360软件管家不允许发布此类算法签名的App。
- 到此,签名apk制作完毕!
网友评论