在提交issue之前,我们应该先查询是否已经有相关的issue以及常见问题。提交issue时,我们需要写明issue的原因,以及编译或运行过程的日志(加载进程以及Patch进程)。issue需要以下面的格式:
异常类型:app运行时异常/编译异常
手机型号:如:Nexus 5(如是编译异常,则可以不填)
手机系统版本:如:Android 5.0 (如是编译异常,则可以不填)
tinker版本:如:1.7.7
gradle版本:如:2.10
是否使用热更新SDK: 如 TinkerPatch SDK 或者 Bugly SDK
系统:如:Mac
堆栈/日志:
1. 如是编译异常,请在执行gradle命令时,加上--stacktrace;
2. 日志我们需要过滤"Tinker."关键字;
3. 对于合成失败的情况,请给出:patch进程的日志,这里需要将Android Moniter右上角设为No Filter。
提问题时若使用不能用/没效果/有问题/报错此类模糊表达,但又没给出任何代码截图报错的,将绝对不会有任何反馈。这种issue也是一律直接关闭的,大家可以参阅提问的智慧。
Tinker是一个开源项目,希望大家遇到问题时要学会先思考,看看sample与Tinker的源码,更鼓励大家给我们提pr.
从版本控制中找到线上版本的commit记录,然后重新打包,这个也是可以当做基线版本的
你确定?同样代码打出来的文件 md5值是不一样的!patch打不上去。
这个问题我遇到过,最后解决的办法,前面步骤和2楼一样,最后把线上的包下载下来,放到打出包的目录里面。和基准包的区别就是,生成的补丁会大点。
嗯,我确定,我司的app就是这样搞的,(我们的线上包加固过,肯定是不能用的)
你有用andresguard混淆过资源吗?
没有哦,难道跟这个有关系么
是有关系的,andresguard混淆会有一些变量的,导致每次混淆的结果md5值都不一样。
哦哦,那估计就是这个的问题了
你确定?同样代码打出来的文件 md5值是不一样的!patch打不上去。
这个问题我遇到过,最后解决的办法,前面步骤和2楼一样,最后把线上的包下载下来,放到打出包的目录里面。和基准包的区别就是,生成的补丁会大点。
肯定是不行的!!重新打包,每个dex的crc都会发生变化!补丁包没法校验通过的!