据crashlytics报道,我们的iOS应用程序崩溃了:
崩溃: XPC :尝试发送一条消息,期望收到答复(com.apple.networking.connection.0x46bf35a0)
堆栈跟踪是:
Thread : Crashed: XPC API Misuse: Attempt to send a message expecting a reply to (com.apple.networking.connection.0x46bf35a0)
0 libxpc.dylib 0x35cc534a _xpc_api_misuse + 41
1 libsystem_c.dylib 0x35ba49e5 __strlcpy_chk + 48
2 libxpc.dylib 0x35cb5f75 _xpc_serializer_create + 158
3 libxpc.dylib 0x35cb5ea1 xpc_connection_send_message + 60它发生在iOS 9.0.2下的iPhone 5上。我们无法再现崩溃,也不知道如何开始调试/修复。看来我们是not alone with this。
也许这里有人有什么想法。
发布于 2015-10-20 17:39:59
在这个问题上有很多开放的bug: rdar://21832853是最初的bug,rdar://22860899和rdar://22874333都在OpenRadar上。
我认为这是由SCNetworkReachability中一些基于C的网络代码造成的,它试图与iOS VPN系统(大概是为了确定一个系统是否连接)或与用于NSURLSession请求的后台守护进程进行对话,但我不确定。不幸的是,CFNetwork不是开源的,10.11的lib分派源(尽可能接近iOS 9)还没有发布,所以我甚至无法猜出网络代码做错了什么。
不管怎样,我不认为你能解决这个问题。尽管如此,假设我的根本原因是正确的,您可能可以通过运行Network调理器和反复打开或关闭飞机模式来复制它。不管怎样,值得一试。
发布于 2022-02-27 01:19:27
我认为这可能是您的代码错误,每次应用程序关闭时,我都会遇到同样的问题,我有一个破坏函数,它释放xpc连接如下:
void XpcComm::destory()
{
std::lock_guard< std::mutex > lock( m_Lock );
if ( m_xpcConn != nullptr )
{
xpc_connection_cancel( m_xpcConn );
xpc_release( m_xpcConn );
}
m_xpcConn = nullptr;
}我把它更新到
void XpcComm::destory()
{
std::lock_guard< std::mutex > lock( m_Lock );
if ( m_xpcConn != nullptr )
{
xpc_connection_cancel( m_xpcConn );
xpc_release( m_xpcConn );
m_xpcConn = nullptr;
}
}在关闭应用程序时,它修复了xpc误用崩溃。
https://stackoverflow.com/questions/33235800
复制相似问题