解決walle打的包加固後獲取不到渠道信息

按照上一篇文章使用Walle實現多渠道打包打出來的包經360加固後,會導致無法獲取到渠道信息,所以如果你打的渠道包要經過360加固,就不能使用上一篇文章的方法打渠道包,這裏提供另一種方法:

1、app的 build.gradle 文件添加walle的依賴用於獲取渠道信息
dependencies {
    compile 'com.meituan.android.walle:library:1.1.6'
}
2、將之前配置在manifest文件中標籤內的友盟的渠道信息刪除,修改友盟初始化方法爲:
     //獲取渠道信息
    String channel = WalleChannelReader.getChannel(this.getApplicationContext());
    UMConfigure.init(this, BuildConfig.UMENG_APPKEY, channel, UMConfigure.DEVICE_TYPE_PHONE, "");
3、正常打包,然後加固,得到加固後的apk(還未簽名),這裏暫且命名爲app_release_enc.apk
4、上github下載 ProtectedApkResignerForWalle項目,將第3步加固後未簽名的apk放到此項目的根目錄:

在這裏插入圖片描述

5、修改config.py文件:
#!/usr/bin/python  
#-*-coding:utf-8-*-

#keystore信息
#Windows 下路徑分割線請注意使用\\轉義
keystorePath = "./xxx.keystore"
keyAlias = "xxx"
keystorePassword = "xxx"
keyPassword = "xxx"

#加固後的源文件名(未重簽名)
protectedSourceApkName = "app_release_enc.apk"
#加固後的源文件所在文件夾路徑(...path),注意結尾不要帶分隔符,默認在此文件夾根目錄
protectedSourceApkDirPath = ""
#渠道包輸出路徑,默認在此文件夾Channels目錄下
channelsOutputFilePath = ""
#渠道名配置文件路徑,默認在此文件夾根目錄
channelFilePath = ""
#額外信息配置文件(絕對路徑,例如/Users/mac/Desktop/walle360/config.json)
#配置信息示例參看https://github.com/Meituan-Dianping/walle/blob/master/app/config.json
extraChannelFilePath = ""
#Android SDK buidtools path , please use above 25.0+
sdkBuildToolPath = "/B/sdk/build-tools/27.0.3"

這裏順便補充下相對路徑知識(老忘):

"/"    表示根目錄

"./"   表示當前目錄

"../"  表示上一級目錄("../../"上二級)
6、修改channel裏的要打包的渠道:

在這裏插入圖片描述
這裏暫且只打華爲、小米、應用包三個渠道的包:

huawei 
xiaomi 
yingyongbao 
7、cmd打開命令行窗口,進入ProtectedApkResignerForWalle項目根目錄,執行命令:python ApkResigner.py

在這裏插入圖片描述
執行成功後,ProtectedApkResignerForWalle項目根目錄會生成channels文件夾,打開此文件夾可以看到新生成的3個渠道包:
在這裏插入圖片描述
自此,walle打的包加固後獲取不到渠道信息的問題就解決了。

結合熱更新的補充

1、項目打出基準包後,build文件下會生成如下圖所示的bakApk文件,此文件我們一定要保存好,後面如果要打補丁時,要保證build文件下方有此文件,否則補丁包打不出來。
在這裏插入圖片描述
2、我們將第1步生成的基準apk上傳到360網頁加固後,下載加固成功但未簽名的apk放到ProtectedApkResignerForWalle項目根目錄生成多渠道apk(生成的apk會自動簽名),然後發佈到各個應用市場。

3、當發現有bug時,我們首先修復bug,改完後將第1步生成的bakApk文件放到app目錄下的build文件裏,然後打補丁包。

4、將生成的補丁包上傳到bugly,然後各個應用市場的app都會收到補丁。


另外,github上ProtectedApkResignerForWalle項目給出的注意事項:

在這裏插入圖片描述

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