使用 Android 签名 APK

Posted yizai()

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用 Android 签名 APK相关的知识,希望对你有一定的参考价值。

1 签名的作用

1.1 确定发布者的身份

应用开发者可以通过使用相同包名来替换已经安装的程序,而使用签名可避免该情况发生。

1.2 确保应用的完整性

签名会对应用包中的每个文件进行处理,以确保文件不被替换。

2 使用 android Studio 对 Android应用 签名

2.1 选择发布方式

在菜单栏中找到Build,选择Generate Signed Bundle/APK…菜单项。

  • Android App Bundle方式发布的App更小、安装更快,但仅支持Google Play。
  • 选择APK方式,单击Next按钮。

2.2 创建数字证书

若系统中还没有数字证书,则单击Create new…按钮。

填写相关信息,单击OK按钮。

注意两处密码和确认密码要相同,否则会出错。

单击Next按钮。

2.3 保存安装包

选择安装包的存储路径,以及生成的版本,单击Finish按钮。

3 使用 Android命令 对 APK 签名

3.1 打开命令行窗口

点击Terminal,或使用快捷键Alt+F12打开命令行窗口。

3.2 生成数字证书

在命令行窗口中输入以下指令。

keytool -genkeypair -alias testkey02 -keyalg RSA -validity 365 -keystore testkey02.jks

-genkeypair:指定生成数字证书。
-alias:指定数字证书的别名。
-keyalg:指定数字证书的算法。
-validity:指定数字证书的有效期限,以天为单位。
-keystore:指定数字证书的存储路径。

以交互式方式输入相关信息。

3.3 生成未签名的APK安装包

在菜单栏中找到Build,选择Build Bundle(s) / APK(s)。

选择Build APK(s)。

完成后可在项目的app/build/outputs/apk/debug路径下找到app-debug.apk文件。

3.4 对安装包进行签名

由于需要使用到apksigner.bat命令,所以需要先将Android SDK的build-tools目录添加到PATH环境变量中。
完成后在命令行窗口中输入以下指令。

apksigner sign --ks testkey02.jks --ks-key-alias testkey02 --out Map_testkey02.jks app-debug.apk

sign:指定使用apksigner命令执行签名。
–ks:指定数字证书的存储路径。
–ks-key-alias:指定数字证书的别名。
–out:指定签名后的APK文件的文件名。
最后一个参数代表未签名的APK文件。

在这里我出现了系统找不到指定的文件的错误。

于是我把指令中 –out 之后的 Map_testkey02.jks 和 app-debug.apk 替换为了相应文件的绝对路径。
再次执行指令,完成后会在项目的app/build/outputs/apk/debug路径下生成Map_testkey02.apk和Map_testkey02.apk.idsig文件。

以上是关于使用 Android 签名 APK的主要内容,如果未能解决你的问题,请参考以下文章

最终签名的 apk 输出不适用于所有 android 设备

android如何生成签名apk文件

eclipse将android项目生成apk并且给apk签名

Android:如何仅通过 Gradle 生成签名 APK? [复制]

使用 Android 签名 APK

Android - 使用 Proguard 创建签名的 APK