iOS 26 Empty Stack Crash

When we compile our app using Xcode 26 and run it on iOS 26, we encounter a strange crash where the crashing thread shows no stack trace. After inspecting the registers, we have initially traced it to the Google Mobile Ads SDK. When we disable the initialization of the Google Mobile Ads SDK, the app no longer crashes.

However, running the Google Mobile Ads SDK demo app on iOS 26 alone does not cause any issues; the crash only occurs once it is integrated into our app. We also tried enabling Address Sanitizer and Zombie Objects but found no valuable clues.

Could you advise what other methods or tools we can use to further diagnose this issue? Additionally, when we compile the app with Xcode 15 and run it on iOS 26, everything works fine without crashes.

Answered by xc4ll0c in 858962022

Our project uses an order file, and everything works normally after removing it. However, the order file doesn’t contain any GAD-related symbols, so I’m not sure why it would affect the GoogleMobileAds code.

Accepted Answer

Our project uses an order file, and everything works normally after removing it. However, the order file doesn’t contain any GAD-related symbols, so I’m not sure why it would affect the GoogleMobileAds code.

That’s quite a crash report you’ve got there (-:

The immediate cause of the crash is that you’ve jumped to 0. Moreover, the link register is also 0, which is part of the reason you’re not getting backtraces.

Thread 0 crashed with ARM Thread State (64-bit):
…
x28: 0xffffffff76ffffff   fp: 0xffffffff76ffffff   lr: 0x0000000000000000
 sp: 0x000000016dbde1a0   pc: 0x0000000000000000 cpsr: 0x60000000

It’s hard to say how you got there, and why the combination of an order file and that third-party SDK is triggering it.

Can you reproduce this when you run the app directly from Xcode?


Oh, and what’s the deal with ___bsapmmachomanager_register_image_block_invoke in thread 20?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

It’s better to reply as a reply, rather than in the comments; see Quinn’s Top Ten DevForums Tips for this and other titbits.

_bsapmmachomanager_register_image_block_invoke is an in-house component we developed for collecting crash stack traces

Yeah, I figured as much.

As a first step I recommend that you remove your custom crash reporter. It’s very easy for such things to corrupt the state in the Apple crash report, which undermines your ability to debug gnarly problems like this one. See Implementing Your Own Crash Reporter for more background on this.

I have reproduced this bug when run the app directly from Xcode

OK, cool.

Once you’ve removed your crash reporter, does it still happen? And does it generate the same crash report?

Note You can generate a crash report from Xcode by simply detaching from the process. See Posting a Crash Report for this and other titbits.

Presuming that it does, can you reproduce the problem while stepping through your app’s initialisation code? And, if so, which step triggers the crash?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

After removing our self-developed crash reporter, this crash still occurs. The crash happens when we attempt to load ads from GoogleMobileAds. Perhaps the information in the order file is causing abnormal function addresses in GoogleMobileAds?

Thanks for the latest crash report.

Perhaps the information in the order file is causing abnormal function addresses in GoogleMobileAds?

Sure. But that doesn’t tell us whether it’s a problem with your code, a problem with the code in that SDK, or a problem with our tooling.

The crash happens when we attempt to load ads from GoogleMobileAds.

OK. Does it crash synchronously? That is, in the debugger, when you step over the call into that SDK does it crash before the thread returns? Or is it able to return from the call and then the crash happens later on?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

This crash occurs asynchronously within GoogleMobileAds, which is a private library, so we’re unable to step through the code and pinpoint the exact crashing function. What we do know is that after removing the orderfile and rebuilding with Xcode 26, the crash no longer occurs. We’ve decided not to use the orderfile going forward, as it has little impact on startup time optimization for devices running iOS 13 and later. Thank you for your follow-up and support.

iOS 26 Empty Stack Crash
 
 
Q