Crash reports are fine, but when debugging, I want to know the reason for termination and please don't make me go hunting for it.
My app needed to use the camera for barcode scanning, but I had neglected to add the "Privacy - Camera Usage Description" to my info.plist
The stacktrace, however, made no mention of this.
When I went to Xcode / Devices / View Device Logs and found my crash, however, this key nugget popped-out at me:
EXC_CRASH (SIGKILL) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Termination Reason: TCC, This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
OK, so now I know the problem is about permissions instead of sunspot activity, but could Mono not have told me that in the Output Window's stack trace?
Here is the stacktrace - no mention of the root cause:
2017-11-15 09:21:06.601 TouchContainer[573:152293] critical: Native stacktrace: 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 0 TouchContainer 0x00000001060f6d8c TouchContainer + 21065100 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 1 libsystem_platform.dylib 0x0000000186727b60 _sigtramp + 52 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 2 libsystem_kernel.dylib 0x0000000186613100 <redacted> + 100 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 3 libsystem_kernel.dylib 0x000000018661312c system_set_sfi_window + 0 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 4 TCC 0x000000018956599c <redacted> + 0 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 5 TCC 0x00000001895658bc <redacted> + 0 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 6 TCC 0x000000018956913c <redacted> + 316 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 7 libxpc.dylib 0x0000000186765a0c <redacted> + 60 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 8 libxpc.dylib 0x0000000186765948 <redacted> + 88 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 9 libdispatch.dylib 0x0000000186485758 <redacted> + 16 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 10 libdispatch.dylib 0x000000018649d060 <redacted> + 324 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 11 libdispatch.dylib 0x000000018648bf54 <redacted> + 400 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 12 libdispatch.dylib 0x00000001864921c8 <redacted> + 596 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 13 libdispatch.dylib 0x0000000186491f10 <redacted> + 120 2017-11-15 09:21:06.602 TouchContainer[573:152293] critical: 14 libsystem_pthread.dylib 0x000000018672b130 _pthread_wqthread + 1268 2017-11-15 09:21:06.603 TouchContainer[573:152293] critical: 15 libsystem_pthread.dylib 0x000000018672ac30 start_wqthread + 4 2017-11-15 09:21:06.603 TouchContainer[573:152293] critical: ================================================================= Got a SIGABRT while executing native code. This usually indicates a fatal error in the mono runtime or one of the native libraries used by your application. =================================================================