美团Walle多渠道打包以及解决360加固丢失渠道信息问题

以前负责项目打渠道包时,都是使用传统的方式进行打包,自从发现美团的打多渠道包方式后,感觉少用了不少的时间

美团新一代渠道包打包神器walle github地址

下面我来说一下自己集成美团的多渠道打包方式,方便自己回顾,也希望能帮到大家

 

在接入Walle之前,我们需要创建好签名文件,并且在项目的app build.gradle中进行配置,如下:

  signingConfigs {
        release {
            storeFile file('D:\\asexample\\MyWalleApplication\\key\\walle.jks')
            storePassword '123456'
            keyAlias = 'walle'
            keyPassword '123456'
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug{
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
    }

美团Walle具体接入方式可以参考:https://github.com/Meituan-Dianping/walle/

首先在位于项目根目录 build.gradle 文件中添加Walle Grale 插件的依赖,如下:

buildscript {
    dependencies {
        classpath 'com.meituan.android.walle:plugin:1.1.6'
    }
}

并在当前App的build.gradle文件中apply这个插件,并添加上用于读取渠道号的ARR

apply plugin: 'walle'

dependencies {
    compile 'com.meituan.android.walle:library:1.1.6'
}

同时还需要在app的build.gradle中配置插件:

然后进行同步一下。

接着把多渠道文件放到app目录下,如下图:

 然后我们需要进行多渠道打包的时候,只需要执行./gradlew clean assembleReleaseChannels即可来生成所有的渠道包

 到此,我们就可以看到项目下生成了多渠道包:

生成多渠道包到此也就完成了

但是这里还有一个问题,我们直接通过美团Walle多渠道方案打包生成的apk,在经过360加固之后,是会丢掉渠道信息的

,对此问题,美团在GitHub上也提出了解决方案360加固失效?

这里我们就直接采用Jay-Goo大佬提供的Python打包脚本ProtectedApkResignerForWalle,这也是美团官方推荐的方案。接下来我们就讲解如何使用该脚本

第一步:在app的build.gradle中添加依赖:

compile 'com.meituan.android.walle:library:1.1.6'

第二步:把https://github.com/Jay-Goo/ProtectedApkResignerForWalle 中的文件克隆下来,放在自己工程自定义的文件夹中,如下:

上图walle文件夹下除了自定义的,其余文件和文件夹就是从Jay-Goo大佬那里克隆下来的

接着我们把加固后的包放到walle文件夹下,如下图所示:

把config.py文件中的这几个内容改成自己项目中的配置 ,如下图所示:

还有把config.py文件中sdkBuildToolPath改成自己的Android SDK buidtools所在的路径:

然后在ApkResigner.py文件所在路径下运行python脚本:python ApkResigner.py如下图所示:

执行完成后就生成了多渠道包,如下图:

 如果你不想每次生成多渠道包时都要修改config.py文件中的protectedSourceApkName的名字,我们复制一个config2.py你可以用如下的方式替换:

同时还有复制一个ApkResigner.py命名为ApkResigner2.py,并把该文件中的所有config替换成config2,如下图:

然后在控制台运行脚本:python AapResigner.py如下图,同样可以生成多渠道包:

 至此美团多渠道打包总结完毕!我的整个完整demo下载

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值