Crashlytics thread crashed only on iOS13 built with Xcode11

First of all I would recommend to turn on the "Main Thread Checker", in Xcode, go to Product -> Scheme -> Edit scheme -> Diagnostics, you should see this window Diagnostics tab Another thing you could try is going to your breakpoint section in Xcode and clicking the + sign and adding a symbolic breakpoint, that will listen on a specific call and you can add a condition to it for checking if it is called on the main thread.

A symbolic breakpoint

If you happen to find your bug in the code, please post it here, as I am experiencing the same crash as you in my app, so this is as far as I have gone to finding out the bug. Hope it helps you out!


Do you have google ads enabled in your app? It then could be a bug in Google ads sdk or be a bug in WebKit SDK implementation on iOS 13. (sry I can't comment, so I post this as answer)

Piggybacking off of this -- Reading through above linked thread, the "official" solution from the Google Ads team as of Nov 19 2019 is to modify your App's plist to include the following key/pair to use wkwebview instead of uiwebview.

<key>gad_preferred_webview</key>
<string>wkwebview</string>

Source: https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/ios/I4EEWrPPbSc


In order to show stack traces for your threads, Crashlytics needs to run some code post-crash. Because this code is executing on one of your app’s threads, Crashlytics always captures information about its own execution as part of this process. You will always see a thread executing the “CLSProcessRecordAllThreads” function. In fact, you’ll see it more than once, due to a compiler optimization called inlining. enter image description here Exceptions add an extra bit of complexity. When a Objective-C or C++ exception goes uncaught, Crashlytics records some information about it before the app is allowed to terminate. When this happens, the CLSProcessRecordAllThreads function must be run on the thread that threw the exception. This means that in the case of an exception, the “crashing” thread will always look like it is running Crashlytics code. This is normal, and is just an artifact of how we capture and present the stack traces at the time of exception.


This issue might be due to Google ads SDK(7.5X.X + iOS13), found this thread.

Developers tried to use below key-pair value in Info.plist file as suggested by Google Ads team.

<key>gad_preferred_webview</key>
<string>wkwebview</string>

This decreased crash but this is giving another freeze issue(100% CPU usages).

Recently Google released 7.55.0 with a note :

Removed all references to UIWebView. UIWebView is no longer supported.

so try to update Google ads SDK to 7.55.0