Unity 跨平台发布的优势是显而易见的.但还是会有一些坑.尤其是在IOS真机上.关于JIT的问题还是比较棘手的.
而且是在unity中和模拟器中都是好的,一运行在真机上就出问题.
当运行中遇到
ExecutionEngineException: Attempting to JIT compile method ‘...‘ while running with --aot-only.
的错误时.说明有有代码使用了JIT.但在iOS平台中,Mono是以Full AOT模式运行的 无法使用JIT引擎,于是引发了这个异常。
Mono的AOT和.NET的Ngen一样,都是通过提前编译来减少JIT的工作,但默认情况下AOT并不编译所有IL代码,而是在优化和JIT之间取得一个平衡。由于iOS平台禁止JIT编译,于是Mono在iOS上需要Full AOT编译和运行。即预先对程序集中的所有IL代码进行AOT编译生成一个本地代码映像,然后在运行时直接加载这个映像而不再使用JIT引擎。目前由于技术或实现上的原因在使用Full AOT时有一些限制,具体可以参考MonoTouch的文档,这里提几条常见的:
我在使用Unity 发布IOS真机过程时遇到的关于JIT的问题列表
原文地址:http://blog.csdn.net/ainn_pp/article/details/42268585