VasDolly是一種快速多渠道打包工具,同時支持基于V1簽名和V2簽名進行多渠道打包。插件本身會自動檢測Apk使用的簽名類別,并選擇合適的多渠道打包方式,對使用者來說完全透明。 V1.1.6版本已支持Android Gradle Plugin 3.0,歡迎使用!
目前Gradle Plugin 2.2以上默認開啟V2簽名,所以如果想關閉V2簽名,可將下面的v2SigningEnabled設置為false。
可以參考官網gitHub:# Tencent/VasDolly
簡單總結整理:
在根工程的build.gradle中,添加對打包Plugin的依賴:
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
classpath 'com.leon.channel:plugin:2.0.1'
}
引用VasDolly Plugin
在主App工程的build.gradle中,添加對VasDolly Plugin的引用:
apply plugin: 'channel'
添加對VasDolly helper類庫的依賴
在主App工程的build.gradle中,添加讀取渠道信息的helper類庫依賴:
dependencies {
api 'com.leon.channel:helper:2.0.1'
}
配置渠道列表
目前有兩種方式配置渠道列表,最終的渠道列表是兩者的累加之和:
在gradle.properties文件指定渠道文件名稱,該渠道文件必須位于根工程目錄下,一行一個渠道信息。
channel_file=channel.txt
在channel或者rebuildChannel屬性中通過channelFile屬性指定渠道文件,一行一個渠道信息。
channel{
//指定渠道文件
channelFile = file("/Users/leon/Downloads/testChannel.txt")
}
rebuildChannel{
//指定渠道文件
channelFile = file("/Users/leon/Downloads/testReChannel.txt")
}
根據已有基礎包重新生成多渠道包
若是根據已有基礎包重新生成多渠道包,首先要配置渠道文件、基礎包的路徑和渠道包的輸出目錄:
rebuildChannel {
//指定渠道文件
channelFile = file("/Users/leon/Downloads/testReChannel.txt")
baseDebugApk = 已有Debug APK
baseReleaseApk = 已有Release APK
//默認為new File(project.buildDir, "rebuildChannel/debug")
debugOutputDir = Debug渠道包輸出目錄
//默認為new File(project.buildDir, "rebuildChannel/release")
releaseOutputDir = Release渠道包輸出目錄
//快速模式:生成渠道包時不進行校驗(速度可以提升10倍以上,默認為false)
isFastMode = false
//低內存模式(僅針對V2簽名,默認為false):只把簽名塊、中央目錄和EOCD讀取到內存,不把最大頭的內容塊讀取到內存,在手機上合成APK時,可以使用該模式
lowMemory = false
}
然后,通過Android Studio的teiminal命令行輸入gradle rebuildChannel命令生成多渠道包。
重要補充 通過命令行生成渠道包、讀取渠道信息、特別對于類似于360加固后的包損失簽名的情況方法是先進行加固然后通過命令行進行添加渠道包具體命令如下:
VasDolly命令行
命令行工具即:jar文件下VasDolly.jar,可以通過help查看具體命令:
執(zhí)行目錄在VasDolly.jar所在的目錄下執(zhí)行以下命令
VasDolly.jar下載地址https://download.csdn.net/download/yshr1991/10810763
目前支持以下操作:
獲取指定APK的簽名方式
java -jar VasDolly.jar get -s /home/user/test.apk
獲取指定APK的渠道信息
java -jar VasDolly.jar get -c /home/user/test.apk
刪除指定APK的渠道信息
java -jar VasDolly.jar remove -c /home/user/test.apk
通過指定渠道字符串添加渠道信息
java -jar VasDolly.jar put -c "channel1,channel2" /home/user/base.apk /home/user/
通過指定渠道文件添加渠道信息
java -jar VasDolly.jar put -c channel.txt /home/user/base.apk /home/user/
為基于V1的多渠道打包添加了多線程支持,滿足渠道較多的使用場景
java -jar VasDolly.jar put -mtc channel.txt /home/user/base.apk /home/user/
提供了FastMode,生成渠道包時不進行強校驗,速度可提升10倍以上
java -jar VasDolly.jar put -c channel.txt -f /home/user/base.apk /home/user/