需求來源
產品經理驗收時,覺得應用測試版和正式版解除安裝切換太麻煩。提出能不能同一臺手機同時安裝應用的測試版和正式版。
作為一個有技術追求的程式設計師,怎麼能說不能!
動手
- 祭出大招,先百度一下。搜到的部落格中提出,通過Gradle可以配置不同的版本用不同的ApplicationID,主要就是applicationIdSuffix屬性的應用。如下圖:思路來源
- 遇到的問題
滿懷欣喜,直接根據文章提供思路開幹。新增完之後,發現專案編譯不過了。編譯直接報:AAPT2 error: check logs for details。吐槽下,感覺AS升級到3.0以上版本後,報錯定位就沒那麼智慧了。根據經驗,報上面的錯,大多是res包中的檔案的問題。Terminal 中直接執行 gradlew compileDebugSources --stacktrace -info 清晰到看到報錯來源於style.xml中,原來另一個同事用的自定義屬性新增了包名,去掉包名即可。 - 小插曲
眼尖的同學,可能看到了上圖中gradle配置了manifestPlaceholders,這個是為了把極光推送中測試應用和正式應用報錯資訊區分開來。
後記:還不趕快行動起來,應用到專案中,節省測試小姐姐時間,多出時間增進彼此感情!
ps: 在此,厚著臉皮推薦下自己的公眾號,公眾號主要分享的是我對股市(投資)、樓市、生活的感悟等,技術分享次要(我是個技術萌新)希望會對你有所幫助。