我已经找到了一个解决方案,这可能不是完美的,但可以解决我的问题。
进入目标构建设置 -> 其他 Swift 标志 -> 检查添加了调试值 删除除 $(inherited) 和 -DDEBUG 之外的所有内容
删除派生数据
清理并运行
对我来说,我的观察列表中有一个表达式出了问题。在控制台中查看崩溃日志时,报告的崩溃线程上有类似于这样的内容,这就揭示了问题所在:
lldb_private::EvaluateExpressionOptions const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*, lldb_private::ValueObject*) + 619
17 com.apple.LLDB.framework 0x0000000102855f18 lldb::SBFrame::**EvaluateExpression**(char const*, lldb::SBExpressionOptions const&) + 696
18 lldb-rpc-server 0x00000001025e72e9 rpc_server::_ZN4lldb7SBFrame18EvaluateExpressionEPKcRKNS_19SBExpressionOptionsE::HandleRPCCall(rpc_common::Connection&, rpc_common::RPCStream&, rpc_common::RPCStream&) + 169
19 lldb-rpc-server 0x00000001025f8ce1 rpc_common::Connection::PrivateHandleRPCPacket(rpc_common::RPCPacket&, rpc_common::RPCPacket&, bool&) + 1553
20 lldb-rpc-server 0x00000001025fc36d Packets::ProcessPackets() + 1005
21 lldb-rpc-server 0x00000001025fbe96 Packets::ReadThread() + 214
22 lldb-rpc-server 0x00000001025fbdb9 Packets::RunReadThread(void*) + 9
23 libsystem_pthread.dylib 0x00007fff6a586109 _pthread_start + 148
24 libsystem_pthread.dylib 0x00007fff6a581b8b thread_start + 15
我遇到了同样的错误,却没有任何下一步操作的想法。我尝试了被接受的答案,但是我的项目并没有任何断点。
结果发现我有一个观察者没有移除,在我每隔几次推出/打开包含它的vc时,它最终会崩溃并显示 op 的错误。我必须启用僵尸对象才能找出哪个 vc 导致了错误。我必须手动逐行查看代码才能意识到我没有移除观察者。一旦我移除了它,一切都正常工作了。
// not removing this caused the error
playerItem?.addObserver(self, forKeyPath: #keyPath(AVPlayerItem.status),
options: [.old, .new],
context: &playerItemContext)
我遇到的问题是主项目是objC,使用Cococapods引入了Swift库,在调试Swift库时崩溃了。
解决方案:
SWIFT_ACTIVE_COMPILATION_CONDITIONS
~/.lldbinit
中。在~/.lldbinit
中删除command script import
行后,LLDB RPC服务器继续正常工作。 - Hamid Rouhani