You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode运行报错‘libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)’求助

解决Xcode中libc++abi.dylib: terminating with uncaught exception of type NSException错误

Hey,这个错误我在日常iOS/macOS开发中碰到过好多次,本质是程序抛出了未被捕获的Objective-C/Swift异常,直接导致进程终止。别慌,咱们一步步来排查定位问题:

第一步:先拿到具体的崩溃详情

默认的错误提示太笼统,你得先开启「异常断点」来捕获精准的崩溃位置和原因:

  • 打开Xcode的断点导航栏(快捷键Cmd + 8就行)
  • 点左下角的+号,选择「Exception Breakpoint」
  • 弹出的设置窗口里,保持默认就行(要是你确定是Swift或OC的问题,也可以针对性选择对应的Exception类型),点「Done」
  • 重新跑程序,这次断点会直接停在抛出异常的那行代码,而且控制台会输出详细的异常原因(比如“给某个对象发了它不认识的消息”“数组越界”“控件关联失效”之类的)

常见触发场景及解决办法

根据我处理过的大量案例,最容易触发这个错误的几个场景如下:

  • 方法调用出错:比如给某个对象发了它没有实现的方法(比如方法名拼写错了,或者对象是nil却调用了非可选方法)
    • 解决:检查崩溃行的对象有没有成功初始化,方法名和代码里的定义是不是完全一致
  • UI控件关联失效:Storyboard/XIB里的IBOutlet/IBAction没正确绑到代码,或者绑定的对象已经被提前释放了
    • 解决:打开Storyboard,选中控件看右侧的连接面板,删掉无效的关联,重新正确绑定
  • 数组/集合操作越界:比如访问了数组不存在的索引,或者往不可变集合里加元素
    • 解决:检查集合操作的代码,确保索引在合法范围内,修改集合时确认用的是可变类型(比如NSMutableArray而不是NSArray)
  • 资源文件找不到:比如加载图片、本地文件时,文件名拼写错了,或者文件没加到项目的Target里
    • 解决:核对代码里的文件名和实际资源文件名,再去Xcode的「Build Phases」->「Copy Bundle Resources」里确认文件已经添加进去
  • 权限没配置:比如访问相机、相册但没在Info.plist里加对应的权限描述
    • 解决:打开Info.plist,添加对应的权限键(比如NSCameraUsageDescription),并填写合理的描述文本

额外排查小技巧

要是开了异常断点还是找不到问题,可以试试:

  • 仔细看Xcode控制台的完整输出,崩溃前一般会有类似*** Terminating app due to uncaught exception 'XXX', reason: 'XXX'的详细信息,这才是定位问题的核心
  • 检查AppDelegate或SceneDelegate里的启动代码,很多初始化错误都会在启动阶段触发这个崩溃

内容的提问来源于stack exchange,提问作者Shree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:38:49