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

nor*_*000 14 xcode caching ios xcode5

是否有我可以遵循的程序,包括在终端中运行脚本,删除派生数据文件夹下的所有文件并可靠地清理项目?

有时,项目的资产并不总是更新到我的模拟器或设备.这主要是试验和错误,当我发现旧资产进入测试版本时,为时已晚,更不用说令人尴尬了!

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

我也检查了这个问题,但我不想在Organizer中浪费时间,如果我不是绝对需要:如何在Xcode6中"删除派生数据"?

我已经查看了其他帖子,但没有发现任何可以解决可靠清理项目并节省脚本时间的问题.

She*_*mus 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
}
Run Code Online (Sandbox Code Playgroud)

我希望有所帮助,快乐编码!

  • 你为什么需要一个脚本?只是`rm -rf~/Library/Developer/Xcode/DerivedData/*`. (11认同)
  • 只需在删除目录下的文件之前退出Xcode. (4认同)