根据flavors设置buildType中debug的签名文件
?
設(shè)置buildType中debug的簽名文件(不使用debug默認(rèn)的簽名文件)
前言:android studio運(yùn)行編譯安卓項(xiàng)目,其debug模式會(huì)使用默認(rèn)的keystory。通過獲取flavor信息設(shè)置簽名文件,在debug模式下是不生效的,它仍然使用默認(rèn)的keystory。此時(shí)通過studio安裝至客戶端的apk簽名信息并不是我們所需要的。
而我們往往需要給每一個(gè)包指定簽名文件。
?
這個(gè)默認(rèn)簽名(keystore)是不需要密碼的,它的默認(rèn)位置在?$HOME/.android/debug.keystore,如果不存在Android studio會(huì)自動(dòng)創(chuàng)建它。
使用場(chǎng)景:?根據(jù)需求,給不同的包設(shè)置對(duì)應(yīng)的簽名文件。
flavors?和 buildTypes設(shè)置。
productFlavors {_360 {}anzhi_oas {}huawei_fuming {}} buildTypes {release {}debug{}pre{}}flavor + BuildType
給不同的包設(shè)置對(duì)應(yīng)的簽名文件(每個(gè)人根據(jù)自己需求來(lái)做)
//批量配置//獲取flavor集合def flavors = getProductFlavors()for (int i = 0; i < flavors.size(); i++) {//獲取flavor對(duì)象def at = flavors.getAt(i)//獲取flavor名String name = at.getName().toString()if (name.contains("XXXXX")) {SigningConfig fumingConfig = getSigningConfigs().findByName("customsigning1")at.setSigningConfig(fumingConfig)} else {at.setSigningConfig(signingConfigs.getByName("customsigning2"))}}個(gè)人認(rèn)為buildType不同,不影響簽名文件。因?yàn)橹灰粯?#xff0c;簽名文件就應(yīng)該是一樣的。
需要解決的問題:解決在debug模式下,使用設(shè)置的簽名文件,而不是默認(rèn)的簽名文件。
有的人會(huì)講到在buildType的debug中設(shè)置簽名。如下:
buildType{debug{signingConfig signingConfigs.customsigning1}}?
這樣是可以替換掉默認(rèn)簽名的,但有局限性,因?yàn)樗蠨ebug模式都使用了這個(gè)簽名。如果有馬甲包,有多個(gè)flaovrs就不適合了。一般來(lái)說同一個(gè)包名的apk使用同一個(gè)簽名。
通過flaovrs信息來(lái)設(shè)置簽名。但非常不幸的是,給所有flavor設(shè)置對(duì)應(yīng)簽名后,在debug模式下不生效,仍然使用的是默認(rèn)簽名,在非dubug模式(如release pre等)都可以生效。這是因?yàn)橹挥衐ebug有默認(rèn)的簽名文件。
?
重點(diǎn):
如上在flavors集合中設(shè)置簽名文件,同時(shí)在debug中設(shè)置 signingConfig null? ?即可。
debug模式的簽名文件不會(huì)再使用默認(rèn)的簽名文件,會(huì)使用flavor設(shè)置的簽名文件。
?
buildTypes {debug {signingConfig null} .... }?
備注:將debug模式的簽名文件設(shè)置與其它buildType模式相同,有利于開發(fā)工作。如果不一致會(huì)讓Debug release?pre(預(yù)發(fā)布)?等版本在覆蓋安裝時(shí)會(huì)先卸載掉已安裝的app,才能再安裝,這是因?yàn)閐ebug模式特有的默認(rèn)keystory導(dǎo)致的。這樣就會(huì)讓你重新登錄,重新進(jìn)入歡迎界面等等一系列首次安裝工作,長(zhǎng)時(shí)間這樣不是個(gè)事啊。。。。
?
?
總結(jié)
以上是生活随笔為你收集整理的根据flavors设置buildType中debug的签名文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 局域网桌面监控软件_如何促进局域网监控软
- 下一篇: 【入门】QSS基础入门笔记