自定義 Android Gradle -- 配置簽名信息

----《Android Gradle 權(quán)威指南》學(xué)習(xí)筆記

總目錄:Gradle 學(xué)習(xí)系列 -- 目錄

上一篇:Android Gradle 插件 -- Android Gradle 工程示例

下一篇:自定義 Android Gradle -- 隱藏簽名文件信息

相關(guān)文章:Android 生成和使用簽名文件

1 配置簽名信息

1.1 一個(gè) APP 只有簽名之后才能被發(fā)布、安裝和使用,簽名是保護(hù) APP 的方式,標(biāo)記該 APP 的唯一性。如果 APP 被惡意篡改,簽名就不一樣了,就無法升級(jí)安裝,在一定程度上保護(hù)了 APP。

1.2 要想對(duì) APP 進(jìn)行簽名,先得有一個(gè)簽名證書文件,這個(gè)證書文件被開發(fā)者持有,這里不做詳述。

1.3 一般 APP 有 debug 和 release 兩種模式,在開發(fā)調(diào)試時(shí)使用 debug 模式,在發(fā)布的時(shí)候用 release 模式;可以針對(duì)兩種模式采用不同的簽名方式。一般 debug 模式的時(shí)候,Android SDK 已經(jīng)體用了一個(gè)默認(rèn)的 debug 簽名證書,可以直接使用;發(fā)布的時(shí)候,使用 release 模式時(shí)就要配置私有的簽名證書。

1.4 對(duì)于簽名信息的配置,Android Gradle 提供了非常簡(jiǎn)便的方式,可以很容易的配置一個(gè)簽名信息,如下所示:

android {
    compileSdk 31
    ....
    signingConfigs {
        release {
            storeFile file("myReleaseKey.keystore")
            storePassword "pwd1"
            keyAlias "myReleaseKey"
            keyPassword "pwd2"
        }
       debug{
            storeFile file("myDebugKey.keystore")
            storePassword "pwd1"
            keyAlias "myDebugKey"
            keyPassword "pwd2"
        }
    }
    ...
}

上面的代碼中,配置了 release 和 debug 的配置。默認(rèn)情況下,debug 模式的簽名已經(jīng)配置好了,使用的就是 Android SDK 自動(dòng)生成的 debug 證書,一般位于 $HOME/.android/debug.keystore,其 key 和密碼都是已知的,一般情況下不需要單獨(dú)配置 debug 模式的簽名信息。如下所示:

android {
    compileSdk 31
    ....
    signingConfigs {
        release {
            storeFile file("myReleaseKey.keystore")
            storePassword "pwd1"
            keyAlias "myReleaseKey"
            keyPassword "pwd2"
        }
    }
    ...
}

1.5 Android Gradle 提供了 signingConfigs{} 配置塊來生成多個(gè)簽名配置信息。 signingConfigs 是 Android 的一個(gè)方法,接受一個(gè)域?qū)ο笞鳛閰?shù)??梢耘渲玫脑厝缦拢?br> storeFile: 簽名證書文件
storePassword:簽名證書文件的密碼
storeType:簽名證書的類型
keyAlias:簽名證書中密鑰別名
keyPassword:簽名證書中該密鑰的密碼

2 使用配置好的簽名信息

上面配置好了簽名信息,使用簽名信息有兩種方式:在 defaultConfig{} 中使用 和 在 buildTypes{} 中使用。

2.1 在 defaultConfig{} 中使用簽名信息

在 defaultConfig{} 中使用簽名信息時(shí),需要將 signingConfigs 代碼塊寫在 defaultConfig 代碼塊的上方,這樣在 defaultConfig 中才能使用到。代碼如下:

defaultConfig {
        applicationId "com.cakes.testmodule"
        ...
  
        signingConfig signingConfigs.release
}

2.2 在 buildTypes{} 中使用簽名信息

除了默認(rèn)簽名配置外,也可以對(duì)構(gòu)建的類型分別配置簽名信息,即在 buildTypes 代碼塊中配置簽名信息,代碼如下:

buildTypes {
        release {
            signingConfig signingConfigs.release
            ...

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

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

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