Mac使用Android Studio創(chuàng)建keystore

要點概述:
1.keystore有兩種格式,即keystore和jks,keystore為舊版本中使用的(eclipse),jks為AS版本專用。
2.創(chuàng)建key的兩種方式,AS方式、命令行方式
3.配置Gradle簽署APK
4.獲取sha1

官方教程
SHA1參考鏈接

一、使用Android Studio創(chuàng)建key

1.點擊Build-->Generate Signed APK

進入Generate Signed APK

2.一路Next后,進入Generate Signed APK界面,點擊Create New...

Generate Signed APK界面

3.進入New Key Store界面,點擊右上角的...

創(chuàng)建新的keystore
1.指定一個jks文件。
2.設(shè)置文件讀取的密碼。
3.設(shè)置別名,??會在項目中使用。
4.設(shè)置key的密碼,??會在項目中使用。
5.設(shè)置有效期,默認25年。
6.填寫基本信息,如姓名、公司、所在城市等,??至少填寫一項。

4.進入創(chuàng)建文件界面,注意??:這里需要生成一個jks文件。老版本的keystore格式不支持,AS使用的是jks格式;

設(shè)置keystore

5.點擊Finish之后,返回Generate Signed APK界面。

??如果想要偷懶,可以勾選上Remember passwords,下次就不用輸入密碼啦。
  備注:別名和密碼,參考上邊第三步中的3和4。
QQ20170808-155045.png

6.點擊Next 進入如下界面。

選擇編譯版本
1.默認生成,略.
2.選擇打包的版本,debug 或 release
3.打包時,是否將導入model一起打包,沒有倒入的model可以忽略。
4.對jar進行簽名
5.對APK進行簽名
  備注:若有倒入的model,3必須選擇包含或者不包含。對于4和5兩種簽名方式,可以單選,也可以全部選擇,至少選擇一項

二、使用命令行創(chuàng)建key

創(chuàng)建代碼

keytool -genkey -v -keystore debug.keystore -alias zxh  -storepass 123456 -keypass 123456 -keyalg RSA -validity 14000

備注:

-keystore:設(shè)置生成的文件名稱,包含后綴;
-alias:設(shè)置別名
-storepass:設(shè)置文件的密碼
-keypass:設(shè)置key的密碼
-keyalg:設(shè)置使用的加密算法,一般寫RSA
-validity:設(shè)置有效期,盡可能長啦

命令寫完之后,會要求填寫一下,基本信息,一步步填寫就好了,最終生成的key會存儲在項目的根目錄下。如下圖:

填寫的基本信息
生成key的位置

三、使用Gradle部署APK

1.普通的方式配置Gradle

android {
    ...
    defaultConfig { ... }
    signingConfigs {
        debug {
            storeFile file('/Users/zhangxuehui/Documents/debug.jks')//key的路徑,注意不能與release版本相同
            keyAlias 'zxh'              //別名
            keyPassword '123456'        //key密碼
            storePassword '123456'    // store的密碼,注意是否與key的密碼相同
            v1SigningEnabled true       //對JAR簽名
            v2SigningEnabled true       //對APK簽名
        }
        release {
            keyAlias 'zxh'
            keyPassword '123456'
            storePassword '123456'
            v1SigningEnabled true
            v2SigningEnabled true
            storeFile file('/Users/zhangxuehui/Documents/android.jks')
        }
    }
    buildTypes {
      release {
            buildConfigField "boolean", "LOG_DEBUG", "false"  // 不顯示Log
            zipAlignEnabled true                    //Zipalign優(yōu)化
            signingConfig signingConfigs.release    //簽名
            shrinkResources true                    //移除無用的resource文件,導入的model不可以配置
            minifyEnabled true                      //混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            signingConfig signingConfigs.debug
        }
    }
}

2.將簽名信息作為單獨的配置文件

在app的build.gradle同級目錄下創(chuàng)建signing.properties配置文件。

  • signing.properties代碼
KEYSTORE_FILE=/Users/zhangxuehui/Documents/android.jks
DEBUG_KEYSTORE_FILE =/Users/zhangxuehui/Documents/debug.jks
KEYSTORE_PASSWORD= 123456
DEBUG_KEYSTORE_PASSWORD=123456
KEY_ALIAS= zxh
DEBUG_KEY_ALIAS = zxh
KEY_PASSWORD= 123456
DEBUG_KEY_PASSWORD= 123456
  • buid.gradle中的配置
//加載簽名配置的文件
Properties props = new Properties()
props.load(new FileInputStream(file("signing.properties")))

android {
    ...
    defaultConfig { ... }
    signingConfigs {

        debug {
            storeFile file(props['DEBUG_KEYSTORE_FILE'])  //key的路徑,注意不能與release版本相同
            keyAlias props['DEBUG_KEY_ALIAS']             //別名
            keyPassword props['DEBUG_KEY_PASSWORD']       //key密碼
            storePassword props['DEBUG_KEYSTORE_PASSWORD']    // store的密碼,注意是否與key的密碼相同
            v1SigningEnabled true       //對JAR簽名
            v2SigningEnabled true       //對APK簽名
        }

        release {
            keyAlias  props['KEY_ALIAS']
            keyPassword props['KEY_PASSWORD']
            storePassword props['KEYSTORE_PASSWORD']
            v1SigningEnabled true
            v2SigningEnabled true
            storeFile file(props['KEYSTORE_FILE'])
        }
    }
    buildTypes {
      release {
            buildConfigField "boolean", "LOG_DEBUG", "false"  // 不顯示Log
            zipAlignEnabled true                    //Zipalign優(yōu)化
            signingConfig signingConfigs.release    //簽名
            shrinkResources true                    //移除無用的resource文件,導入的model不可以配置
            minifyEnabled true                      //混淆
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            signingConfig signingConfigs.debug
        }
    }
}

四、獲取sha1

1.命令行方式

  • 進入證書所在目錄輸入,獲取證書信息的命令
keytool -list -v -keystore debug.jks -storepass 123456
命令行獲取證書簽名

2.使用AS獲取sha1

QQ20170808-182828@2x.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容