You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在XCode 16中构建App Bundle的结构化Resources文件夹?

在Xcode 16中保留资源层级嵌入App Bundle的解决方案

用Folder References(灰色文件夹)解决层级扁平化问题

直接用Group(蓝色文件夹)会导致资源被扁平化,必须改用Folder References:

  1. 删除项目里现有资源相关的组或文件夹,重新导入资源目录时,选Create folder references(别选Create groups),导入后文件夹显示为灰色。
  2. 这种方式下Xcode会完整保留本地资源的目录结构,构建后App Bundle的Resources里会和原目录层级一致,同名文件因为路径不同(比如Flowers/Marguerite.jpeg和Other/Marguerite.jpeg)不会触发构建冲突。

检查构建设置确保生效

如果导入灰色文件夹后还是扁平化,检查两处:

  • 项目的Build Phases → Copy Bundle Resources里,灰色文件夹得是一个整体条目,不能是里面的文件被单独列出来。
  • 去Build Settings搜ENABLE_STRICT_RESOURCE_VALIDATION,要是设成了YES,改成NO试试——严格验证模式可能会强制扁平化资源。

脚本方案的沙箱问题修复

如果非得用脚本复制资源,调整后就能绕过沙箱限制:

  1. 在Build Phases加Run Script,把它拖到Copy Bundle Resources前面执行。
  2. 用正确的路径变量写脚本:
# 先创建目标目录,避免报错
mkdir -p "$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/MyResources"
# 复制资源内容到目标路径
cp -r "$SRCROOT/MyResources/." "$TARGET_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/MyResources/"
  1. 勾选脚本的Run script in sandbox选项,确保Xcode允许这个脚本的文件操作权限。

优先用Folder References的方法,这是Xcode官方推荐的,不用额外维护脚本,稳定性更高。

内容的提问来源于stack exchange,提问作者AirXygène

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 22:08:13