环境
- Mac OS 11.0.1
- Xcode 12.4
- iOS 14.3
- Watch OS 7.3.2
起始
早上写了大概的今日计划后, 打开Xcode一会后发现会未响应, 强制关闭后重新启动发现问题依旧存在,此时怀疑与项目有关, 关闭项目创建空工程后发现依然会奔溃, 检查了CPU运行情况以及内存占用发现并没有满载,此时怀疑到应该是Xcode本身的问题,感觉到了问题的棘手。
探索
在以 Xcode 未响应 为关键词查询后发现网上的大致解决的方案如下:
-
1.执行如下指令
cd ~/Library/Autosave\ Information/
rm -rf Unsaved\ Xcode*
给出的理由是当Xcode强制退出时,会向改路径写入未保存的文件用于下次打开时不会丢失,而删除的原因是执行这一过程时出错,因为并没有强制退出且空项目也会复现所以排除。
查询后得知 Autosave Information 主要是用来保存锁定文件的, 锁定文件表明进程在强制退出或崩溃时正在使用它们。通常,当系统进程修改文件时,它们会为其创建一个锁定文件,以便其他进程无法访问它。当进程退出或停止修改所述文件时,这些文件将被删除。 例如这篇博客未保存时就会在该文件夹下生成临时文件 保存后该文件会删除。
-
2.清空 ~/Library/Developer/Xcode/DerivedData 由于与某个特定工程没有关系所以没有尝试
-
3.回退Xcode版本 耗时太长所以排除
初步解决方案
随后再该篇问答中找到了答案
题主的解决方案是更新Xcode版本至 12.5 太过耗时所以当做没有办法的办法最后尝试
在这个回答中发现竟然与i Watch有关系,且以已知问题发布在官方的发布说明中。
答主给出的解决方案是: 关闭手表电源或者取消与iPhone配对。
尝试后确实有效, 但是这样手表存在的意义在哪里?
继续探索
官方解决办法如下:
- 退出Xcode
- 断开 iOS 设备连接 (如果使用无线调试 请在设备管理列表取消勾选)
- 重启Mac
- 启动Xcode 打开 Devices and Simulators
- 解锁手机以及手表
- 使用USB数据线连接电脑
- 检查是否有配对请求
- 检查是否会有设备报错
根据该步骤发现问题依然会重现, 当时的想法是二手手表不知道能卖多少钱。
然后想起手表系统昨晚有升级过, 查询后下载对应手表系统 Device support 放到对应路径后重启Xcode 问题解决。
总结:
解决方案如下
- 下载Watch OS对应Device Support 下载地址
- 放入路径
/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/DeviceSupport
下 - 执行如上5 - 8步骤