Gradle 配置 BuildConfig詳解
BuildConfig 前面文章有簡要提到,這次詳細介紹每個命令代表什麼。
這個功能非常強大,我們可以通過在這裡設定一些key-value對,這些key-value 對在不同編譯型別的 apk 下的值不同,比如我們可以為debug 和release 兩種環境定義不同的伺服器
先來看下簡單的release模式
buildTypes {
release {
//是否開啟混淆
minifyEnabled true
//混淆檔案
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
對應的build是這樣的:
你可能會問,沒有設定debug版本,為啥有一個assembleDebug,其實你不設定release配置,assembleRelease也存在,因為debug,release是預設的配置。
我們可以加一些其他type。比如beta用於平時開發,這個命令打出來的包,日誌開關開著,並且沒有混淆,方便定位錯誤。proguard用於測試即將釋出的版本,日誌開關開著,加程式碼混淆,主要驗證程式碼混淆後是否有異常,並且可以根據日誌定位錯誤。
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
beta {
minifyEnabled true
}
proguard{
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
再次檢視我們的task,發現多了這些task
釋出apk包,需要簽名,非常簡單隻需要在對應的buildType下設定signingConfig
signingConfigs {
release {
keyAlias 'keystore'
keyPassword '111111'
storePassword '111111'
storeFile file('/Users/keystore/Documents/app/stone.keystore')
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
beta.initWith(buildTypes.debug)
beta {
minifyEnabled true
signingConfig signingConfigs.release
}
proguard{
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
signingConfig這個沒什麼說的gradle的api,signingConfigs.release中的signingConfigs對應signingConfigs task,這名稱也不能修改,照著寫就行了;signingConfigs.release中的release是自定義的,你可以隨意定義,也可以根據buildType定義多套簽名,一般為了方便,使用一套簽名就ok
其他關於buildType的屬性請查閱官網
相關文章
- gradle android基本配置詳解GradleAndroid
- Android Studio Gradle 常用配置詳解AndroidGradle
- gradle的build.gradle詳解GradleUI
- Android工程gradle詳解AndroidGradle
- gradle中的build script詳解GradleUI
- Gradle自定義外掛詳解Gradle
- Gradle-AS配置Gradle
- Mac 配置 gradleMacGradle
- Gradle常用配置Gradle
- MyBatis 配置詳解MyBatis
- zookeeper 配置詳解
- .htaccess配置詳解
- mysql配置詳解MySql
- iptables配置詳解
- nginx配置詳解Nginx
- 詳解Android Gradle生成位元組碼流程AndroidGradle
- Gradle配置lintOptionsGradle
- Gradle系列(三) Gradle配置構建和渠道包Gradle
- Gradle系列之Android Gradle基礎配置GradleAndroid
- Android 詳解Gradle(3.1.4)實現多渠道打包AndroidGradle
- hortonworks/registry配置詳解
- Druid配置詳解UI
- git ssh配置詳解Git
- 配置pvst詳解
- webxml配置詳解2WebXML
- 監聽配置詳解
- vim配置vimrc詳解
- Spark Metrics配置詳解Spark
- Apache的配置詳解Apache
- Gradle配置最佳實踐Gradle
- android gradle配置指南AndroidGradle
- 手動為AS配置GradleGradle
- 如何配置gradle環境Gradle
- idea 中配置GradleIdeaGradle
- nginx 詳解 – 詳細配置說明Nginx
- nginx 詳解 - 詳細配置說明Nginx
- 安裝 gradle 及如何在idea 配置 gradleGradleIdea
- Gradle 簽名的配置檔案 gradle.propertiesGradle