? 在開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)遇到debug/release版本中某個(gè)值需要?jiǎng)討B(tài)改變方便開(kāi)發(fā)和測(cè)試,就像BuildConfig的DEBUG一樣,在debug版本中為true,release版本中為false,這樣不用我們手動(dòng)每次去修改,在開(kāi)發(fā)過(guò)程中還是比較方便的。
?最近的工作中由于使用到了百度地圖SDK,使用過(guò)百度地圖SDK的人可能知道百度給我的Key是根據(jù)我們的秘鑰sha1和包名生成的,所以這樣就產(chǎn)生了一個(gè)問(wèn)題,當(dāng)我們打包debug和release包時(shí)需要不同的key,或者使用gradle productFlavors修改applicationId同時(shí)打多個(gè)不同版本的包時(shí),每個(gè)版本包的key是不同的,這就需要我們動(dòng)態(tài)設(shè)置key
所以我們的需求是
debug:key=1234
release:key=56789
這樣我們就不用每次修改Key再去打包了,那如何實(shí)現(xiàn)呢?
1.在AndroidManifest.xml設(shè)置占位
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="${baiduMapKey}"/>
${baiduMapKey} baiduMapKey這個(gè)值是動(dòng)態(tài)的,需要我們?cè)O(shè)置
2.在build.gradle中設(shè)置Debug/Release的baiduMapKey
buildTypes {
debug {
manifestPlaceholders = [baiduMapKey: "1234"]
}
release {
manifestPlaceholders = [baiduMapKey: "5678"]
}
}
3.執(zhí)行g(shù)radlew assembleDebug/assembleRelease
這個(gè)時(shí)候的debug版本key=1234
release版本key=5678