Android生成签名文件对应用签名 & Android签名作用
一、签名作用
1、 Android签名机制其实是对APK包完整性和发布机构唯一性的一种校验机制。
2、Android签名机制不能阻止APK包被修改,但修改后的再签名无法与原先的签名保持一致。
(除非拥有发布者的私钥)。
3、APK包加密的公钥就打包在APK包内,且不同的私钥对应不同的公钥。换句话言之,不同的私钥签名的APK公钥也必不相同。所以我们可以根据公钥的对比,来判断私钥是否一致。
4、确定发布者身份,可以根据公钥来对APP进行更新,换句话说:可以防止APP被其他包名相同应用覆盖
二、对应用进行签名
1、
点击 Generate Signed Bundle / APK
2、
点击 Create new
3、
key store path : 要生成 .jks 文件的路径
Alias : 别名
Validity:有效年限
下面一些: 姓名、组织机构、组织单位、城市、省、国家
4、
点击 ok 后会弹出用这样一个弹窗 直接点击 ok ,然后在下一个页面点击 next 。进入步骤 5
5、
至此,.jks 文件已经生成
接下来就是进行打包时的签名配置,在 app --> build.gradle 中进行配置
signingConfigs {//设置签名文件
debug {
storeFile file('../key/baiduMap.jks')
storePassword '123456'
keyAlias = 'key0'
keyPassword '123456'
}
release {
storeFile file('../key/baiduMap.jks')
storePassword '123456'
keyAlias = 'key0'
keyPassword '123456'
v1SigningEnabled true
v2SigningEnabled true
}
}
buildTypes {//设置build类型
release {
//是否优化zip
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources true
//启用代码混淆
minifyEnabled true
//混淆规则配置文件
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
//指明签名文件位置
signingConfig signingConfigs.release
buildConfigField "Boolean", "DEBUG_MODE", 'false'
}
debug {
shrinkResources false
minifyEnabled false
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
buildConfigField "Boolean", "DEBUG_MODE", 'true'
}
}
在发布过程中有些商店必须要使用 .keystore文件来进行签名,这时可以直接把 .jks 文件后缀直接更改为 .keystore 即可