【Xcode】【资源创建失败】【XCode更新最新版】XCode更新最新版,创建资源文件夹一直读取不到的问题

【Xcode】【资源创建失败】【XCode更新最新版】XCode更新最新版,创建资源文件夹一直读取不到的问题

设备/引擎:MacMini(26.3.1)/cocos

开发工具:Xcode:26.3

开发语言:NULL

开发需求:更新MAC系统,随后更新Xcode到最新版,创建新的资源文件夹(蓝色文件夹)时发现一直无法获取到文件夹内的资源,各类AI检查都无果,机缘巧合得到解答,记录一下希望能帮到大家

1.Xcode的文件夹
Xcode 中主要有两种文件夹存在形式:Group (黄色文件夹) 和 Folder Reference(蓝色文件夹)。

  1. Group (分组 ------ 默认的黄色文件夹)
    如何创建:通常在 Xcode 左侧导航栏右键选择 New Group。
    磁盘关联:现代 Xcode 中,创建一个 Group 通常也会在你的 Mac 磁盘上创建一个真实的物理文件夹,换句话说就是你这个资源的绝对路径。
    打包:当你的 App 被编译打包时,黄色文件夹仅仅起逻辑归类作用。系统会把黄色文件夹里的所有文件打平 ,全部提取出来放在 App 的根 Bundle 目录中。在最终的 App 里,这个黄色的文件夹是不存在的。
    适用场景:存放源代码文件(.swift, .m, .h)或不需要层级关系的独立资源文件。
  2. Folder Reference (文件夹引用 ------ 蓝色文件夹)
    如何创建:通常是在 Finder(访达)中建好一个文件夹,然后将其拖拽到 Xcode 项目中。在弹出的选项框中,选择 "Create folder references" 而不是 "Create groups"。你也可以在Resource右键创建Folder,然后你就可以在Finder中看见文件夹了,将资源拖拽进去就可以了。
    磁盘关联:它是对磁盘上物理文件夹的直接映射。简单说就是相对路径。
    打包:当 App 编译打包时,文件夹的完整层级结构会被保留下来。包含在内的资源在 App Bundle 中依然处于该文件夹的路径下。
    适用场景:存放网页相关资产(HTML/CSS/JS)、需要维持原始目录结构的大批量文件、或者包含容易重名的资源。

2.创建文件夹

两种方法:一种是在工程的Finder中直接创建文件夹,然后将资源放到文件夹中,最后将整个文件夹拖到Resourse(大多数情况)下;第二种就是在Xcode中的Resourse中直接右键创建文件夹,在然后将资源拖到这个文件夹就可以,第二种就是直接在Xcode中进行操作

3.属性设置

旧版Xcode通过创建时选择对应的属性就可以,再勾选上你的Target,基本就完事了,新版界面做了更换,我们以第一种创建方式为例,也就是Finder中创建,拖拽进Xcode的时候会有如下界面

按照旧版我们只要在Group以及target中选择好就可以,但是新版只做到这里你在工程里还是找不到文件夹下对应的资源,所以问题在哪呢?

4.关键设置

我们在Xcode中选中拖拽进来的文件夹,然后在Xcode 右侧属性面板(File Inspector)(如果默认关着的可以点击打开)你会看到如下的 Identity and Type的面板

新版Xcode创建好后在Build Rules默认是Apply to Each File,他还有个选项是Apply once to Folder

两者区别如下

  1. Apply to Each File(对每个文件逐一应用 ------ 默认行为)
    运行机制:Xcode 会把这个文件夹"打开",遍历里面的所有内容,并将打包或编译规则应用到里面的每一个单独的文件上。
    对资源打包的影响:如果您将这个文件夹添加到了 Copy Bundle Resources(拷贝资源)阶段,Xcode 会把文件夹里的所有资源提取出来,直接平铺(Flatten)复制到 App 的根目录下。
    最终结果:文件夹的层级结构消失了。即使您在 Xcode 里建立的是"蓝色文件夹"(Folder Reference),只要这里选了 Apply to Each File,打包后它依然会像黄色文件夹一样被打平。
    适用场景:您的文件夹里装的是源代码(.swift, .m 等),需要编译器逐个读取并编译;或者您只是为了在电脑磁盘上好管理文件,但并不关心 App 包里的真实路径。
  2. Apply once to Folder(仅对文件夹整体应用一次)
    运行机制:Xcode 会把整个文件夹视为一个不可分割的整体(原子化),只对其执行一次操作。
    对资源打包的影响:在拷贝资源时,Xcode 会把整个文件夹原封不动地直接拷贝进 App 中。
    最终结果:完整保留文件夹的层级结构。此时,您在代码里才能真正通过"路径/子目录"找到对应的文件。
    适用场景:包含网页前端资源(HTML/CSS/JS)、包含需要按目录读取的本地化图片(如 en/bg.png、zh/bg.png)、以及任何您希望保留原始目录树结构的场景。

正确选择了蓝色文件夹的界面应该如下图所示

可以看到target中是没有工程了,所以还需要手动选择一下,这样操作之后你的资源就能正常被找到了

PS:不管你用哪种方式创建资源文件夹,都需要在Identity and Type面板中进行正确的Build Rules属性选择

至此关于如何在最新版Xcode中创建资源文件夹并成功获取的问题就算解决了

希望能给大家带来一些帮助!!!有什么需要讨论交流的可以私信+评论~~~

相关推荐
William.csj2 小时前
Mac——加密压缩
macos·压缩
时空无限5 小时前
mac 如何用命令行操作 vscode 打开哪个文件夹
ide·vscode·macos
恋猫de小郭5 小时前
Android Studio Panda 3 发布,CMP 导致的 Gemini 输入问题
android·ide·flutter·ios·android studio
MarsBighead6 小时前
VSCode Python 调试故障排查:`justMyCode` 配置项引发的血案
ide·vscode·python
idolao7 小时前
Visual Studio 2026 安装教程:自定义路径+组件选择+桌面快捷方式(64位)
ide·visual studio
小镇学者7 小时前
【python】MacOS下永久配置pip镜像源
macos·pip
海参崴-7 小时前
三足鼎立:Linux、苹果macOS与微软Windows的前世今生及核心差异
linux·microsoft·macos
小江的记录本7 小时前
【Docker】 Docker 全平台部署(Linux / Windows / MacOS)与 前后端分离项目 容器化方案
java·linux·windows·http·macos·docker·容器
小镇学者7 小时前
【python】 macos 安装ffmpeg 命令行工具
python·macos·ffmpeg