Thanks for the latest crash reports. It turns out that they were still rendering incorrectly. I tracked that down to a bug in the DevForums platform (r. 132309185). I’ve did some minor edits on your post to work around that bug.
And so, back to your crash reports, which I’ll look at in groups.
In the first crash report I see this:
Last Exception Backtrace:
0 CoreFoundation … __exceptionPreprocess + 160
1 libobjc.A.dylib … objc_exception_throw + 56
2 borne … 0x104800000 + 1919724
3 borne … 0x104800000 + 1919792
4 CoreFoundation … __NSDICTIONARY_IS_CALLING_OUT_TO_A_BLOCK__ + 16
5 CoreFoundation … __NSDictionaryEnumerate + 628
6 borne … 0x104800000 + 1919292
7 borne … 0x104800000 + 1911312
8 borne … 0x104800000 + 1910916
9 borne … 0x104800000 + 1915068
10 libdispatch.dylib … _dispatch_call_block_and_release + 24
This indicates that your ap crashed due to an unhandled language exception. That exception was throw directly by your app, in frame 2, so I’ve no insight into what caused it. You need to symbolicate your crash report to identify the code in frame 2. For advice on how to do that, see Adding identifiable symbol names to a crash report.
Your second and third crash reports are virtually identical, so I’m going to focus on the second.
The immediate cause of the crash is this:
Exception Type: EXC_CRASH (SIGSEGV)
Exception Codes: 0x0000000000000000, 0x0000000000000000
This shows that your app crashed because it dereferenced a NULL
pointer. Normally the next step is to look at the backtrace of the crashing thread:
Thread 1 name: JavaScriptCore bmalloc scavenger
Thread 1 Crashed:
0 libsystem_kernel.dylib … __psynch_cvwait + 8
1 libsystem_pthread.dylib … _pthread_cond_wait$VARIANT$mp + 1232
2 libc++.1.dylib … std::__1::condition_variable::wait(std::__1::unique_lock&) + 24
3 NativeScript … void std::__1::condition_variable_any::wait>(std::__1::unique_lock&) + 108
4 NativeScript … bmalloc::Scavenger::threadRunLoop() + 160
5 NativeScript … bmalloc::Scavenger::threadEntryPoint(bmalloc::Scavenger*) + 12
6 NativeScript … void* std::__1::__thread_proxy>, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*…
7 libsystem_pthread.dylib … _pthread_start + 104
8 libsystem_pthread.dylib … thread_start + 8
This is problematic because that thread is parked in the __psynch_cvwait
system call. It’s very hard for a parked thread to crash in this way.
Looking through all your other threads, they seem to be similarly parked. The exception is thread 0, the main thread, which has a long and complex backtrace:
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 ??? … ???
1 CoreImage … CI::GLContext::GLContext(CI::GLContext::ShareContextInfo, CGColorSpace*, CGColorSpace*, CI::P…
2 CoreImage … +[CIContext(Internal) internalContextWithEAGLContext:options:] + 664
3 CoreImage … -[CIContext initWithOptions:] + 484
4 CoreImage … +[CIContext contextWithOptions:] + 36
5 UIKitCore … -[_UIImageCIImageRenderer _updateContextForHDRRendering:] + 224
6 UIKitCore … -[_UIImageCIImageRenderer renderContent:usingHDR:withEffects:] + 196
7 UIKitCore … -[UIImageView _setImageViewContentsForCIImageBackedImage:] + 344
8 UIKitCore … -[UIImageView _setImageViewContents:] + 368
9 UIKitCore … -[UIImageView _updateState] + 524
10 UIKitCore … -[UIImageView _setViewGeometry:forMetric:] + 328
11 NativeScript … ffi_call_SYSV + 68
12 NativeScript … ffi_call_int + 1172
13 NativeScript … ffi_call + 56
14 NativeScript … NativeScript::FunctionWrapper::call(JSC::ExecState*) + 592
…
This is exactly the sort of backtrace I’d typically see for a SIGSEGV
.
It’s seems very likely that something about your third-party runtime is disrupting the Apple crash report. I see this regularly in apps that use their own crash reporter. That’s something I specifically recommend against, as I explain in Implementing Your Own Crash Reporter.
Without a trustworthy crash report, it’ll be hard to make progress on this issue.
Oh, one last thing:
P.S : I formatted ips file in valid JSON format
Please don’t do that. The weird .ips
format is what’s expected by our crash reporting tools. If you fix it, it confuses those tools )-:
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"