对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应用签名的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Gradle实验插件对64位Android APK进行代码签名?

对Android应用签名

如何对Android的APP进行签名

如何导出 Android 签名密钥

在android中显示隐藏片段

用Android Studio对应用签名打包