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

作者: 红颜疯子 | 来源:发表于2018-08-15 11:37 被阅读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多渠道打包和马甲包的操作中我遇到的问题, 如果对你有所帮助, 还请点赞,谢谢你!

    相关文章

      网友评论

        本文标题:关于Android多渠道打包和马甲包问题

        本文链接:https://www.haomeiwen.com/subject/rxbibftx.html