Unity 之 发布Mac报错il2cppcore.dll did not run propertly

  • 一,遇到问题
  • 二,尝试解决
    • 2.1 方案一:打包Mono
    • 2.2 方案二:删除引用库
    • 2.3 方案三:添加模块
  • 三,定位问题
  • 四,解决问题
  • 五,问题反思

一,遇到问题

Unity 发布Mac卡在Building native binary with IL2CPP,翻译为:使用IL2CPP构建本机二进制文件

停一会之后,报错信息如下:
Exception: /Applications/Unity/Hub/Editor/2019.4.13f1c1/Unity.app/Contents/il2cpp/build/deploy/il2cppcore/il2cppcore.dll did not run properly!


二,尝试解决

2.1 方案一:打包Mono

在PlayerSettings面板 --> Player --> OtherSettings 下 Scripting Backend设置为Mono:

结果:Mono模式下可以正常打包。

2.2 方案二:删除引用库

由于我之前在IL2CPP模式下打过包,没有问题;然后我又用出问题的Unity版本创建了新工程,也设置为IL2CPP模式打包也没问题。

所以我认为是引用了外部插件导致的,于是开始一个一个进行删除,打包测试。

结果:删除了内购相关库,可以正常打出包来

2.3 方案三:添加模块

刚好一个同学在Windows打包时也遇到了这个问题,他的解决方法是:在VS中添加Desktop development with c++ 这个模块,然后就可以打出包了

由于系统不同,Mac的VS只有这种,并没有Windows上那些模块…

我又试着在VS Code中去查找这个模块,结果VS Code连接不上商店,又要去解决连接插件商店的问题,最后无疾而终…


三,定位问题

废了半天劲问题也没有进展,没办法只能请教公司大佬了,大佬咨询了问题现象后,决定查看Editor Log,结果日志还真的有问题,由于il2cpp下面的各种.o文件太多了,他们占据了一中的报错日志的全部内容,而把最关键的问题,给掩盖掉了。

打开编辑器日志:

编辑器日志报错:GetAgeByIDCard是方法名,RealNamePanel是类名,一下就定位到问题代码出现在哪里了。右侧可以看到il2cpp下面的各种.o相关日志,真的是太多了…


四,解决问题

既然是定位到问题了,那么久好解决了。

问题原因:代码中调用的IOS代码,没有添加宏定义进行区分。

解法办法:添加IOS平台宏定义,使其对其他平台逻辑不产生影响。

导致报错代码:

修改后代码:


五,问题反思

反思导致问题原因:其实稍微有点经验的开发者,在区分多平台的时候,都会自然而然的使用宏定义。我这里使用if (Application.platform == RuntimePlatform.IPhonePlayer) 这种形式区分平台的原因是为了在代码中可以查看到引用,方便查找调用,也为了避免误删无引用代码… 结果有一种聪明反被聪明误的感觉… …

不过通过这次问题,有学会了一招打包报错时查看Editor Log,之前只有在查看打包资源占用大小时查看过,没有打包失败查看编辑器日志的习惯,这次算是学会了~

本文解决你的问题了吗?若你遇到的问题有其他的解决方案,欢迎你在评论区分享出来。

Unity 之 发布 Mac 报错 il2cppcore.dll did not run propertly相关推荐

  1. 执行exe报计算机中丢失qtdll,Qt入门教程(2) 直接运行Qt生成的exe报错缺少dll文件 | 阿拉灯...

    摘要 在Qt Creator中写完程序,在Qt Creator中的debug或者release状态下运行程序都是没有问题的,并且会在工程目录下生成对应的debug或者release文件夹,里面存放着生 ...

  2. IDLE打开Python报错 api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案

    IDLE打开Python报错 api-ms-win-crt-runtimel1-1-0.dll缺失的解决方案 参考文章: (1)IDLE打开Python报错 api-ms-win-crt-runtim ...

  3. 运行 skimage 报错ImportError: DLL load failed:找不到指定模块

    经常遇到的一个问题 运行 skimage 报错ImportError: DLL load failed:找不到指定模块,花了2个小时逐个排查,以及网上找原因验证,最终解决了. 通过一下安装仍会报错 p ...

  4. python 安装gdal成功,但是导入报错:DLL load failed 找不到指定的模块

    最近基于Python3.8安装gdal,报错如题,尝试了很多方法,包括各种替换gdal版本,升级对应的依赖包版本一直没得到解决. 最后看到两个很有参考价值的文章: 1.关于python环境配置几个常见 ...

  5. Arcgis Server 发布服务报错Failed to start the server machine ‘XXX‘. Error while starting AppServer. Requir

    Arcgis Server 发布服务报错 Failed to start the server machine 'XXX'. Error while starting AppServer. Requi ...

  6. Unity导入资源解决报错

    一.目的 1.想知道:Unity导入资源解决报错 二.参考 三.注意 1.下载的资源位置 C:\Users\Administrator\AppData\Roaming\Unity\Asset Stor ...

  7. Unity PIC 打包assetBundle报错

    Unity PIC 打包assetBundle报错 修改平台设置,讲LitJson 从android 目录移出来,重启unity.就可以读取到引用关系了.

  8. 【已解决】启动Python报错api-ms-win-crt-process-l1-1-0.dll缺失,windows7无法升级,升级补丁打不上的解决办法

    [已解决]启动Python报错api-ms-win-crt-process-l1-1-0.dll缺失,windows7无法升级,升级补丁打不上的解决办法 问题:启动python报错api-ms-win ...

  9. Unity引用System.Drawing发布安卓报错

    安卓日志报错信息:Unable to load DLL 'gdiplus' Unable to load DLL 'gdiplus': The specified module could not b ...

最新文章

  1. 第十五届全国大学生智能车全国总决赛获奖信息-华东赛区
  2. oracle 备份与恢复学习总结
  3. PHP字符串替换函数选择
  4. ML.NET 示例:对象检测
  5. java实现米和厘米比较好_java如何根据实际经、纬度和已知经、纬度做对比,计算出具体偏差米数。(以米为单位)...
  6. mysql建模之前需要会什么_mysql – 什么是建模我简单表的最佳方法?
  7. RHEL7 -- 修改主机名
  8. docker开机启动失败_Docker教程(二)——安装Docker
  9. Struts项目中前端页面向后台页面传参中文出现乱码(Get请求)
  10. tensorflow之train.get_checkpoint_state
  11. 浅谈Cache Memory
  12. python实现多进程监听声音播放并绘图
  13. 三星note8android 9.0,三星S9/S9+计划明天推送安卓9.0正式版、S8/S8+、Note8下周推测试版...
  14. 微服务,软件应用开发的新纪元
  15. BitTorrent详解
  16. VS2013新建项目出现脚本错误的解决办法
  17. Python课第3周:平方根格式化
  18. 北大计算机直博生,直博生培养方案-北京大学.doc
  19. 懒人的findviewbyid
  20. Photoshop插件--证件照--1寸裁剪--1寸排版--脚本开发--PS插件

热门文章

  1. 国科大学习资料--最优化计算方法(王晓)--第六次作业答案
  2. wish跨境电商平台的运营技巧有哪些?
  3. 乐嘉版 人物性格,红黄蓝绿
  4. 当初的愿望实现了么?
  5. 什么叫html格式化,format是什么意思 格式化自己,只为删除你???
  6. springboot+乡村图书管理系统 毕业设计-附源码191505
  7. 树莓派Pico直流电机接口技术及PWM电机调速控制MicroPython编程
  8. 就算是假期也全力以赴,学习不能停
  9. 分类中解决类别不平衡问题
  10. 语义分割系列14-DMNet(pytorch)实现