1. 程式人生 > >隱式配置 KeyStore 簽名信息

隱式配置 KeyStore 簽名信息

LZ-Says:技術的魅力,非幾句言語可表述~ 需要細細品味~!

這裡寫圖片描述

前言

還記得,在某司對接支付,Enmmm,微信支付的時候,申請時提交的是正式證書的資訊,所以想測試,只能使用正式簽名才可以。

問題 LZ 只是想玩玩,又不是提交測試。腫麼破?

最後想想,直接指定簽署 Debug Apk 時使用正式簽名不就好了,小手一點執行,簡直6的不要不要的。

debug {
    try {
        storeFile file("keystore address")
        storePassword "your password"
        keyAlias "your alias"
keyPassword "your key password" } catch (ex) { throw new InvalidUserDataException(ex.toString()) } }

Enmmm,雖然最後也發現了還可以修改證書,下面附上地址連結:

Enmmm,還以為以後就這樣咯,結果今天看到官方,不免得為當初 Low 的舉動腹黑一波~

開車

這裡,引用一波官方的說明:

在建立簽名檔案時,Android Studio 會以純文字形式將簽名信息新增到模組的 build.gradle 檔案中。如果是團隊協作開發或者將程式碼開源,那麼應當將此敏感資訊從構建檔案中移出,以免被其他人輕易獲取。為此,我們應建立一個單獨的屬性檔案來儲存安全資訊並按以下步驟操作,在我們的構建檔案中引用該檔案。

具體操作步驟如下:

Step 1: 在專案的根目錄下建立一個名為 keystore.properties 的檔案。此檔案應當包含簽名信息,如下所示:

storePassword = yourStorePassword
keyPassword = yourkeyPassword
keyAlias = yourKeyAlias
storeFile = yourStoreFileLocation

Step 2: 在模組的 build.gradle 檔案中,於 android {} 塊的前面新增用於載入 keystore.properties 檔案的程式碼,隨後修改配置中的引用即可。

// 建立一個名為keystorePropertiesFile的變數,並將其初始化為rootProject資料夾中的keystore.properties檔案。
def keystorePropertiesFile = rootProject.file("keystore.properties"
) // 初始化一個名為keystoreProperties的新Properties()物件 def keystoreProperties = new Properties() // 將keystore.properties檔案載入到keystoreProperties物件中 keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { ... // 簽名配置 signingConfigs { config{ storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] keyAlias keystoreProperties['keyAlias'] // 這塊也可以使用:keystoreProperties.getProperty() keyPassword keystoreProperties['keyPassword'] } } buildTypes { release { minifyEnabled false signingConfig signingConfigs.config proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { debuggable true minifyEnabled false signingConfig signingConfigs.config } } ... }

Enmmm,最後點選 Build > Build APK 以構建釋出 APK ,並確認 Android Studio 已在模組的 build/outputs/apk/ 目錄中建立一個簽署的 APK。

感受

還是要多看看官方文件,真的是能學習不少東西。

別人搞得在6,終究是別人的。

參考資料

個人公眾號

不定期釋出博文,感謝大家關注~

這裡寫圖片描述