天天看點

android studio 簽名 打包

方法一:

在android中。可以非常快速的生成簽名檔案.jsk檔案。步驟如下:

第一步:

android studio 簽名 打包

第二步:

android studio 簽名 打包

如果你已經有了簽名檔案.jsk那麼就選擇③導入檔案,這時①中就是檔案路徑,④是keystore的密碼,⑤是别名,⑥是檔案的密碼。

我們這裡預設沒有.jsk檔案。是以點選②建立一個.jsk檔案

第三步:

android studio 簽名 打包

第四步:

這裡我填寫的全是模拟的資料:

android studio 簽名 打包
android studio 簽名 打包
android studio 簽名 打包

路徑可選擇:我這選擇的是:F:\daima\TestJsk\app

點選finish:

android studio 簽名 打包

可以看到生成一個:app-release.apk

同時生成一個:testjsk.jks

android studio 簽名 打包

ok:完成

方法二:

第一步:

這種方法是在假設你已經有了jsk檔案的前提下面(這裡我們用在第一中方法中生成的testjsk.jks)

android studio 簽名 打包

可以看到在app的build.gradle中生成了:

signingConfigs {
        config {
            keyAlias 'test'
            keyPassword '123456'
            storeFile file('F:/daima/TestJsk/testjsk.jks')
            storePassword '123456'
        }
    }
           

第二步:

android studio 簽名 打包

這裡的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檔案

android studio 簽名 打包

如何檢視簽名後的jsk中的資訊

找到java的jre的bin下的keytool.exe

在cmd中輸入下面指令:keytool -list -v -keystore "jsk路徑" -storepass 密碼

android studio 簽名 打包

YIS$YAVWBW5MK[59(]G(]24.png

需要注意的是簽名密碼千萬不要暴露:

Android Studio 打包時 Signature Version V1 V2

前幾天更新了一下Android Studio ,今天在打正式包的時候發現多了個簽名版本選擇:

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

  1. signingConfigs {  
  2.     debug {  
  3.         v1SigningEnabled true  
  4.         v2SigningEnabled true  
  5.     }  
  6.     release {  
  7.         v1SigningEnabled true  
  8.         v2SigningEnabled true  
  9.     }  
  10. }  

繼續閱讀