
[英]How to solve Job.Worker 6 (23): EXC_BAD_ACCESS when i launch Unity game in IOS Simulator?
[英]EXC_BAD_ACCESS when trying to run Unity game on iOS simulator
我通常不是Mac / Xcode用户,请原谅我不正确的术语或理解。
我有一个2D Unity游戏,可以在Android和Windows Phone设备/模拟器上成功构建并运行。 在为iOS构建时,我可以成功创建Xcode项目,将其打开并在其中构建应用程序。 我对iOS特定的播放器设置所做的唯一更改是将SDK Version
设置为Simulator SDK
。
但是,当尝试在模拟器中运行它时,将显示初始屏幕,然后Xcode停在看起来像Assemby文件的错误消息上: Thread 1: EXC_BAD_ACCESS (code=1, address=0x4)
。
由于我不知道要做什么,所以我开始精简我的项目(在Unity中),直到没有更多gameObjects了,但镜头仍留在了开始场景中。 另外,我从构建中删除了所有其他场景。 唯一改变的是上面的错误消息现在似乎出现在另一个程序集文件上。
这里可能是什么问题? 我应该如何进一步调查?
更新
这是堆栈跟踪:
更新2
我创建了一个新的空白Unity项目,并且在那里出现了完全相同的错误。 问题似乎与Unity或我的机器有关,而不是与应用程序本身有关。
经过数天的研究,我仍然无法解决问题,最终还是为真正的设备而不是模拟器而构建。 由于我不拥有该产品,因此我“盲目”将结果提交给了应用商店,结果被接受了。
对我而言,这就是问题完全与Unity和iOS模拟器的组合有关的证明,即这两者不能可靠地协同工作。
另一方面,假设某个应用程序已在Android,Windows Phone和默认播放器上成功测试过,则认为该应用程序可在iOS上运行似乎相对安全。 当然,除非实现了iOS特定功能。
我只知道导致这种现象的一个原因(设备构建成功,但模拟器构建不成功)。
=>使用本机iOS代码/插件时可能会发生这种情况
要解决此问题,您必须修改<path-to-xcode-project>/Libraries/RegisterMonoModules.cpp
文件,导致Unity无法以某种方式为模拟器注册这些类/方法。
只需查找#if !(TARGET_IPHONE_SIMULATOR)
定义并转移它们,使其包含所有插件,同样也包含在模拟器中。 您将需要一些move mono_dl_register_symbol()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.