准备工作
keytool:该工具位于jdk安装路径的bin目录下;
jarsigner:该工具位于jdk安装路径的bin目录下;
zipalign:该工具位于Android-sdk-windows/tools/目录下;
接下来进入正题:
1.我们需要生成未经签名的apk
Android app 的打包分为 debug 和 release 两种,后者是用来发布到应用商店的版本。在开发ionic项目时,使用默认命令(ionic cordova build android)打包出来的是debug apk文件。要打包 release 版本的apk文件,只需要在后面加一个 --release 参数即可(在最下方我会把打包命令贴出)打包出来的文件名称:“android-release-unsigned.apk”(这个apk文件就是 没有使用默认签名的 文件)
2.签名 2.1
使用keytool 生成数字证书
keytool -genkey -v -keystore myApp.keystore -alias myApp.keystore -keyalg RSA -validity 36500
keytool是工具名称-genkey意味着执行的是生成数字证书操作
-v表示将生成证书的详细信息打印出来,显示在dos窗口中
-keystore myApp.keystore表示生成的数字证书的文件名为“myApp.keystore”(myApp可以取自己的名字)
-alias myApp.keystore表示证书的别名为“myApp.keystore”,可以不和上面的文件名一样
-keyalg RSA表示生成密钥文件所采用的算法为RSA
-validity 36500 表示该数字证书的有效期为36500天,意味着36500天之后该证书将失效
2.2 执行该命令过程会要求输入密钥口令以及其他信息,看着填就行
2.3 使用jarsigner为app签名
jarsigner -verbose -keystore myApp.keystore -signedjar /Users/oukokusakai/APK/myApp.apk /Users/oukokusakai/APK/android-release-unsigned.apk myApp.keystore
-verbose 表示将签名过程中的详细信息打印出来,显示在控制台窗口中
-keystore myApp.keystore 表示签名所使用的数字证书所在位置
-signedjar (后面的路径是你要签名apk的路径)表示给Apk工程目录下的android-armv7-release-unsigned.apk文件签名,签名后的文件为该路径下的myApp.apk
myApp.keystore 表示证书的别名,对应于生成数字证书时-alias参数后面的名称
2.4 到此,其实已经生成了一个可以发布到应用市场的apk了,如果想要更好,那么建议再使用ADT的zipalign对apk进行压缩一下。
转载:https://blog.csdn.net/xqq580231/article/details/78930497
有不懂的欢迎留言问~