Main Thread Checker: UI API called on a background thread: -[UIApplication applicationState]
It's hard to find the UI code which is not executed in main thread sometimes. You can use the trick below to locate it and fix it.
Choose Edit Scheme -> Diagnostics, tick Main Thread Checker.
Xcode 11.4.1
Click the small arrow next to the Main Thread Checker to create a Main Thread Checker breakpoint.
Previous Xcode
Run your iOS application to reproduce this issue. (Xcode should pause on the first issue.)
Wrap the code that modify the UI in
DispatchQueue.main.async {}
First, make sure your invocations of google maps and ui changes are called from the main thread.
You can enable Thread Sanitizer option in Xcode using below steps:
You can put offending lines on the main thread with the following:
DispatchQueue.main.async { //Do UI Code here. //Call Google maps methods.}
Also, update your current version of google maps. Google maps had to make a couple of updates for the thread checker.
For the question: "Why would this be occurring?" I think Apple added an assertion for an edge case which Google then had to update their pod for.
Wrap the lines of code that modify the UI in DispatchQueue.main.async {}
in order to make sure they execute on the main thread. Otherwise, you may be calling them from a background thread, where UI modifications are not allowed. All such lines of code must be executed from the main thread.