需求来源
产品经理验收时,觉得应用测试版和正式版卸载切换太麻烦。提出能不能同一台手机同时安装应用的测试版和正式版。
作为一个有技术追求的程序员,怎么能说不能!
动手
- 祭出大招,先百度一下。搜到的博客中提出,通过Gradle可以配置不同的版本用不同的ApplicationID,主要就是applicationIdSuffix属性的应用。如下图:思路来源
- 遇到的问题
满怀欣喜,直接根据文章提供思路开干。添加完之后,发现项目编译不过了。编译直接报:AAPT2 error: check logs for details。吐槽下,感觉AS升级到3.0以上版本后,报错定位就没那么智能了。根据经验,报上面的错,大多是res包中的文件的问题。Terminal 中直接执行 gradlew compileDebugSources --stacktrace -info 清晰到看到报错来源于style.xml中,原来另一个同事用的自定义属性添加了包名,去掉包名即可。 - 小插曲
眼尖的同学,可能看到了上图中gradle配置了manifestPlaceholders,这个是为了把极光推送中测试应用和正式应用报错信息区分开来。
后记:还不赶快行动起来,应用到项目中,节省测试小姐姐时间,多出时间增进彼此感情!
ps: 在此,厚着脸皮推荐下自己的公众号,公众号主要分享的是我对股市(投资)、楼市、生活的感悟等,技术分享次要(我是个技术萌新)希望会对你有所帮助。