Android Studio 在Gradle中隱藏Keystore密碼

轉(zhuǎn)載請注明原作者,如果你覺得這篇文章對你有幫助或啟發(fā),不用請我喝咖啡:D

1.添加releaseConfig

signingConfigs{
        releaseConfig{
            storeFile file("mykey.keystore.jks")
            storePassword "storepwd"
            keyAlias "MyApp"
            keyPassword "mypwd"

        }
    }

2.指向releaseConfig

在buildTypes中,release部分,添加sighingConfig 指向releaseConfig

buildTypes {
        release {
            minifyEnabled false
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.releaseConfig
        }
    }

3. 隱藏密碼

不想暴露密碼,修改步驟1中的storePassword和keyPassword為

signingConfigs{
        releaseConfig{
            storeFile file("hnt.keystore.jks")
            storePassword System.console().readLine("\nKeyStore password: ")
            keyAlias "HaniuTang"
            keyPassword System.console().readLine("\nKey password: ")

        }
    }

這樣使用命令行進行打包(assembleRelease命令)會讓你輸入密碼。

4.遇到的問題及解決

設(shè)置apk簽名時從console中讀取keyAlias以及密碼,使用"system.console().readLine"方法,在編譯時總是出現(xiàn)問題:

Cannot invoke method readLine() on null object"

使用命令行的時候沒有問題,但是當使用android studio的時候,還是報這個錯,可能是android studio默認設(shè)置gradle為deamon方式。

  • 方法1:去除優(yōu)化gradle設(shè)置的./gradle/gradle.properties中的damon為true。

Reference:
http://forums.gradle.org/gradle/topics/standard_in_when_using_the_daemon

  • 方法2:加上
if(system.console() != null)

這之后再從命令行讀取密碼以及別名

Reference:
https://www.timroes.de/2013/09/22/handling-signing-configs-with-gradle/

5.最終腳本

最終,gradle腳本中的相關(guān)部分長這樣:

signingConfigs{
        releaseConfig{
            storeFile file("mykey.keystore.jks")
            storePassword
            if(System.console() != null)
                System.console().readLine("\nKeystore password: ")
            keyAlias "MyApp"
            keyPassword
            if(System.console() != null)
                System.console().readLine("\nKey password: ")
        }
    }
最后編輯于
?著作權(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)容