热修复打包流程(基于tinker+bugly)

前提

当前APP版本2.1.301,需要基于该版本打热修复包版本2.1.302

基准包:2.1.301

热修复包:2.1.302

热修复打包流程

1、拉取bugfix分支,先通过"package.sh",或"package_b.sh"打出基线包。

打包完成后,会在build/bakApk/app-xxxx/Baby目录下生成基线包的"xx-mapping.txt","xx-R.txt,xx-2.1.301.apk",如下:

2、修改代码,修复bug

3、修改tinkerpatch.gradle的baseApkDir和apkName

tinkerpatch.gradle是tinker的配置文件,首先确保步骤2中的目录结构正确

修改baseApkDir:app-1116-16-46-03

修改apkName:malt-baby-Baby-v2.1.301.apk

4、修改gradle.properties中的versionName和versionCode,必须升级版本号。本次示例中:基准包版本2.1.301,热修复版本2.1.302。

VersionCode=201302

VersionName=2.1.302

5、执行热修复脚本,执行完成后会在项目根目录/apks-patch生成patch包

C端:./package_patch.sh 

B端:./package_patch_b.sh

如果出现如下问题,解决方案。

Execution failed for task ':app:tinkerProcessTeacherReleaseResourceId'.

> java.io.FileNotFoundException: /Users/listen/Documents/AndroidStudioWorkSpace/MaltBaby-Android/app/build/intermediates/tinker_intermediates/values_backup

6、登录bugly热修复发布平台,选中步骤5中生成的“baby_patch_signed_7zip-v2.1.302.apk”文件,点击“立即下发”,生效时间大概1-2分钟。(发布热修复补丁需要管理员权限,可以找@小枫开通)

7、长链下发patch更新消息,把以下json串发给@鸣人:这步操作用于主动触发patch更新的检查,并在补丁安装完成后弹框提示用户重启生效。如果没有该步骤,则用户需要2次重启才可以生效patch,第一次重启下载并安装,第二次重启补丁才生效。

后台默认更新:补丁安装完成后不会提示用户,下次重启APP后生效

{

"type":"PATCH",

"model":{

"versionCode": "201302",

"versionName": "2.1.302"

}

}

弹框提示用户:补丁安装完成后,显示提示弹框,并引导用户重启APP立即生效

{

"type":"PATCH",

"model":{

"versionCode": "201302",

"versionName": "2.1.302",

"showDialogNotifyUser": true,

"dialogConfig": {

"cancelable": false,

"title": "更新提示",

"content": "APP有重要补丁需要更新,重启后生效哦~",

"confirm": "立即重启",

            "confirmToRestart": true

}

}

}

8、通过getAppGlobalConfig接口下发patch信息,可以联系@杰斯,修改patchJson字段的json数据。可以保证在启动时,可以及时检查补丁信息。

"patchJson":"{\"versionCode\":\"201302\",\"versionName\":\"2.1.302\"}"

"patchJson":"{\"versionCode\":\"201302\",\"versionName\":\"2.1.302\",\"showDialogNotifyUser\":true,\"dialogConfig\":{\"cancelable\":false,\"title\":\"更新提示\",\"content\":\"APP有重要补丁需要更新,重启后生效哦~\",\"confirm\":\"立即重启\",\"confirmToRestart\":true}}"

9、验证:进入TestAppAct页面,有个“检查tinker补丁”按钮,点击检查最新补丁;或者重启APP,会在后台默认升级patch。

参考:

Bugly 热更新发布平台

Bugly Android热更新使用指南

Bugly Android热更新详解

热更新相关代码:com.enjoy.malt.app.HotfixManager

热修复黑名单机型

Inlined method resolution crossed dex file boundary(发布补丁后,NativeCrash率会提升)

Android-10:荣耀 PCT AL10,荣耀 AKA AL10,VIVO V1932A,VIVO V1829A,红米 REDMI NOTE 8

Android-9:华为 PAR AL00

你可能感兴趣的:(热修复打包流程(基于tinker+bugly))