Android Gradle signing 編譯打包apk的幾種辦法

Android Gradle signing 編譯打包apk的幾種辦法


1.通常打包signing辦法

通常情況下我們編譯打包都是手動進行的。
這裏寫圖片描述


2.在Gradle內部配置signing辦法

其實我們可以通過設置Build Variants來進行buildTypes設置使用Gradle自動進行簽名打包。

比如Build Variants設置成release選項
接着就開始配置信息設置了設置之後大概是這樣的


    signingConfigs {
        release {
            keyAlias 'xxxx'
            keyPassword '**********'
            storeFile file('../xxxx/release.jks')
            storePassword '**********'
        }
    }

     buildTypes {
        release {
            signingConfig signingConfigs.release
        }
     }

3.加載外部配置文件signing辦法

可是這樣當你提交文件的時候,signingConfigs配置的詳細信息如密碼就提交到服務器了,這樣不太友好。其實我們可以通過調用配置文件的方式來解決這個問題。

首先新建配置文件名稱爲signing.properties

RELEASE_STORE_FILE=../xxxx/release.jks
RELEASE_STORE_PASSWORD=**********
RELEASE_KEY_ALIAS=xxxx
RELEASE_KEY_PASSWORD=**********

然後把signing.properties添加到提交忽略文件中如.gitignore

# Ignore gradle files
signing.properties

接着在./app/build.gradle文件中配置加載配置文件信息信息

/**
 * 加載簽名配置文件
 */
def loadSigningConfigs() {
    def Properties props = new Properties()
    def propFile = file('../signing.properties')
    if (propFile.canRead()) {
        props.load(new FileInputStream(propFile))
        if (props != null && props.containsKey('RELEASE_STORE_FILE') && props.containsKey('RELEASE_STORE_PASSWORD') &&
                props.containsKey('RELEASE_KEY_ALIAS') && props.containsKey('RELEASE_KEY_PASSWORD')) {
            android.signingConfigs.release.storeFile = file(props['RELEASE_STORE_FILE'])
            android.signingConfigs.release.storePassword = props['RELEASE_STORE_PASSWORD']
            android.signingConfigs.release.keyAlias = props['RELEASE_KEY_ALIAS']
            android.signingConfigs.release.keyPassword = props['RELEASE_KEY_PASSWORD']
        } else {
            android.buildTypes.release.signingConfig = null
        }
    } else {
        android.buildTypes.release.signingConfig = null
    }
}

最後調用配置信息就可以了

android {
    signingConfigs {
        release {
        }
    }
    loadSigningConfigs()
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章