We have been trying to run our app to prepare for iOS 16 but so far no luck. The app runs perfectly in Xcode 13. Also when we download the app from App Store to iOS 16 beta device, it works with no problem.
What we face with new Xcode 14 Beta 5 is the app runs till the first view controller then we get a weird error:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Application circumvented Objective-C runtime dealloc initiation for <UINavigationController> object.'
*** First throw call stack:
(
0 CoreFoundation 0x00007ff800427380 __exceptionPreprocess + 242
1 libobjc.A.dylib 0x00007ff80004dbaf objc_exception_throw + 48
2 Foundation 0x00007ff800b876ac _userInfoForFileAndLine + 0
3 UIKitCore 0x0000000124447d4e -[UIViewController dealloc] + 1475
4 UIKitCore 0x0000000124359e30 -[UINavigationController dealloc] + 389
5 libobjc.A.dylib 0x00007ff80004b6a1 _ZN11objc_object17sidetable_releaseEbb + 203
6 libobjc.A.dylib 0x00007ff80004be64 _ZN19AutoreleasePoolPage12releaseUntilEPP11objc_object + 180
7 libobjc.A.dylib 0x00007ff80004bcad objc_autoreleasePoolPop + 203
8 UIKitCore 0x00000001252e54bf -[_UIAfterCACommitBlock run] + 80
9 UIKitCore 0x00000001252e59a4 -[_UIAfterCACommitQueue flush] + 190
10 UIKitCore 0x0000000124d40730 _runAfterCACommitDeferredBlocks + 782
11 UIKitCore 0x0000000124d2eede _cleanUpAfterCAFlushAndRunDeferredBlocks + 96
12 UIKitCore 0x0000000124d64abb _afterCACommitHandler + 72
13 CoreFoundation 0x00007ff800386015 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
14 CoreFoundation 0x00007ff800380982 __CFRunLoopDoObservers + 515
15 CoreFoundation 0x00007ff800380ecd __CFRunLoopRun + 1161
16 CoreFoundation 0x00007ff800380667 CFRunLoopRunSpecific + 560
17 GraphicsServices 0x00007ff809bfc28a GSEventRunModal + 139
18 UIKitCore 0x0000000124d30621 -[UIApplication _run] + 994
19 UIKitCore 0x0000000124d354fd UIApplicationMain + 123
20 xxxxxx 0x000000010e9aa830 main + 96
21 dyld 0x00000001136e52bf start_sim + 10
22 ??? 0x00000001148c751e 0x0 + 4639716638
)
OK, So I fixed my own problem. For me it was the code in the dependency file I was using in my pods. So, simply search for
+ (void)initialize {
}
which is most possibly causing the error.