unity3d 打包发布篇--MONO和IL2CPP原理

在这里插入图片描述
ios
目前unity只有il2cpp模式的编译才支持64位系统,mono是不支持的。
苹果在2016年1月就要求所有新上架游戏必须支持64位架构,所以必须要选il2cpp。
android
从2019年8月1日起,在Google Play上发布app必须支持64位体系。从021年8月1日起,Google Play将停掉尚未支持64位体系的APP。
在国内上架应该 32 64 都可以

Mono方面

在这里插入图片描述mono是一款开源、免费、可定制的跨平台.NET运行环境。由于.net只能在windows,mono相当于是一个.net CLR的跨平台变种,就是为了解决跨平台的移植问题。
在运行IL方面上,热更也需要基于JIT,安卓支持即时编译JIT,虽然热更方便,但如果代码中有病毒木马,也一样编译。在这里插入图片描述

IL2CPP

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述最早IOS是支持MONO,但MONO只能支持32位,而且2016年后苹果要求必须64位。
IOS出于安全考虑,不允许JIT,而且因为禁止脚本为动态分配内存赋予执行权限,所以使用反射会有限制,只能静态编译,只能FULL AOT或者il2cpp,热更相对于安卓就比较麻烦。

在这里插入图片描述在有泛型的情况下,代码很可能会报错,因为泛型T只有在执行的时候才知道自己的类型,属于动态的,所以静态编译会直接跳过这句代码,在运行的时候就会报错:尝试JIT的error.

在这里插入图片描述

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值