"Communication error: <OS_xpc_error:" during video recording
I record a video using my application for 4-5 minutes, each time the application shows the following message in the console and crashes.
warning: failed to load Objective-C class information from the dyld-shared cache. This will significantly reduce the quality of type information.
Communications error: <OS_xpc_error: <error: 0x19d846af0> { count = 1, contents = "XPCErrorDescription" => <string: 0x19d846e50> { length = 22, contents = "Connection interrupted" } }> iOS version: 9.1
Device: iPhone 5S, 6, and 6+.
The same thing works like a charm in another version below 9.1.
Does anyone know about this error or any permission for this?
Finally, after 3 days of sweating and finds, it turned out to be worthy.
XPC Error Description:
"XPC" is Apple's interprocess communication system (IPC). Some functionality (for example, h.264 encoding / decoding or interaction with camera equipment) is processed by a separate application - a daemon, which runs in the background all the time.
βConnection abortβ means that the IPC connection was aborted for any reason. Maybe it took too much time, maybe the time was just bad, and the daemon or your application needed to urgently do something else.
Learn more about XPC services.
Decision
Internal communication error, when your application interacts with the device hardware, such an error occurs. Wait for Apple to release a new OS update when it is available. Typically, this is due to some version of glich in the OS version for the OS.
I ran into the same issue in iOS 9.1. We downloaded the new version of iOS 9.2 and fixed it without writing a separate line of code.
Thanks.
I got this error even in the simulator. It took me a minute, but I found a complicated block saving cycle. Here my question is greatly simplified:
blockA = ^{ //do block A stuff blockB() } blockB = ^{ //do block B stuff blockA() } This seems like a simple mistake, but this application has been running for 4 years, and this particular section has been working about once a year, so it's easy to lose information about what happens in 20,000 lines. Anyway, one thing that told me that some of my variables inside another block (inside "blockA") had variables that printed memory addresses instead of values. eg,
NSString email prints to something like 0xAC08F298 , when instead it should print something like user@mail.net