Android签名V1 V2的实现流程
流程图
flowchart TD
A[生成密钥库] --> B[生成密钥]
B --> C[将密钥库与项目关联]
C --> D[生成APK文件]
D --> E[签名APK]
详细步骤
下面是实现Android签名V1 V2的详细步骤:
步骤 | 操作 | 代码 |
---|---|---|
1 | 生成密钥库 | keytool -genkey -v -keystore my-key.keystore -alias my-alias -keyalg RSA -keysize 2048 -validity 10000 |
2 | 生成密钥 | keytool -genkeypair -v -keystore my-key.keystore -alias my-alias -keyalg RSA -keysize 2048 -validity 10000 |
3 | 将密钥库与项目关联 | 在项目的 build.gradle 文件中添加如下代码:<br>android {<br> ...<br> signingConfigs {<br> release {<br> storeFile file("my-key.keystore")<br> storePassword "密钥库密码"<br> keyAlias "密钥别名"<br> keyPassword "密钥密码"<br> }<br> }<br>}<br>在需要签名的构建类型中添加 signingConfig "release":<br>android {<br> ...<br> buildTypes {<br> release {<br> ...<br> signingConfig signingConfigs.release<br> }<br> }<br>} |
4 | 生成APK文件 | 在项目根目录下执行以下命令:<br>./gradlew assembleRelease |
5 | 签名APK | 在项目根目录的 app/build/outputs/apk/release 目录中找到生成的 APK 文件,使用如下命令进行签名:<br>jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-key.keystore app-release-unsigned.apk my-alias |
代码解释
生成密钥库
keytool -genkey -v -keystore my-key.keystore -alias my-alias -keyalg RSA -keysize 2048 -validity 10000
-genkey
:生成密钥库-v
:输出详细信息-keystore my-key.keystore
:指定生成的密钥库文件名为 my-key.keystore-alias my-alias
:指定别名为 my-alias-keyalg RSA
:使用 RSA 算法-keysize 2048
:密钥长度为 2048-validity 10000
:有效期为 10000 天
生成密钥
keytool -genkeypair -v -keystore my-key.keystore -alias my-alias -keyalg RSA -keysize 2048 -validity 10000
与生成密钥库相似,但使用了 -genkeypair
命令来生成密钥对。
将密钥库与项目关联
android {
...
signingConfigs {
release {
storeFile file("my-key.keystore")
storePassword "密钥库密码"
keyAlias "密钥别名"
keyPassword "密钥密码"
}
}
}
android {
...
buildTypes {
release {
...
signingConfig signingConfigs.release
}
}
}
在项目的 build.gradle 文件中,我们使用 signingConfigs 块来定义签名配置。其中,release 是我们自定义的名称,可以根据需要修改。
在 signingConfigs.release 中,我们指定了密钥库文件的位置 storeFile file("my-key.keystore")
,密钥库密码 storePassword
,密钥别名 keyAlias
,以及密钥密码 keyPassword
。
然后,在需要签名的构建类型(例如 release)中,我们把 signingConfig 设置为 signingConfigs.release。