android app 马甲包,关于Android多渠道打包和马甲包问题

多渠道打包

最近项目用到多渠道打包,虽然网上又很多资料, 但是我在实际使用的过程中还是遇到了些问题, 在这里记录下,希望能帮助到你!

首先配置你的渠道信息 :

0419e41194af?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

配置渠道信息

这个时候渠道使用的签名配置都是和主工程一致的, 如果需要修改, 只需要配置Signing Config就可以了.

开始以为只要这样就行了, 但实际编译的时候, 抛出了 All flavors must now belong to a named flavor dimension 的错误, 这是由于各渠道需要对版本号进行统一

0419e41194af?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

统一渠道版本

同步Gradle后, 会生成各渠道的配置信息, 这里列举百度的:

productFlavors {

app_baidu {

applicationId = "你的appid"

manifestPlaceholders = [

CHANNEL_VALUE: "app_baidu", // 对应的渠道名称

JPUSH_PKGNAME: "", // 你的appid

JPUSH_APPKEY : "", //JPush上注册的包名对应的appkey.

JPUSH_CHANNEL: "", //暂时填写默认值即可.

]

}

}

如果你的项目中还用到了友盟统计和极光推送, 那么你要去配置不同的CHANNEL_VALUE, 以确保对不同渠道的统计:

在Manifest的application节点下, 添加

android:name="UMENG_CHANNEL"

android:value="${CHANNEL_VALUE}" />

然后在不同的渠道里对这个值进行修改

极光推送的配置也是类型, 将所有用到包名的地方替换为${applicationId} 然后就可以对不同渠道进行打包了!

马甲包

马甲包的情况和多渠道其实很相似, 只需要在配置渠道的地方修改不同的applicationId, 就可以生成一个马甲包了,可以和主包安装在一个手机上了, 但是往往实际情况没有这么简单, 我在这中间就碰到了一些问题

首先是马甲包要引用不同的资源 , 这里就需要创建不同的资源目录

0419e41194af?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

创建马甲包资源目录

0419e41194af?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

马甲包资源

然后就可以对资源进行修改, 达到对不同资源的引用

第三方库的兼容问题

我在项目中用到了知乎的开源图片选择器(吐槽一下,个人感觉不是很好用, 还有bug) , 里面对存储空间的provider进行配置

0419e41194af?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

配置provider

其实就是Context.getPackageName()

以上就是关于Android多渠道打包和马甲包的操作中我遇到的问题, 如果对你有所帮助, 还请点赞,谢谢你!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值