ionic进行开发完项目后,需要进行打包。如果需要上架的话,在Android端,打完包后还需要签名然后上传至各应用商店。
首先是关于apk签名,Android程序的安装是以包名(package name)进行区分的,就是同样的包名会被认作是同一个程序。这样就可以进行升级、替换。但是包名是一个可以被查看的字符串,这样就可能被伪造,然后其他人就可以自己创建一个应用去替代你的应用,结果可想而知。而签名就是为了防止这样的情况发生,当你的程序被签名后安装,只有同样包名与签名的程序才能被替换安装。而签名是不可能简单被伪造的,从而保证了程序的安全性。
一、打包apk
ionic bulid android //打包测试包
ionic build --release android //打包正式包
ionic里面打包的命令特别简单,只需要一条命令,上面一条命令是用来打包测试包的,里面已经包含了签名,可以直接在手机上安装,但是不能用来上应用市场,第二条命令是打包成一个没有签名的apk,不能直接安装,需要进行第二个步骤。
二、签名apk
1.生成签名(.keystore)文件
keytool -genkey -v -keystore demo.keystore -alias demo.keystore -keyalg RSA -validity 20000
keytool是工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来;
-keystore demo.keystore 证书的文件名;
-alias demo.keystore 表示证书的别名
-keyalg RSA 生成密钥文件所采用的算法;
-validity 20000 该数字证书的有效期;
输入后会让你回答关于你公司和地区的一些问题,这些回答一定要记住,以后更新apk的时候需要用到,最好截屏记录。
2.签名apk
jarsigner -verbose -keystore /yourpath/demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
jarsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来;
-keystore /yourpath/demo.keystore 之前生成的证书
-signedjar demo_signed.apk 签名后的apk
demo.apk 需要签名的apk
demo.keystore 证书的别名