1. 兼容多渠道包,使用zip comment方式生成渠道包(完成)
1.1 引入
根目录build.gradle
1234567buildscript {......dependencies{// add packer-ngclasspath 'com.mcxiaoke.gradle:packer-ng:1.0.8'}}修改android模块的 build.gradle
12345678910111213141516apply plugin: 'packer'dependencies {compile 'com.mcxiaoke.gradle:packer-helper:1.0.8'}android {...signingConfigs {release {// 满足下面两个条件时需要此配置// 1. Gradle版本 >= 2.14.1// 2. Android Gradle Plugin 版本 >= 2.2.0// 作用是只使用旧版签名,禁用V2版签名模式v2SigningEnabled false}}}
1.2 打包流程
- 指定market属性 : 两种方式
- 打包时命令行使用 -Pmarket = yourMarketPath
- 在gradle.properties 里加入 market=yourMarketFilePath
market文件是渠道名列表文件,路径为相对路径 一般放在项目根目录
market 格式
12lianxiang#联想乐商店 // #前面为渠道号,后面为注释打包命令:market.txt 在项目根目录
普通打包
1./gradlew -Pmarket=markets.txt clean apkRelease指定productFlavors 打包
如果项目中有多个productFlavors,默认使用第一个flavor生成的apk文件作为打包工具的输入参数,也可以指定flavor生成渠道包12// 指定 使用名称为demo 的flavor 打包./gradlew -Pmarket=markets.txt clean apkDemoRelease
- 指定market属性 : 两种方式
- 1.3 插件配置12345678910packer {// 是否检查signingConfig ,默认falsecheckSigningConfig = true// 是否检查gradle配置中的zipAlignEnabled,默认falsecheckZipAlign = true// 输出的apk文件名称archiveNameFormat = '${appPkg}-${flavorName}-${buildType}-v${versionName}-${versionCode}'// 输出目录archiveOutput = file(new File(project.buildDir.path, "archives"))}
|
|
2. 资源文件未做修改,patch文件过大(完成)
|
|
3. TinkerPatch 补丁管理后台集成(完成)
|
|
|
|
|
|
|
|
|
|
4. 合成进程可能被中断,补丁合成的重试
重试三次 TinkerServePatchRequestCallBack – handlePatchFile
5. 补丁后程序无法启动的处理(完成)
停用Tinker 及 清理补丁
|
|