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 即可