Thanks for the crash reports.
I ran these through an internal system and AFAIK these crashes are very specific to your app. That suggests one of two things:
In situation like this I normally favour the first option, but the API you’re using is fairly obscure.
The other thing about the crash reports is that they all suggest a memory management issue. A typical backtrace looks like this:
Thread 51 name:
Thread 51 Crashed:
0 libobjc.A.dylib … objc_msgSend + 8 (:-1)
1 ImageCaptureCore … __47-[ICCameraDevice remoteCameraWithFailureBlock:]_block_invoke + 188 (ICCameraDe…
2 Foundation … __NSXPCCONNECTION_IS_CALLING_OUT_TO_ERROR_BLOCK__ + 24 (NSXPCConnection.m:217)
3 Foundation … __88-[NSXPCConnection _sendInvocation:orArguments:count:methodSignature:selector:w…
4 libxpc.dylib … _xpc_connection_reply_callout + 124 (serializer.c:119)
5 libxpc.dylib … _xpc_connection_call_reply_async + 88 (connection.c:891)
6 libdispatch.dylib … _dispatch_client_callout3 + 20 (object.m:586)
7 libdispatch.dylib … _dispatch_mach_msg_async_reply_invoke + 344 (mach.c:3102)
8 libdispatch.dylib … _dispatch_lane_serial_drain + 372 (queue.c:3885)
9 libdispatch.dylib … _dispatch_lane_invoke + 436 (queue.c:3976)
10 libdispatch.dylib … _dispatch_workloop_worker_thread + 648 (queue.c:6507)
11 libsystem_pthread.dylib … _pthread_wqthread + 288 (pthread.c:2618)
12 libsystem_pthread.dylib … start_wqthread + 8 (:-1)
Frames 12 through 6 are standard Dispatch run-a-block-on-a-queue code. Frames 5 and 4 are core XPC code, processing a reply callback. Frames 3 and 2 are the NSXPCConnection
code layered on top of that. Frame 1 is a reply block within -[ICCameraDevice remoteCameraWithFailureBlock:]
. Frame 0 is the Objective-C runtime crashing. The runtime is essentially bug free, which means that the only way it can crash is if it was passed a bogus object.
That doesn’t tell us where the bogus object came from, alas. In situations like this I usually prescribe a course of the standard memory debugging tools. If you’re lucky these will make the problem more reproducible, which will allow you to debug it further.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"