Swift Playground关联Xcode项目后Sources文件夹构建失败
我之前也踩过Playground关联Xcode项目后找不到Sources里类的坑,给你几个实用的排查和解决思路:
检查Sources目录的结构与权限配置
先确认GameScene.swift确实在关联项目的Sources目录下,而且这个目录在Xcode里是源代码目录(不是普通文件夹)。右键点击Sources目录打开「Show File Inspector」,查看「Target Membership」是否勾选了对应的Playground目标,同时确认目录的「Location」是相对项目的正确路径,没有变成绝对路径导致Playground无法定位。清理缓存并重启Xcode
这种莫名的“未解析标识符”问题,大概率是缓存搞的鬼:- 彻底关闭Xcode和对应的Playground
- 打开终端执行以下命令清理派生数据:
rm -rf ~/Library/Developer/Xcode/DerivedData - 重新打开项目和Playground,再次运行试试
确认Playground的模块导入
如果你的Sources目录属于自定义模块,Playground可能需要显式导入才能访问里面的类。在Playground代码顶部加上:import YourProjectModuleName模块名就是你Xcode项目的名称,或者可以在项目设置的「Build Settings」里搜索「Product Module Name」找到准确名称。
检查GameScene的访问控制级别
确保GameScene类的访问级别不是private——如果是私有的,Playground根本无法访问它。正确的写法应该是:// 要么用默认的internal(不需要显式写) class GameScene: SKScene { // 类内容 } // 要么显式声明public public class GameScene: SKScene { // 类内容 }重新关联Playground与Xcode项目
如果上面的方法都没效果,可以试试断开再重新关联:- 在Playground的「File Inspector」里,取消勾选「Associated Project」
- 关闭Playground后重新打开,再重新关联到你的Xcode项目
补充:第二次报错指向系统临时目录,说明Playground编译Sources时可能生成了损坏的临时文件,清理派生数据基本能解决这类临时文件异常的问题。
内容的提问来源于stack exchange,提问作者jasonidris

