After having spent some time in the debugger, I've learned the following:
It appears that BaseBoard and FrontBoardServices are not iterating over our UI hierarchy like I had wondered. It seems to be dealing with things like UI configuration, accessibility, edge insets and safe areas, orientation, displays, etc. In other words, things that our app shouldn't be responsible for. This leads me to believe this may not be our app's bug. I don't think I have enough information for a good bug report, though.
BaseBoard does work on the main thread and on background, worker threads. There's an XPC interprocess communication manager that receives messages on a background thread--I presume from the OS--about things that have changed.
It may not have anything to do with a race condition. It seems plausible it could also be that BaseBoard/FrontBoardServices is getting its state corrupted.
BSIntegerMapEnumerateWithBlock gets called a lot. It wasn't very useful printing out what's passed into it.
I could file a bug report, but still have no idea how to reproduce it, since I've yet to see the crash. Should I report it anyways?
Topic:
UI Frameworks
SubTopic:
General
Tags: