首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS中的崩溃: XPC误用

iOS中的崩溃: XPC误用
EN

Stack Overflow用户
提问于 2015-10-20 11:46:16
回答 2查看 2.2K关注 0票数 8

据crashlytics报道,我们的iOS应用程序崩溃了:

崩溃: XPC :尝试发送一条消息,期望收到答复(com.apple.networking.connection.0x46bf35a0)

堆栈跟踪是:

代码语言:javascript
复制
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

也许这里有人有什么想法。

EN

回答 2

Stack Overflow用户

发布于 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调理器和反复打开或关闭飞机模式来复制它。不管怎样,值得一试。

票数 7
EN

Stack Overflow用户

发布于 2022-02-27 01:19:27

我认为这可能是您的代码错误,每次应用程序关闭时,我都会遇到同样的问题,我有一个破坏函数,它释放xpc连接如下:

代码语言:javascript
复制
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;
}

我把它更新到

代码语言:javascript
复制
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误用崩溃。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33235800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档