iosswiftxcodecompiler-errorslaunch-screen

iOS App Crash at launch -> NO_CRASH_STACK -> DYLD 4 Symbol missing


App crashes at launch for some of our live users (NOT TESTFLIGHT).

enter image description here

I have managed to extract the error log. Debugging steps:

Incident Identifier: B1F06CCD-4AAB-402F-9909-11FA7E1C54F3
Hardware Model:      iPhone14,3
Process:             *** [549]
Path:                /private/var/containers/Bundle/Application/DAE1AAC4-2150-46EF-B7B9-29553EA7346E/***.app/***
Identifier:          com.XX.XX
Version:             9.0 (70)
AppStoreTools:       14E221
AppVariant:          1:iPhone14,3:15
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.XX [580]

Date/Time:           2023-06-12 15:59:45.2595 +1000
Launch Time:         2023-06-12 15:59:45.2060 +1000
OS Version:          iPhone OS 15.6.1 (19G82)
Release Type:        User
Baseband Version:    1.70.01
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: DYLD 4 Symbol missing
Symbol not found: (_objc_claimAutoreleasedReturnValue)
Referenced from: '/Volumes/VOLUME/*/***.app/Frameworks/GoogleUtilities.framework/GoogleUtilities'
Expected in: '/usr/lib/libobjc.A.dylib'
(terminated at launch; ignore backtrace)

Triggered by Thread:  0


Thread 0 Crashed:
0   dyld                            0x00000001034bcb14 __abort_with_payload + 8
1   dyld                            0x00000001034c26cc abort_with_payload_wrapper_internal + 104 (terminate_with_reason.c:102)
2   dyld                            0x00000001034c2700 abort_with_payload + 16 (terminate_with_reason.c:124)
3   dyld                            0x0000000103492a00 dyld4::halt(char const*) + 580 (DyldProcessConfig.cpp:2102)
4   dyld                            0x000000010348fa20 dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*) + 3560 (dyldMain.cpp:0)
5   dyld                            0x000000010348dd84 start + 488 (dyldMain.cpp:864)


Thread 0 crashed with ARM Thread State (64-bit):
    x0: 0x0000000000000006   x1: 0x0000000000000004   x2: 0x000000016ddc56c8   x3: 0x00000000000000e4
    x4: 0x000000016ddc52c8   x5: 0x0000000000000000   x6: 0x0000000000000000   x7: 0x000000016ddc4d40
    x8: 0x0000000000000020   x9: 0x0000000000000009  x10: 0x000000016ddc53b8  x11: 0x0000000000000108
   x12: 0x0000000000000000  x13: 0x0000000000000035  x14: 0x0000000248f2d99d  x15: 0x000000016ddc47e8
   x16: 0x0000000000000209  x17: 0x00000001034b71c8  x18: 0x0000000000000000  x19: 0x0000000000000000
   x20: 0x000000016ddc52c8  x21: 0x00000000000000e4  x22: 0x000000016ddc56c8  x23: 0x0000000000000004
   x24: 0x0000000000000006  x25: 0x000000016ddc52c8  x26: 0x0000000000000400  x27: 0x0000000000000400
   x28: 0x00000000000000f0   fp: 0x000000016ddc5290   lr: 0x00000001034c26cc
    sp: 0x000000016ddc5250   pc: 0x00000001034bcb14     cpsr: 0x1000
   esr: 0x56000080  Address size fault


Binary Images:
0x103474000 - 0x1034cbfff dyld arm64e  <66e1fb2668f8379ba052eb8b8291b5e1> /usr/lib/dyld

EOF

Any help in fixing this issue with GoogleUtilities.framework/GoogleUtilities will be highly appreciated.

This is a severe issue experienced by iOS developers lately. This crash is not an application error. References: [1] [2]


Solution

  • I see in the log you provided that it expects _objc_claimAutoreleasedReturnValue to be in /usr/lib/libobjc.A.dylib (which prob is a system library). There seems to be no issue with GoogleUtilities.framework, it's just referencing this broken symbol somewhere. If there was a problem with GoogleUtilities, the error would appear during archiving process in Xcode

    Probably there's something messed up in these users' systems, since libobjc.A.dylib is a system library. Plus they probably have iPhone 13(model number 14) and sit on old iOS 15, which may be jailbroken, otherwise I think they'd update to iOS 16