iOS 11,Unity3d随机启动崩溃

4
有两个不同开发者开发的Unity游戏(一个2D,另一个3D)。在XCode中启动时能正常运行,并且在iOS 10上也能正常工作。但是,当从Appstore下载到iOS 10并升级到iOS 11时,应用程序会随机崩溃。通常在崩溃3次后才开始工作。在某些设备上根本不会崩溃,而在其他设备上则在游戏开始时随机崩溃。崩溃日志有两种错误类型: 错误1
Date/Time:           2017-09-26 09:52:53.6413 -0400
Launch Time:         2017-09-26 09:52:50.4289 -0400
OS Version:          iPhone OS 11.0 (15A372)
Baseband Version:    6.17.00
Report Version:      104

Exception Type:  EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: KERN_PROTECTION_FAILURE at 0x0000000105000000
VM Region Info: 0x105000000 is in 0x105000000-0x1069c4000;  bytes after start: 0  bytes before end: 27017215
      REGION TYPE                      START - END             [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
      MALLOC_SMALL           0000000104800000-0000000105000000 [ 8192K] rw-/rwx SM=PRV  
--->  mapped file            0000000105000000-00000001069c4000 [ 25.8M] r--/r-- SM=ALI  
      MALLOC_LARGE           00000001069c4000-00000001069c8000 [   16K] rw-/rwx SM=PRV  

Termination Signal: Bus error: 10
Termination Reason: Namespace SIGNAL, Code 0xa
Terminating Process: exc handler [0]
Triggered by Thread:  0

错误 2

OS Version:          iPhone OS 11.0 (15A372)
Baseband Version:    6.17.00
Report Version:      104

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d
Termination Description: SPRINGBOARD, process-exit watchdog transgression: bundleid exhausted real (wall clock) time allowance of 5.00 seconds |  | Elapsed total CPU time (seconds): 9.360 (user 9.360, system 0.000), 94% CPU | Elapsed application CPU time (seconds): 2.920, 29% CPU |
Triggered by Thread:  0

我还注意到 Tumblr 应用程序在 iOS 11 Beta 到 iOS 11 发布更新后启动时也会崩溃3次。

这两个游戏使用了 Unity3D 5.5 进行开发。


1
你的程序中是否使用了任何网络代码,例如TCP/UDP或HTTP请求? - Programmer
游戏有很多网络代码,包括广告网络、分析和Unity服务。它肯定使用网络API。它在启动时立即崩溃,甚至在“加载标志”出现之前,不确定它是否在第一秒钟执行任何网络代码。 - Artem
抱歉,我无法提供帮助。通过进行一些搜索,问题似乎是在游戏启动时在主线程中执行网络操作导致主线程阻塞。您需要复制项目并开始删除插件,直到找到引起此问题的插件为止。 - Programmer
有趣。所以iOS 11会关闭在主线程上进行网络操作的应用程序。其中一个崩溃称为nanosleep -> __semwait_signal在主线程上。可能是不允许睡眠。 - Artem
1
我只搜索了第二个错误,即“命名空间SPRINGBOARD,代码0x8badf00d”。在谷歌上搜索并阅读更多相关信息。 - Programmer
显示剩余2条评论
1个回答

2
从Unity3D 5.5升级到Unity 2017.1 p3(补丁3)解决了大部分错误。我们在Unity 2017.1 f1(f3)中只有少量错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接