删除图片文件夹后Xcode 9.2预构建停滞无法完成问题求助
关于Xcode删除SpriteKit图片文件夹后预构建卡住的问题分析
这种情况大概率不是Xcode的核心Bug,更可能是项目缓存残留或者资源引用没清理干净导致的预构建死锁,我来给你拆解下可能的原因和解决办法:
缓存残留拖慢预构建:Xcode的预构建严重依赖Derived Data里的缓存文件,你删除图片文件夹后,缓存没同步更新,导致预构建过程中一直死磕着找那些已经不存在的资源。解决起来很简单:
- 先试试Xcode菜单栏里的
Product->Clean Build Folder(快捷键Shift+Command+K),清一下构建缓存 - 如果还不行,就手动删Derived Data:打开
Xcode->Settings->Locations,找到Derived Data的路径,打开文件夹后删掉对应项目的缓存文件夹就行
- 先试试Xcode菜单栏里的
资源引用没彻底清干净:你删掉了文件夹,但项目的配置文件里可能还留着这些图片的引用,预构建时Xcode一直在解析无效引用,自然卡着不动。可以这么排查:
- 先在项目导航器里扫一遍,看看Assets.xcassets或者其他资源目录里有没有残留的图片引用
- 要是找不到,就右键项目文件(
.xcodeproj),选Show Package Contents,打开project.pbxproj文件,搜索已删除图片的文件名,手动删掉相关的引用条目(操作前一定要备份项目!)
SpriteKit场景的隐藏依赖:如果你的
.sks场景文件里还挂着已删除图片的纹理引用,预构建加载场景时就会卡住。可以这么处理:- 打开对应的
.sks文件,逐个检查节点的纹理设置,把指向已删除图片的纹理都移除 - 要是不确定哪个场景有问题,先临时换成空白场景试试,看预构建还卡不卡
- 打开对应的
如果上面的方法都试过还是卡,那可能是Xcode的边缘场景Bug了——建议先更到最新版Xcode试试,或者在新的空白项目里复现这个操作,如果新项目也卡,那就可以通过Xcode的Report a Bug功能给Apple反馈了。
内容的提问来源于stack exchange,提问作者E. Huckabee




