首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
injectfix专题
InjectFix真机热修复报错can not load method xxx
真机在进行热修复的时候,出现了can not load method xxx的报错。 具体报错的方法是Resources.FindObjectsOfTypeAll,该函数是在[Patch]修复的方法内调用的,本地跑可以正常运行,并且点击Fix可以正常生成补丁包。但是实际到真机上的时候,修复的时候报错can not load method Resources.FindObjectsOfTypeAl
阅读更多...
Unity热更新方案InjectFix
采用InjectFix的热更新特性对c#代码进行修复,InjectFix对应的git地址为 https://github.com/Tencent/InjectFix InjectFix无需对C#工程原有逻辑进行修改,并且可以用C#生成补丁,但是不能新增类和函数,因此更新方式也更加符合苹果审核规范。适合IOS端进行线上问题的修复 开发准备 拷贝InjectFix库文件 IFixToolKit
阅读更多...
InjectFix实现原理
InjectFix实现bug修复主要靠这两部分:虚拟机负责新逻辑的解析执行;注入代码负责把调用重定向到虚拟机;下面我们结合最简单的例子介绍下这两部分。 虚拟机 关键部分用几行伪码就可以描述清楚: 导读 pc指向的是函数的第一条指令; argumentBase指向的是第一个参数; while+switch一条条指令往下执行,具体指令的操作在case那; argumentBase
阅读更多...
Tencent-InjectFix热更新调研——工程使用
承接上篇Tencent-InjectFix热更新调研——Demo使用,这一篇我们来看下怎样在实际工程中使用该插件,以及它能支持哪些热更,以及一些踩过的坑。 初始使用的时候,我们在出整包的时候失败,出现一些错误,也在官方作者的主页下进行了咨询,感兴趣的可以查看IFix.IDMAP问题,主要是我们的代码中使用了太多的第三方插件,看了下源码,会每一个函数都记一个索引,简单的
阅读更多...
Tencent-InjectFix热更新调研——Demo使用
继XLua后腾讯又开源了InjectFix热更新修复方案,可以实现在Unity线上客户端内,不用迭代新版本,就能快速修复游戏的线上bug,InjectFix开源地址:https://github.com/Tencent/InjectFix 接下来我们简单熟悉下例子工程,首先clone出来我们的工程,在Source/VSProj中双击build_for_unity来编译工程 unity打开对应的
阅读更多...