Xcode 9模拟器黑屏求助:仅目标应用运行黑屏且触发Thread 1: signal SIGABRT
我之前帮开发者处理过不少Xcode 9模拟器的这类故障,结合你遇到的情况——仅目标应用黑屏、重置模拟器无效还触发Thread 1: signal SIGABRT,大概率是启动流程里的代码/配置异常,试试这些针对性的排查步骤:
优先定位SIGABRT的根源
出现Thread 1: signal SIGABRT时,别着急重启,先看调试面板的调用栈(Call Stack):找到最顶部属于你自己项目代码的那一行(不是系统框架的代码),通常会指向didFinishLaunchingWithOptions、ViewController初始化或者资源加载的代码。比如数组越界、找不到指定的资源文件、控件初始化失败这类基础错误,都会导致启动崩溃,进而表现为黑屏。彻底清理项目缓存与构建文件
旧缓存经常会引发奇怪的兼容性问题:- 关闭Xcode,通过
Xcode > Preferences > Locations找到DerivedData的路径,删掉整个文件夹; - 重新打开项目,按下
Cmd + Shift + K清理构建文件夹,再按Cmd + B重新编译; - 重启模拟器后再运行项目。
- 关闭Xcode,通过
检查模拟器的架构适配
Xcode 9对模拟器架构的要求有变化,如果你项目的Build Settings里Architectures只设置了arm64,模拟器(依赖x86_64架构)会无法正常运行:
打开项目的Build Settings,把Architectures改成Standard Architectures,或者手动添加x86_64到Valid Architectures里。排查启动相关的资源文件
黑屏也可能是启动界面或主界面加载失败:- 确认
Target > General > App Icons and Launch Images里的Launch Screen文件是正确设置的,没有被误删或路径错误; - 打开主Storyboard/XIB,检查有没有约束冲突、控件引用丢失的情况;
- 可以临时去掉Launch Screen,改用静态图片作为启动图,测试能不能正常进入应用。
- 确认
验证第三方依赖的兼容性
如果你的项目用了CocoaPods或其他第三方库,有些旧版本的库可能不兼容Xcode 9:- 尝试把第三方库更新到支持Xcode 9的最新版本;
- 暂时移除某个怀疑的库,看问题是否消失,逐步定位是哪个库引发的故障。
用空白项目验证模拟器本身
在Xcode 9里新建一个空白的Single View项目,运行到同一个模拟器上:- 如果空白项目能正常显示,说明问题在你原项目的代码/配置里;
- 如果空白项目也黑屏,那可能是Xcode或模拟器的安装有问题,尝试重新安装Xcode 9(记得备份好项目文件)。
内容的提问来源于stack exchange,提问作者UserName

