【问题标题】:Xcode Copy Bundle Resources can't find filesXcode Copy Bundle Resources 找不到文件
【发布时间】:2013-09-16 21:54:19
【问题描述】:

Xcode 在我的 Copy Bundle Resources 中找不到我的 Storyboard 和 Info.plist,因此我的应用无法运行。我尝试再次添加现有文件,但它们总是以红色突出显示。我很确定这一定是本地问题,因为当我从我的另一个 Mac 上的存储库中克隆最新更新时,它的运行没有任何问题。我已经尝试重新安装 Xcode,从 Xcode/DerivedData 中删除文件,并且我还删除了 com.apple.Xcode.plist。 有人有什么想法吗?

【问题讨论】:

  • 检查 info.plist 在您的项目中是否可用,如果没有,只需添加它,检查您的两个 mac 系统的 Xcode 版本

标签: iphone ios xcode storyboard resourcebundle


【解决方案1】:

尝试重置您的模拟器,然后清理您的 App Build 文件夹

【讨论】:

  • 这确实有效....我之前尝试过几次,但不知何故现在有效 -,-
【解决方案2】:

我的经验是建议的解决方案有效,但是每当资源发生变化时清理和重新编译整个应用程序非常繁琐,尤其是对于大型项目。

因此我想出了这个解决方案,它可以在每个目录的基础上强制应用程序中的新资源,而无需清理或重新编译:

  1. 添加“运行脚本构建阶段”(编辑器 > 添加构建阶段 > 添加运行脚本构建阶段)
    1. 将以下脚本复制/粘贴到构建阶段(不要忘记在第 1 行设置实际路径):

dirsToCopy=("path1/directory1","path2/directory2")

for INPATTERN in "${dirsToCopy[@]}"; do
    INDIR=$PROJECT_DIR/$INPATTERN/*
    OUTDIR=$TARGET_BUILD_DIR/$CONTENTS_FOLDER_PATH/$INPATTERN
    cp -R $INDIR $OUTDIR
done

对于那些不习惯使用 shell 脚本的人:

  • 脚本第 1 行的路径相对于项目目录(.xcodeproj 文件所在的位置)

  • 如果需要,您可以向数组 dirsToCopy 添加更多(或更少)路径

  • 您可以更改文件模式以复制变量INDIR 定义的位置

  • 您可以通过将 for 块中最后一行脚本中的标志更改为 cp 来更改复制的完成方式(当前,由于 -R 而递归)。

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 2011-11-06
    相关资源
    最近更新 更多