Android中签名的生成和使用

生成签名

使用 keytool 工具生成密钥库。密钥库是一个包含密钥对的安全文件,其中包括您的应用签名密钥。

1
keytool -genkey -alias xinghuo -keyalg RSA -validity 20000 -keystore xinghuo.keystore

其中

  • -alias android.keystore 别名为alias android.keystore
  • -keyalg RSA 加密类型RSA
  • -validity 20000 有效期天数20000
  • -keystore android.keystore 生成文件路径和名字android.keystore

这将生成一个名为 xinghuo.keystore 的密钥库文件,并使用 RSA 算法生成一个密钥对。

注意

keytool在JDK的bin下面,找不到记得添加环境变量。

获取签名信息

获取签名的有效期

1
keytool -list -v -keystore xinghuo.keystore -alias xinghuo -storepass xhkjedu

获取签名的SHA1值

终端中输入以下命令

1
keytool -list -v -keystore xinghuo.keystore -alias xinghuo -storepass xhkjedu -keypass xhkjedu

项目中使用

假如我i们的签名文件是xinghuo.keystore

把它放到app目录下的src同级目录中

build.gradle.kts中添加配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
android {
signingConfigs {
create("keystore") {
storeFile = file("xinghuo.keystore")
keyAlias = "xinghuo"
keyPassword = "xhkjedu"
storePassword = "xhkjedu"
}
}

buildTypes {
val signConfig=signingConfigs.getByName("keystore")
getByName("release") {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
signingConfig=signConfig
}
getByName("debug") {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
signingConfig=signConfig
}
}
}

打包

image-20240412191657720