iOS 9:崩溃 - [_ NSXPCDistantObject methodSignatureForSelector:]

bca*_*tle 27 ios nsurlsession ios9

我收到一个奇怪的错误:

致命异常:NSInvalidArgumentException*** - [_ NSXPCDistantObject methodSignatureForSelector:]:没有为名为com.apple.nsurlsessiond的服务的连接连接设置协议"

这个问题似乎只发生在iOS 9上.根据堆栈跟踪,错误是由调用触发的-[UIApplication _sendWillEnterForegroundCallbacks].

Thread : Fatal Exception: NSInvalidArgumentException
0  CoreFoundation                 6485512008 __exceptionPreprocess
1  libobjc.A.dylib                6833323904 objc_exception_throw
2  CoreFoundation                 6485511824 -[NSException initWithCoder:]
3  Foundation                     6500536092 -[_NSXPCDistantObject methodSignatureForSelector:]
4  CoreFoundation                 6485526892 ___forwarding___
5  CoreFoundation                 6484495532 _CF_forwarding_prep_0
6  CoreFoundation                 6485141004 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__
7  CoreFoundation                 6485138988 _CFXRegistrationPost
8  CoreFoundation                 6485138348 ___CFXNotificationPost_block_invoke
9  CoreFoundation                 6485554212 -[_CFXNotificationRegistrar find:object:observer:enumerator:]
10 CoreFoundation                 6484354836 _CFXNotificationPost
11 Foundation                     6500543948 -[NSNotificationCenter postNotificationName:object:userInfo:]
12 UIKit                          6577878356 -[UIApplication _sendWillEnterForegroundCallbacks]
   continues ... 
Run Code Online (Sandbox Code Playgroud)

所以看起来当应用程序进入前台时,一些观察者注册尝试nsurlsessiond通过RPC 重新连接并失败?我使用后台传输会话NSURLSession,但是我无法重现这个,所以我不确定它是否相关.

有没有人见过这个问题?有什么办法可以解决吗?

zh.*_*zh. 11

看起来像这里描述的iOS中的错误:https://forums.developer.apple.com/thread/45651#140745

AFAICT此崩溃是由NSURLSession的后台会话支持引起的.这会将工作传递给它的守护进程(nsurlsessiond)使用NSXPCConnection(不是iOS SDK的一部分,而是OS X上的公共API,所以你可以在那里阅读它).NSXPCConnection具有中断连接的概念,即客户端和服务器之间的IPC连接已经破坏但可以重新建立.与所有NSXPCConnection客户端一样,NSURLSession的后台会话支持必须处理这些中断.唉,这样做有一个错误.此错误是一种竞争条件,表现为此崩溃.我们希望在未来的操作系统版本中修复此问题,但我无法分享任何具体细节.