您好、欢迎来到现金彩票网!
当前位置:21点 > 字符串资源 >

一个项目如何编译多个不同签名、包名、资源等的apk?

发布时间:2019-07-10 09:55 来源:未知 编辑:admin

  这类文章实操指数非常高,非常建议跟着作者一起操作一波,便于巩固记忆,遇到问题也可以参考作者的完整配置,单纯的阅读忘得很快。

  如题所示!本篇文章就是为了解决这种问题。方便打包和运行的时候能做到无需手动替换配置,即可打包想要的apk。打包的时候,只需选一下想打哪种配置的apk就OK啦。 (^o^)/~

  1. 首先我们需要知道productFlavors来配置渠道,这里我将渠道用来表示哪种apk,如下我需要配置四种应用:

  2. 如果我们选择了某一个渠道,那么运行打包的时候会根据渠道名选择资源文件(可结合第6点一起看)

  3. 签名可在signingConfigs中配置多个(我将所有签名文件放在了项目跟目录的key文件夹中),这样我们就可以通过signingConfigs指定预制好的签名配置。

  4. 可在build.gradle中配置动态配置java代码调用的常量数据(如:通过该方式我们可根据不同渠道动态配置第三方appid,或其他需要根据渠道而改变的数据)

  此时,您看一下清单文件中manifest标签里的,package的值,假如是:

  你可以进入BuildConfig看一看,里面还包含了一些当前的包名版本号等信息。

  通过BuildConfig调用QQ_ID静态常量,就是该渠道里配置的值,WX_ID同理。

  需要注意buildTypes中的签名配置signingConfig如果不设置为null,那么打包的是有还是以内置的签名打包。

  再看到第2点的介绍,我们选择运行渠道后,会默认匹配对应渠道下的资源。下面我将xemh渠道的资源目录全部展开一下。

  7. 打正式包的时候选好渠道,就可以打包不同配置的apk,当然您也可以使用命令的方式。

  如果您在清单文件AndroidManifest.xml中,有那种以包名开头命名的那种。因为如果包名都改了,有些也需要动态的改变。可以用${applicationId}代替。在打包的时候,会自动替换成当前包名。

  当然值得注意的是,在代码中我们也不能把包名写死了,可通过BuildConfig得到当前包名

  就这样就可以解放大量劳动力啦!每次项目打包各种软件,选一下就ojbk,哈哈哈~

  如果有些配置在其他渠道没有的,也可通过BuildConfig在java中判断如果是某某渠道那么屏蔽。返回搜狐,查看更多

http://magaltouba.com/zifuchuanziyuan/287.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有