如何在Xcode 5及更高版本中删除派生数据和清理项目?

15

是否有一种流程,包括在终端中运行脚本,以删除源数据文件夹下的所有文件并可靠地清理项目?

有时,项目的资源不会始终更新到我的模拟器或设备上。这主要是试错,当我发现旧的资源进入测试构建时,为时已晚,更何况还很尴尬!

我查看了这个问题,但它似乎有点过时: 如何清空缓存并清除所有目标Xcode 4

我也查看了这个问题,但如果不是必须的话,我不想在组织者中浪费时间:如何在Xcode6中“删除派生数据”?

我查看了其他帖子,但没有找到解决可靠清理项目和节省时间的脚本的方法。

2个回答

22

这基本上是一个两到三步的过程,用于清除项目中所有的缓存资源。

当然,如果有人使用这种技术,而项目仍然没有显示更新的资源,请添加答案!肯定有人遇到了需要我没有包含的步骤的情况。

  1. 使用 Shift-Cmd-K 清理您的项目
  2. 通过调用在您的 bash 配置文件中定义的 shell 脚本(详见下文)来删除派生数据
  3. 从模拟器或设备卸载应用程序。
  4. 对于某些类型的资源,您可能还需要重置模拟器(在 iOS 模拟器菜单下)

要调用下面的 shell 脚本,只需在终端中输入函数名称(在此示例中为“ddd”),假设它在您的 bash 配置文件中。一旦保存了 bash 配置文件,请不要忘记使用 source 命令更新终端环境(如果保持打开状态):
source ~/.bash_profile

ddd() {
    #Save the starting dir
    startingDir=$PWD

    #Go to the derivedData
    cd ~/Library/Developer/Xcode/DerivedData

    #Sometimes, 1 file remains, so loop until no files remain
    numRemainingFiles=1
    while [ $numRemainingFiles -gt 0 ]; do
        #Delete the files, recursively
        rm -rf *

        #Update file count
        numRemainingFiles=`ls | wc -l`
    done

    echo Done

    #Go back to starting dir
    cd $startingDir
}

我希望这能有所帮助,愉快地编写代码!


14
为什么需要脚本?只需执行 rm -rf ~/Library/Developer/Xcode/DerivedData/* - OrangeDog
有时候,一个或多个文件被锁定或具有其他属性,阻止它们立即被删除。脚本会检查这一点,并重试直到成功或被取消。此外,在终端中键入ddd比箭头返回到我的历史记录中的最后一个rm命令,或者键入rm命令要快得多。 - Sheamus
4
在删除目录下的文件之前,请先退出Xcode。 - DawnSong

1

删除Xcode中派生数据的另一种方法是通过删除派生数据文件夹。以下是一个视觉教程,展示了如何轻松完成此操作而不使用命令行:https://www.youtube.com/watch?v=ueEMGXKDBAc


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接