InjectFix icon indicating copy to clipboard operation
InjectFix copied to clipboard

多次打patch的问题

Open qgktu opened this issue 5 years ago • 6 comments

比如我现在对第一个函数打上[IFix.Patch]标签 然后生成patch1打上,去掉标签 然后对第二个函数打上标签,生成patch2打上, 这个时候,patch1失效了。只有patch2生效

有没有办法,能加载多个独立的小patch呢?

qgktu avatar Nov 27 '19 03:11 qgktu

只支持加载一个patch。 所以,你得把所有要修改的地方都打上标签然后生成补丁

chexiongsheng avatar Nov 27 '19 06:11 chexiongsheng

好的感谢

qgktu avatar Nov 27 '19 07:11 qgktu

只支持加载一个patch。 所以,你得把所有要修改的地方都打上标签然后生成补丁

这个何时能支持增量补丁额,感觉这个功能还挺有必要的

AngeliaQing avatar Nov 27 '19 08:11 AngeliaQing

只支持加载一个patch。 所以,你得把所有要修改的地方都打上标签然后生成补丁

这个何时能支持增量补丁额,感觉这个功能还挺有必要的

为什么要增量呢?你保留那个Patch标签,直到整包更新时删了就可以了,管理简单。否则你还得管理这些“增量”包之间的加载顺序,而且后续有个函数不需要修复(新改法不需要修那个文件了),你要怎么弄呢?

chexiongsheng avatar Nov 27 '19 08:11 chexiongsheng

只支持加载一个patch。 所以,你得把所有要修改的地方都打上标签然后生成补丁

这个何时能支持增量补丁额,感觉这个功能还挺有必要的

为什么要增量呢?你保留那个Patch标签,直到整包更新时删了就可以了,管理简单。否则你还得管理这些“增量”包之间的加载顺序,而且后续有个函数不需要修复(新改法不需要修那个文件了),你要怎么弄呢?

对增量的需求主要是来源于——兼容多个app版本,就是后续不管发布了多少个app,我都依然可以通过补丁的形式更新到最新游戏内容。

AngeliaQing avatar Nov 27 '19 08:11 AngeliaQing

这个机制应该可以自己实现, 可以参考这些步骤:

  1. 每次生成补丁的时候, 为补丁生成一个构建的时间戳.
  2. 每次打包的时候, 给安装包生成一个构建的时间戳.
  3. 加载补丁前, 对比下补丁构建的时间戳和安装包的构建的时间戳.补丁的构建时间戳 > 安装包的构建时间戳 才加载补丁.

mmdnb avatar May 26 '22 12:05 mmdnb