问题描述

在Xcode中运行应用时,提示:
/Users/fangjunyu.com/Documents/iOS开发/iOS应用-存钱猪猪/存钱猪猪/piglet.xcodeproj One of the paths in DEVELOPMENT_ASSET_PATHS does not exist: /Users/fangjunyu.com/Documents/iOS开发/iOS应用-存钱猪猪/存钱猪猪/piglet/Preview Content

这个错误表明 Xcode 项目的 DEVELOPMENT_ASSET_PATHS 配置中包含了一个无效路径:/Users/fangjunyu.com/Documents/iOS开发/iOS应用-存钱猪猪/存钱猪猪/piglet/Preview Content。
该路径是用于开发资产(例如 SwiftUI 的预览内容)的,但文件夹 Preview Content 不存在。
原因分析
1、SwiftUI 的预览内容配置问题
SwiftUI 会自动生成或使用一个名为 Preview Content 的文件夹来存储预览资产(如图片、JSON 文件等)。如果该文件夹被意外删除或未创建,会导致错误。
2、Xcode 配置中的路径失效
项目中的 DEVELOPMENT_ASSET_PATHS 配置引用了一个不存在的路径。
3、迁移或重命名文件夹
如果项目目录结构被手动更改(如重命名文件夹或移动文件),会导致路径失效。
主要的原因,是因为梳理Xcode文件时,发现这个Preview Content文件夹里面是空的内容,因此直接删除了,就导致关联的字段产生了报错。
解决方案
1、检查项目路径
打开 Finder,导航到项目目录:
/Users/fangjunyu.com/Documents/iOS开发/iOS应用-存钱猪猪/存钱猪猪/piglet/
检查是否存在名为 Preview Content 的文件夹。
如果不存在,手动创建一个空的 Preview Content 文件夹。
2、检查 Xcode 配置
打开项目设置:
1、点击项目文件(piglet.xcodeproj)。
2、切换到 Build Settings。
3、在搜索栏中输入 DEVELOPMENT_ASSET_PATHS。

4、检查路径是否包含 /piglet/Preview Content。
如果该路径不存在:
1、点击路径并删除失效的条目。
2、或将其更改为有效的路径。
3、更新项目路径
如果项目的目录结构发生了变更,你可以更新 Xcode 中的路径:
1、打开项目中的 project.pbxproj 文件(建议备份后再编辑)。
2、搜索 DEVELOPMENT_ASSET_PATHS。
3、将引用的无效路径更改为有效路径。
4、删除预览引用(如果不需要)
如果不需要 Preview Content:
1、打开 Build Settings。
2、删除 DEVELOPMENT_ASSET_PATHS 中的无效条目。
5、清理并重新构建项目
1、清理缓存:Shift + Command + K。
2、重新构建项目:Command + B。
总结
这个错误主要与 SwiftUI 的开发资产路径有关。通过检查并修复 Preview Content 文件夹及其路径,问题得到解决。如果不需要预览功能,也可以直接删除相关配置来避免错误。
最后的实现方案选择的是删除预览引用:

选中配置的Preview Content文件夹,点击底部的删除按钮。

删除后,引用字段的内容为空。重新运行应用,不再报错。
