My iOS app randomly crashes on launch infrequently, sometimes repeatedly. It seems to be iOS 15 specific.
The app is built on SwiftUI and Combine, and the initial TabView screen consists of a LazyVStack. Views in the LazyVStack may or may not show a AVPlayer, and I'm trying to figure out if that is the root cause of this crash.
The error does not point to a line in the code. I'm unsure how to diagnose this. It's not even always reproducible, but occurs in production often.
Crash logs:
#1 (null) in static DisplayList.ViewUpdater.Platform.updateClipShapesAsync(layer:oldState:newState:) ()
#2 (null) in static DisplayList.ViewUpdater.Platform.updateStateAsync(layer:oldItem:oldSize:oldState:newItem:newSize:newState:) ()
#3 (null) in static DisplayList.ViewUpdater.Platform.updateItemViewAsync(layer:oldItem:oldState:newItem:newState:) ()
#4 (null) in specialized closure #1 in DisplayList.ViewUpdater.ViewCache.updateAsync(oldItem:oldState:newItem:newState:tag:updateView:) ()
#5 (null) in specialized DisplayList.ViewUpdater.ViewCache.updateAsync(oldItem:oldState:newItem:newState:tag:updateView:) ()
#6 (null) in DisplayList.ViewUpdater.updateItemViewAsync(oldItem:oldState:newItem:newState:) ()
#7 (null) in DisplayList.ViewUpdater.updateInheritedViewAsync(oldItem:oldParentState:newItem:newParentState:) ()
#8 (null) in DisplayList.ViewUpdater.updateAsync(oldList:oldParentState:newList:newParentState:) ()
#9 (null) in DisplayList.ViewUpdater.updateInheritedViewAsync(oldItem:oldParentState:newItem:newParentState:) ()
#10 (null) in DisplayList.ViewUpdater.updateAsync(oldList:oldParentState:newList:newParentState:) ()
#11 (null) in DisplayList.ViewUpdater.updateInheritedViewAsync(oldItem:oldParentState:newItem:newParentState:) ()
#12 (null) in DisplayList.ViewUpdater.updateAsync(oldList:oldParentState:newList:newParentState:) ()
#13 (null) in closure #1 in closure #1 in DisplayList.ViewUpdater.renderAsync(to:time:version:maxVersion:) ()
#14 (null) in DisplayList.ViewUpdater.renderAsync(to:time:version:maxVersion:) ()
#15 (null) in protocol witness for ViewRendererBase.renderAsync(to:time:version:maxVersion:) in conformance DisplayList.ViewUpdater ()
#16 (null) in DisplayList.ViewRenderer.renderAsync(to:time:nextTime:version:maxVersion:) ()
#17 (null) in _UIHostingView.renderDisplayList(_:asynchronously:time:nextTime:version:maxVersion:) ()
#18 (null) in ViewRendererHost.renderAsync(interval:) ()
#19 (null) in _UIHostingView.displayLinkTimer(timestamp:isAsyncThread:) ()
#20 (null) in DisplayLink.displayLinkTimer(_:) ()
#21 (null) in @objc DisplayLink.displayLinkTimer(_:) ()
#22 (null) in CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) ()
#23 (null) in display_timer_callback(__CFMachPort*, void*, long, void*) ()
#24 (null) in __CFMachPortPerform ()
#25 (null) in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ ()
#26 (null) in __CFRunLoopDoSource1 ()
#27 (null) in __CFRunLoopRun ()
#28 (null) in CFRunLoopRunSpecific ()
#29 (null) in -[NSRunLoop(NSRunLoop) runMode:beforeDate:] ()
#30 (null) in -[NSRunLoop(NSRunLoop) run] ()
#31 (null) in static DisplayLink.asyncThread(arg:) ()
#32 (null) in @objc static DisplayLink.asyncThread(arg:) ()
#33 (null) in __NSThread__start__ ()
#34 (null) in _pthread_start ()
#35 (null) in thread_start ()