我的最新手机游戏更新在按下";"开始";按钮从主菜单场景加载游戏场景。在没有提供崩溃日志的情况下,他们告诉我自己去复制崩溃,然后识别并解决问题(哈哈,是的,当然是伙计(。我无法复制这个问题,所以我在他们的收件箱里发了三天的垃圾邮件,他们终于给我提供了一个崩溃日志。我无法在Xcode中象征性地显示崩溃日志,因为我在虚拟机上运行MacOS,而虚拟机无法连接到设备(我拒绝购买Mac,只是为了发布免费的手机游戏(,所以我发现自己已经走到了死胡同。我在下面附上了完整的崩溃日志。如果有人能帮我了解崩溃的原因,我将不胜感激。崩溃发生在线程0上。我从日志中删除了很多细节,以便将其放在帖子中,以便在需要时提供更多信息。
Incident Identifier: E1CC2B12-75DA-4704-A9BA-9923B4EE44A3
CrashReporter Key: d5a46eb6fe6765b9893f0126d9ae455c5b11cea1
Hardware Model: xxx
Process: AppName [4775]
Path: /private/var/containers/Bundle/Application/8C49D650-D44B-40CA-9071-6EE143554D36/AppName.app/AppName
Identifier: com.Company-Name.AppName
Version: 1 (1.0.8)
AppStoreTools: 12E262
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.Company-Name.AppName [1637]
Date/Time: 2021-05-06 15:53:25.8187 +0100
Launch Time: 2021-05-06 15:53:17.5422 +0100
OS Version: iPhone OS 14.5.1 (18E212)
Release Type: User
Baseband Version: n/a
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000
VM Region Info: 0 is not in any region. Bytes before following region: 4376707072
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
__TEXT 104df4000-104df8000 [ 16K] r-x/r-x SM=COW ...app/AppName
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_platform.dylib 0x00000001c993d128 0x1c9936000 + 28968
1 UnityFramework 0x0000000105747228 0x105098000 + 7008808
2 UnityFramework 0x00000001057530e8 0x105098000 + 7057640
3 UnityFramework 0x000000010542fe74 0x105098000 + 3767924
4 UnityFramework 0x0000000105710c10 0x105098000 + 6786064
5 UnityFramework 0x000000010571226c 0x105098000 + 6791788
6 UnityFramework 0x00000001057123b8 0x105098000 + 6792120
7 UnityFramework 0x000000010557f470 0x105098000 + 5141616
8 UnityFramework 0x000000010556f4b8 0x105098000 + 5076152
9 UnityFramework 0x0000000105461350 0x105098000 + 3969872
10 UnityFramework 0x00000001054621cc 0x105098000 + 3973580
11 UnityFramework 0x0000000105463438 0x105098000 + 3978296
12 UnityFramework 0x0000000105463ad8 0x105098000 + 3979992
13 UnityFramework 0x00000001054562a4 0x105098000 + 3924644
14 UnityFramework 0x00000001054562e4 0x105098000 + 3924708
15 UnityFramework 0x00000001054565ac 0x105098000 + 3925420
16 UnityFramework 0x000000010578cecc 0x105098000 + 7294668
17 UnityFramework 0x00000001050b2290 0x105098000 + 107152
18 UnityFramework 0x00000001050b21f8 0x105098000 + 107000
19 QuartzCore 0x00000001851f98e4 0x1851e6000 + 80100
20 IOKit 0x000000018c6ba0f8 0x18c6b3000 + 28920
21 CoreFoundation 0x00000001820953dc 0x18201e000 + 488412
22 CoreFoundation 0x00000001820b8fc0 0x18201e000 + 634816
23 CoreFoundation 0x00000001820b83c4 0x18201e000 + 631748
24 CoreFoundation 0x00000001820b2538 0x18201e000 + 607544
25 CoreFoundation 0x00000001820b16a8 0x18201e000 + 603816
26 GraphicsServices 0x0000000198761570 0x19875e000 + 13680
27 UIKitCore 0x00000001849cf370 0x183ea0000 + 11727728
28 UIKitCore 0x00000001849d48ec 0x183ea0000 + 11749612
29 UnityFramework 0x00000001050b1cc8 0x105098000 + 105672
30 AppName 0x0000000104dfbe1c 0x104df4000 + 32284
31 libdyld.dylib 0x0000000181d90140 0x181d8f000 + 4416
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x00000002a0000060 x2: 0x0000000025bc53e0 x3: 0x0000000000000020
x4: 0x0000000000000000 x5: 0x0000000000000020 x6: 0x0000000000000015 x7: 0x0000000000000000
x8: 0xbf800000bde131b9 x9: 0x3f586c393f7178c0 x10: 0xb4000000b4000000 x11: 0xbe39a80dbcc13b57
x12: 0xbe3db1abbca0ee69 x13: 0x3e8a242ebd91359d x14: 0x3ea8e51ebf679701 x15: 0xbeaaa529bf6fb740
x16: 0x00000001c993d0e0 x17: 0x0000000000000001 x18: 0x0000000000000000 x19: 0x0000000147b0e2e0
x20: 0x00000002a0000020 x21: 0x0000000025bc5400 x22: 0x0000000000000000 x23: 0x000000014654f790
x24: 0x0000000147b0e2e0 x25: 0x00000001456e4040 x26: 0x0000000000000000 x27: 0x000000014654f790
x28: 0x0000000000000000 fp: 0x000000016b0090a0 lr: 0x0000000105747228
sp: 0x000000016b009040 pc: 0x00000001c993d128 cpsr: 0x20000000
esr: 0x56000080 Address size fault
读取时错误非常明显。首先,EXC_BAD_ACCESS (SIGSEGV)
意味着它正在访问不应该访问的内存。其次,KERN_INVALID_ADDRESS at 0x0000000000000000
是NULL
的地址。换句话说,您有一个null引用异常,在单击start时抛出该异常。由于我看不到你的代码,我不知道具体情况。如果你有任何#if UNITY_IOS or #if UNITY_ANDROID
条件关闭代码,可能是iOS版本缺少赋值。如果您想了解更多关于理解内存访问崩溃的信息,请阅读Apple's writeup
。
我应该补充一点,这个空引用异常可能不是直接来自您的代码。如果你在项目中使用的插件或库在iOS上运行方式不同,它们可能是问题所在。由于你的问题没有太多信息,所以很难说。你能列出你可能使用的任何软件包吗?你有iPhone可以亲自测试吗?如果没有,我会认真考虑至少找一个有人来测试你的iOS游戏,而不是盲目地发布到实时环境中。
您可以尝试使用atos
命令来象征地址。例如:
atos -arch arm64 -o UnityFramework.framework/UnityFramework -l 0x105098000 0x0000000105747228 0x00000001057530e8 0x000000010542fe74 ...and so on
-l
选项后面跟着UnityFramework映像的基地址,接下来是堆栈地址。然后你可以看到符号函数调用栈,找出哪里调用崩溃函数。这些也适用于CoreFoundation、UIKitCore。