Android 知识Android studio【idea】Android开发知识小集

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

2018-08-15  本文已影响207人  红颜疯子

多渠道打包

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


配置渠道信息

这个时候渠道使用的签名配置都是和主工程一致的, 如果需要修改, 只需要配置Signing Config就可以了.
开始以为只要这样就行了, 但实际编译的时候, 抛出了 All flavors must now belong to a named flavor dimension 的错误, 这是由于各渠道需要对版本号进行统一


统一渠道版本
同步Gradle后, 会生成各渠道的配置信息, 这里列举百度的:
 productFlavors {
        app_baidu {
            applicationId = "你的appid"
            manifestPlaceholders = [
                    CHANNEL_VALUE: "app_baidu", // 对应的渠道名称
                    JPUSH_PKGNAME: "",  // 你的appid
                    JPUSH_APPKEY : "", //JPush上注册的包名对应的appkey.
                    JPUSH_CHANNEL: "", //暂时填写默认值即可.
            ]
        }
       
    }

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

<meta-data
            android:name="UMENG_CHANNEL"
            android:value="${CHANNEL_VALUE}" />

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


马甲包

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

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


    创建马甲包资源目录
    马甲包资源

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

  2. 第三方库的兼容问题
    我在项目中用到了知乎的开源图片选择器(吐槽一下,个人感觉不是很好用, 还有bug) , 里面对存储空间的provider进行配置
    配置provider
    其实就是Context.getPackageName()

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

上一篇下一篇

猜你喜欢

热点阅读