| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 游戏开发 -> Unity热更新方案InjectFix -> 正文阅读 |
|
[游戏开发]Unity热更新方案InjectFix |
采用InjectFix的热更新特性对c#代码进行修复,InjectFix对应的git地址为 https://github.com/Tencent/InjectFix InjectFix无需对C#工程原有逻辑进行修改,并且可以用C#生成补丁,但是不能新增类和函数,因此更新方式也更加符合苹果审核规范。适合IOS端进行线上问题的修复 开发准备拷贝InjectFix库文件IFixToolKit拷贝到Unity项目的Assets同级目录 Assets/IFix,Assets/Plugins拷贝到Unity项目的Assets下 标识要热更新的类型在Editor目录下创建InterpertConfig文件,对可进行热更的类进行配置。采用标识Namespace的方式,这样在该Namespace下的类均可进行热更新
修复流程生成热更新资源假定线上版本为1.0.0,此时需要发布一个对应的修复版本1.0.0.001 1、需要修改的文件添加库的命名域using IFix;在修改后的?函数上添加[Patch]标签。进行修复后,点击菜单栏的是InjectFix->Fix (新版本会有Fix,Fix(IOS)和Fix(Android)选项,直接选Fix选项)生成Assembly-CSharp.patch.bytes 2、将Assembly-CSharp.patch.bytes 上传到CDN服务器,对应信息和地址填入下方热更新配置表 3、服务器根据配置表下发对应热更新信息 热更新配置表
version:需要修复的版本号 channel:需要修复的渠道号,如果为all则为针对所有平台的修复包,如果为其他,则为具体渠道的修复包。优先判断具体渠道号的渠道包,如果没有则选择全平台修复包。 fixVersion:修复版本的版本号 abUrl:修复包的地址 客户端更新流程图? 注意事项在发布版本前需要先执行菜单栏InjectFix->Inject确保代码已经注入。否则热更无法生效 常见问题Exception: can not load type[System.Int32,netstandard, Version=2.0.0.0, Culture = neutral. PublicKeyToken=cc7b13ffcd2ddd51] 这是由于补丁设置的backend和实际打包设置的不一样。补丁设置的是netstandard 2.0。所以把API Level改成.net 4.x 重新生成补丁包 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 20:33:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |