对Android应用签名
Posted fanqisoft
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对Android应用签名相关的知识,希望对你有一定的参考价值。
android使用包名作为唯一标识,当在同一台手机安装两个包名相同的应用,后安装的应用就会覆盖前面的应用(签名相同的情况下)。
签名有两个主要作用:
1.确定发布者身份。由于应用开发者可以通过使用相同的包名来替换已经安装的程序,因此使用签名可以避免发生这种情况。
2.确保应用的完整性。签名会对应用包中的每个文件进行处理,从而确保程序包中的文件不会被替换。
**在开发、调试阶段,AS会自动生成调试证书进行签名。当应用发布时,必须使用合适的数字证书对应用进行签名。
⒈使用AS对Android应用进行签名
1.单击AS主菜单中的Build => “Generate Signed Bundle / APK”
2.此时系统会提示你生成"Android App Bundel",还是生成“APK”,其中Android App Bundel时Google新推出的动态发布方案,这种发布方式的App更小、安装更快,但目前最大的问题时仅支持Google Play(Google应用商店),国内由于“谷歌服务不给力”的原因经常404,因此我们选择“APK”。
3.选择已有的还是新建,我们选择新建,“Create new ”
4.填写完成后选择“OK”后在新窗口中选择刚刚创建的数字证书。
5.单击“Next”按钮,在新的对话框中选择APK安装包的存储路径及签名版本,V1版本只对JAR包签名,V2版本对整个APK签名,建议选择V2版本。
6.选择“Finish”后签名完成。
⒉使用Android命令对APK签名
如果不想借助AS对Android应用进行签名或有时候需要对一个“未签名”的APK进行签名,则可通过"命令"对Android应用进行手动签名。
1.创建Key store库,使用JDK bin目录下的keytool.exe工具来生成数字证书。
keytool -genkeypair -alias Coreqi -keyalg RSA -validity 400 -keystore fanqi.jks
选项说明:
-genkeypair:指定生成数字证书
-alias:指定生成数字证书的别名
-keyalg:指定生成数字证书的算法。使用RSA算法
-validity:指定生成数字证书的有效期
-keystore:指定生成数字证书的存储路径
之后,输入证书的详细信息即可。
2.使用Android的apksigner.bat命令对未签名的APK安装包进行签名,apksigner.bat位于Android SDK的build-tools目录下。apksigner命令就是V2版本的签名。
****
可以通过AS的Build =》 Build Bundle(s) / APK(s) =》 Build APK(s)来生成未签名的APK
在命令行窗口输入以下命令:
以上是关于对Android应用签名的主要内容,如果未能解决你的问题,请参考以下文章