方法一:
在android中。可以非常快速的生成簽名檔案.jsk檔案。步驟如下:
第一步:
第二步:
如果你已經有了簽名檔案.jsk那麼就選擇③導入檔案,這時①中就是檔案路徑,④是keystore的密碼,⑤是别名,⑥是檔案的密碼。
我們這裡預設沒有.jsk檔案。是以點選②建立一個.jsk檔案
第三步:
第四步:
這裡我填寫的全是模拟的資料:
路徑可選擇:我這選擇的是:F:\daima\TestJsk\app
點選finish:
可以看到生成一個:app-release.apk
同時生成一個:testjsk.jks
ok:完成
方法二:
第一步:
這種方法是在假設你已經有了jsk檔案的前提下面(這裡我們用在第一中方法中生成的testjsk.jks)
可以看到在app的build.gradle中生成了:
signingConfigs {
config {
keyAlias 'test'
keyPassword '123456'
storeFile file('F:/daima/TestJsk/testjsk.jks')
storePassword '123456'
}
}
第二步:
這裡的Singing Config選擇在 前一步的config即可;
可以看到在app的build.gradle中生成了:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.config
}
debug {
signingConfig signingConfigs.config
}
}
在android studio中的terminal 中使用gradlew assembleRelease指令,可以在outputs的apk中生成簽名後的apk檔案
如何檢視簽名後的jsk中的資訊
找到java的jre的bin下的keytool.exe
在cmd中輸入下面指令:keytool -list -v -keystore "jsk路徑" -storepass 密碼
YIS$YAVWBW5MK[59(]G(]24.png
需要注意的是簽名密碼千萬不要暴露:
Android Studio 打包時 Signature Version V1 V2
前幾天更新了一下Android Studio ,今天在打正式包的時候發現多了個簽名版本選擇:
從圖中可以看到多了簽名版本的選擇,因為剛開始預設勾選的v2(Full APK Signature),沒多想一路下一步下去,
結果在測試機上(5.0.1)一直都安裝失敗,想着和那個選擇簽名版本有關系,那就查查吧。
問題描述(v1和v2)
Android 7.0中引入了APK Signature Scheme v2,v1呢是jar Signature來自JDK
V1:應該是通過ZIP條目進行驗證,這樣APK 簽署後可進行許多修改 - 可以移動甚至重新壓縮檔案。
V2:驗證壓縮檔案的所有位元組,而不是單個 ZIP 條目,是以,在簽名後無法再更改(包括 zipalign)。正因如此,現在在編譯過程中,我們将壓縮、調整和簽署合并成一步完成。好處顯而易見,更安全而且新的簽名可縮短在裝置上進行驗證的時間(不需要費時地解壓縮然後驗證),進而加快應用安裝速度。
解決方案一
v1和v2的簽名使用
隻勾選v1簽名并不會影響什麼,但是在7.0上不會使用更安全的驗證方式
隻勾選V2簽名7.0以下會直接安裝完顯示未安裝,7.0以上則使用了V2的方式驗證
同時勾選V1和V2則所有機型都沒問題
解決方案二
在app的build.gradle的android标簽下加入如下
[java] view plain copy
- signingConfigs {
- debug {
- v1SigningEnabled true
- v2SigningEnabled true
- }
- release {
- v1SigningEnabled true
- v2SigningEnabled true
- }
- }