官方详细:https://ionicframework.com/docs/intro/deploying/
ps:打包前做好config.xml配置如包名
一、添加android平台
添加之后,在项目目录的platforms下会生成一个android文件夹。
ionic cordova platform add android
二、cordova编译应用
使用build命令编译应用的发布版本,这个过程需要你的android sdk和环境变量、java jdk和环境变量、android的gradle配置没有错误。
ionic cordova build android --prod --release
编译成功之后,在项目路径platforms/android/build/outputs/apk/android-release-unsigned.apk未签名文件,这个时候的apk还不能被安装到手机上。
三、生成签名文件
keytool -genkey -v -keystore jhy-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias alias_jhy
输入的密码要记住,其他姓名地区等信息随便填吧,最好还是记住,成功之后在主目录下就生成了jhy-release-key.keystore
文件,命令中jhy-release-key.keystore是生成文件的名字,alias_jhy
是别名,随便起但是要记住,一会签名要用到,其他信息如加密、有效日期等就不说了,无需改动。
生成后会提示:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore jhy-release-key.jks -destkeystore jhy-release-key.jks -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。
执行命令:
keytool -importkeystore -srckeystore jhy-release-key.jks -destkeystore jhy-release-key.jks -deststoretype pkcs12
执行结果:Warning: 已将 "jhy-release-key.jks" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "jhy-release-key.jks.old" 进行了备份。
四、签名应用文件
把在第二步生成的android-release-unsigned.apk拷贝到与生成的jhy-release-key.jks同一目录下,也就是项目的主目录下,执行命令:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore jhy-release-key.jks android-release-unsigned.apk alias_jhy
输入签名文件的密码,成功之后主目录下的android-release-unsigned.apk就被签名成功了,会比原来未被签名的apk文件大一点,能够安装到手机或android虚拟机上了。
签名完成后会提示没有时间戳,忽略即可
检测是否签名成功:
apksigner verify android-release-unsigned.apk
也可用以下命令签名并生成新apk文件
jarsigner -verbose -keystore jhy-release-key.jks -signedjar notepad.apk android-release-unsigned.apk alias_jhy