iOS11、Unity3d随机启动崩溃

iOS 11, Unity3d random startup crash

有 2 款由不同开发商开发的 Unity 游戏(一款 2D,一款 3D)。

它们在 XCode 启动时运行良好,在 iOS 10.

运行良好

但是当从 Appstore 下载到 iOS 10 并且 iOS 升级到 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 用于开发这两款游戏。

从 Unity3D 5.5 升级到 Unity 2017.1 p3(补丁 3)修复了大部分错误。 我们在 Unity 2017.1 f1 (f3)

中几乎没有错误