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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: Unity发布Mac 打包卡在Building native binary with IL2CPP,打包报错:Exception: /Applications/Unity/Hub/Editor/2019.4.13f1c1/Unity.app/Contents/il2cpp/build/deploy/il2cppcore/il2cppcore.dll did not run properly!

一,遇到问题

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,之前只有在查看打包资源占用大小时查看过,没有打包失败查看编辑器日志的习惯,这次算是学会了~

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

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
定位技术
Mac电脑报错“托管配置文件格式不正确”的解决方法
Mac电脑报错“托管配置文件格式不正确”的解决方法
1051 1
|
2月前
|
机器学习/深度学习 人工智能 图形学
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
卓伊凡的第一款独立游戏-详细介绍游戏开发引擎unity-以及详细介绍windows和mac的安装步骤【01】
323 9
|
应用服务中间件 nginx
Mac Nginx nginx: [emerg] mkdir() “/usr/local/var/run/nginx/client_body_temp“ failed ...
Mac Nginx nginx: [emerg] mkdir() “/usr/local/var/run/nginx/client_body_temp“ failed ...
469 2
|
iOS开发 MacOS
MAC OS更新系统后IDEA中的SVN报错无法使用
MAC OS更新系统后IDEA中的SVN报错无法使用
|
数据采集 中间件 关系型数据库
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
951 2
|
网络安全 图形学 Android开发
Unity与安卓丨AS报错:SSL peer shut down incorrectly
Unity与安卓丨AS报错:SSL peer shut down incorrectly
Unity与安卓丨AS报错:SSL peer shut down incorrectly
|
应用服务中间件 nginx
Mac Nginx nginx: [error] open() “/usr/local/var/run/nginx.pid“
Mac Nginx nginx: [error] open() “/usr/local/var/run/nginx.pid“
287 1
|
TensorFlow 算法框架/工具 Python
【Mac 系统】解决VSCode用Conda成功安装TensorFlow但程序报错显示红色波浪线Unable to import ‘tensorflow‘ pylint(import-error)
本文解决在Mac系统上使用VSCode时遇到的TensorFlow无法导入问题,原因是Python解析器未正确设置为Conda环境下的版本。通过在VSCode左下角选择正确的Python解析器,即可解决import TensorFlow时报错和显示红色波浪线的问题。
711 9
|
开发工具 图形学 Android开发
Unity与安卓丨unity报错:SDK Tools version 0.0 < 26.1.1
Unity与安卓丨unity报错:SDK Tools version 0.0 < 26.1.1
|
API Android开发 图形学
UNITY与安卓⭐三、安卓报错答疑合集
UNITY与安卓⭐三、安卓报错答疑合集

热门文章

最新文章

下一篇
oss云网关配置