美團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下載

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章