使用 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文件。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Menamovic/article/details/121869956