美團二代打包
alle(瓦力):Android Signature V2 Scheme簽名下的新一代渠道包打包神器。
瓦力通過在Apk中的APK Signature Block區塊新增自定義的渠道資訊來生成渠道包,從而提高了渠道包生成效率,可以作為單機工具來使用,也可以部署在HTTP伺服器上來實時處理渠道包Apk的升級網路請求
我測試的打包工具流程 1 用的是gradle:2.3.1 classpath 'com.android.tools.build:gradle:2.3.1
- Gradle外掛方式,方便快速整合
- 命令列方式,最大化滿足各種自定義需求
####Gradle外掛方式
配置好根底部grdle
buildscript { ext.kotlin_version = '1.1.51' repositories { jcenter() google() } dependencies { classpath 'com.meituan.android.walle:plugin:1.1.6' classpath 'com.android.tools.build:gradle:2.3.1' } }
app 中 build.gradle
apply plugin: 'walle'
implementation 'com.meituan.android.walle:library:1.1.6'
在Project Structure中配置好籤名方式,這裡配置好後,module的build.gradle檔案會自動顯示出來
同樣在module中的build.gradle檔案中配置walle出包方式
特別注意
configFile = new File("${project.getProjectDir()}/config.json") channelFile = new File("${project.getProjectDir()}/channel")
configFile和config.json是對應關係
channelFile和channel是對應關係
渠道檔案別放錯位置了,如圖所示, channel檔案也是放在這裡
獲取渠道包資訊
String channel = WalleChannelReader.getChannel(this.getApplicationContext());
案例
獲取渠道包資訊:
具體的配置檔案:
生成渠道包 在下面
生成渠道包 ./gradlew clean assembleReleaseChannels
2 用的是gradle3.0+ 發現會編譯不成功出現以下問題
What went wrong:
A problem occurred configuring project ':app'.
> Could not generate a proxy class for class com.android.build.gradle.tasks.BuildArtifactReportTask.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org