Deer_GF之IOS出热更包
Hi,今天介绍一下Deer_GF_Wolong,框架基于HybridCLR热更新技术,出IOS热更包
首先我们需要准备的工作:
环境:Mac
Unity 版本 2021.3.1f1c1
热更方案:HybridCLR 热更 HybridCLR官方文档
在此ios出包之前,默认大家已经对Deer_GF_Wolong 已经了解,已经可以构建ab资源在Win平台上正常热更。
接下来我们就开始构建ios包步骤介绍:
首先安装最新的hybridclr环境,以及【hybridclr_unity】Unity sdk 包,安装步骤,这里不再赘述,请移步到 hybridclr安装;
请查阅官方文档 Unity版本相关特殊操作,因为我们用的Unity 版本是 2021.3.1f1c1,所以我们需要对hybridclr安装需要特殊处理。作者给我们提供的是2021.3.1f1,我们现在用的是c1版本,所以我们现在开始手动制作

找到UnityEditor.CoreModule.dll反编译修改,首先打开Unity Hub 找到Unity对应版本点击⚙️,在Finder 中显示

选中Unity图标打开显示包内容

压缩Contents/Managed/UnityEngine 文件夹,然后传到windows系统环境中。

请移步到官方文档中查看修改Unity编辑器相关dll
注意 在用dnspy保存模块时候,要仔细看作者说的,如下图,不然就会报错 There's not enough bytes left to read

版本对应修改好的UnityEditor.CoreModule.dll 在项目【HybridCLRData~Data\IOS相关\2021.3.1f1c1】文件夹下,可以直接拿去覆盖掉Unity{Editor安装目录}/Editor/Data/Managed/UnityEngine的UnityEditor.CoreModule.dll 如下图:

注意,注意,注意替换完dll文件重新打开Unity及项目。。
构建ios包,中间出现错误,是Untiy提示的错误
小1. LocationService class is used but Locations Usage Description is empty. App will not work on iOS 10+. 如果出现此错误,就到PlayerSetting添加定位描述,如下图:

出包成功之后我们可以看到如下图:有了很多aot原数据补充dll文件,,如果不反编译修改UnityEditor.CoreModule.dll,如下这个目录不会出现这么多aot补充原数据dll文件,如下图:

构建ab资源,把构建好的ab资源上传到cdn里

在DeerSetting里设置cdn信息

修改Resources组件ResourceMode 模式为 Updatable模式,如下图:

再次构建IOS xcode项目
生成 【libil2cpp.a】文件,相关教程请移步官方文档:IOS平台打包
生成过程中会报错,提示缺少 cmake command 我们去下载一个就可以cmake下载地址,cmake安装教程请移步cmake 安装图文教程;由于需要梯子,下载速度较慢,也可以用框架项目里下载好的安装包去安装,位置目录如下图:

打开xcode项目,替换【libil2cpp.a】文件,然后生成app,到此,ios出包完成!
修改项目中的资源和脚本,重新构建ab资源上传到cdn体验热更。祝君成功。。。
欢迎大家体验Deer_Gameframework_Wolong出ios热更包。
框架介绍请移步【Deer_GF之框架介绍】
出包报错可能有下面几个注意的:
- Api Compatibility Level 需选择如下图:

Deer_GF之IOS出热更包的更多相关文章
- 实现iOS图片等资源文件的热更新化(五): 一个简单完整的资源热更新页面
简介 一个简单的关于页面,有一个图片,版本号,App名称等,着重演示各个系列的文章完整集成示例. 动机与意义 这是系列文章的最后一篇.今天抽空写下,收下尾.文章本身会在第四篇的基础上,简单扩充下代码, ...
- 实现iOS图片等资源文件的热更新化(三):动态的资源文件夹
简介 此文,将尝试动态从某个不确定的文件夹中加载资源文件.文章,会继续完善自定义的 imageNamed 函数,并为下一篇文章铺垫. 这么做的意义 正如我们经常所说的那样,大多数情景知道做事的意义往往 ...
- 实现iOS图片等资源文件的热更新化(零): 序
必要的序 以后在写系列文章,准备把基本的规划和动机等,单独作为一个小的序言部分给独立出来.序言部分,可以较为完整地交待系列文章的写作动机,所展示的编码技术可能的应用场景等.个人,我还是比较看重文章或者 ...
- 实现iOS图片等资源文件的热更新化(二):自定义的动态 imageNamed
这篇文章,要解决的是,使用一个自定义的 imageNamed 函数来替代系统的 imageNamed 函数.内部逻辑,将贯穿对比论证 关于"合适"的图片的定义.对iOS加载图片的规 ...
- 客户端热更新框架之UI热更框架设计(上)
什么是热更新,为什么需要热更新? 热更新是目前各大手游等众多App常用的更新方式.简单来说就是在用户通过App Store下载App之后,打开App时遇到的即时更新.对于手游客户端来 ...
- Unity热更方案汇总
http://www.manew.com/thread-114496-1-1.html 谈到目前的代码热更方案:没什么特别的要求 <ignore_js_op> toLua(效 ...
- Unity3D热更新之LuaFramework篇[08]--热更新原理及热更服务器搭建
前言 前面铺垫了这么久,终于要开始写热更新了. Unity游戏热更新包含两个方面,一个是资源的更新,一个是脚本的更新. 资源更新是Unity本来就支持的,在各大平台也都能用.而脚本的热更新在iOS平台 ...
- 热更新-----为何使用lua进行热更
事实上我们在安卓端是可以使用c#jit的,但是我们在ios上的代码是AOT(预先编译,静态编译)的,不能用c# jit(实时编译,即时编译). ios不能用c#热更是因为启动了CPU的No eXecu ...
- 实操重写IK分词器源码,基于mysql热更新词库
实操重写IK分词器源码,基于mysql热更新词库参考网址:https://blog.csdn.net/wuzhiwei549/article/details/80451302 问题一:按照这篇文章的介 ...
- Unity 代码编译成dll 更新dll实现热更代码
Unity 代码编译成dll 更新dll实现热更代码 实现流程 代码编译成DLL DLL打包成AssetBundle 加载AssetBundle 加载代码程序集 获取指定类 使用反射赋值 C#代码编译 ...
随机推荐
- [MySQL] 索引的使用、SQL语句优化策略
目录 索引 什么是索引 索引的创建与删除 创建索引 删除索引 索引的使用 使用explain分析SQL语句 最佳左前缀 索引覆盖 避免对索引列进行额外运算 SQL语句优化 小表驱动大表 索引 什么是索 ...
- js取不到iframe元素
跨域 iframe 请绕道,下文是针对非跨域 iframe 的问题排除 1.iframe 取不到值的问题的原因 1. 父页面未加载完成 2. iframe 未加载完成 3. 语法使用错误 4. 跨域( ...
- os 模块 sys模块 json模块
今日内容详细 os模块(重要) os模块主要与代码运行所在的操作系统打交道 import os 1.创建目录 1.创建目录(文件夹) os.mkdir(r'L4') # 只可以创建单级目录 相对路径 ...
- Svelte框架实现表格协同文档
首先,从框架搭建上,本篇示例采用当下流行的前后端分离的开发方式,前端使用npm作为脚手架搭建Svelte框架. 后端使用Java的SpringBoot作为后端框架. 首先,介绍下在前端Svelte框架 ...
- 基于windows系统使用GNVM进行node切换版本
GNVM是什么? GNVM 是一个简单的 Windows 下 Node.js 多版本管理器,类似的 nvm nvmw nodist . 安装 进入官网,下载你所需要的包,直达链接 下载完成 放到我们的 ...
- 【ASP.NET Core】动态映射MVC路由
ASP.NET Core 中的几大功能模块(Razor Pages.MVC.SignalR/Blazor.Mini-API 等等)都以终结点(End Point)的方式公开.在HTTP管道上调用时,其 ...
- Java基础1-1-1—java基础语法(数据类型及转换)
JAVA基础 1.数据类型及转换 1.1 注释 注释是在程序指定位置添加的说明性信息 简单理解:对代码的一种解释说明,方便我们程序员更好的去阅读代码 // 单行注释 /* 多行注释 */ /**文档注 ...
- 行为型模式 - 观察者模式Observer
学习而来,代码是自己敲的.也有些自己的理解在里边,有问题希望大家指出. 有一个大佬视频中提过一个案例,我觉得很棒:遥闻深巷中犬吠,边有妇人惊觉欠伸,其夫呓语.继而儿醒,大啼.夫亦醒. 模式的定义与特点 ...
- 深度剖析 Linux 伙伴系统的设计与实现
在上篇文章 <深入理解 Linux 物理内存分配全链路实现> 中,笔者为大家详细介绍了 Linux 内存分配在内核中的整个链路实现: 但是当内核执行到 get_page_from_free ...
- CH32芯片_EVT工程配置方法说明
CH32V系列 注意: 我们EVT例程中默认配置是CH32V203C8T6配置,若使用MCU为CH32V203K8T6-CH32V203C8U6-CH32V203C8T6,无需修改配置 若使用MCU为 ...