2015-01-16 17 views
12

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

有时,项目的资产并不总是被更新到我的模拟器或设备。这主要是试验和错误,当我发现一个旧资产进入测试版本时,已经太晚了,更别提尴尬了!

我看这个问题,但似乎有点过时: How to Empty Caches and Clean All Targets Xcode 4

我还检查了这个问题,但我不想在主办单位浪费时间,如果我不绝对需要:How to "Delete derived data" in Xcode6?

我已经看过其他文章,但没有找到任何解决可靠地清理项目的问题,并节省了时间与脚本。

+0

看到这一个:http://iosdevcenters.blogspot.in/2015/12/how-to-delete-derived-data-and-clean.html –

回答

23

它基本上是一个两步或三步过程,它清理所有缓存资产的项目。

当然,如果有人使用这种技术,并且项目仍然不显示更新的资产,那么请添加一个答案!外面的人肯定有可能遇到需要我不包括的步骤的情况。

  1. 清洁您与转移项目 - Cmd的 - ķ
  2. 通过调用一个shell脚本(详情如下)删除导出的数据,在您的bash配置文件
  3. 卸载的应用从定义模拟器或设备。
  4. 对于某些类型的资产,可能还需要重置模拟器(在iPhone模拟器菜单下)

要调用的shell脚本下方,只需输入在这种情况下,“DDD”输入函数名( )到你的终端,假设它在你的bash配置文件中。如果您保存您的bash的个人资料,不要忘记更新你的终端环境,如果你保持它打开,与源命令:
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 
} 

我希望帮助,编码快乐!

+9

为什么你需要一个脚本?只要'rm -rf〜/ Library/Developer/Xcode/DerivedData/*'。 – OrangeDog

+0

有时,一个或多个文件被锁定或具有一些其他属性,以防止它们被立即删除。脚本检查并重试,直到成功或取消。此外,在终端中输入ddd比箭头回到我的历史记录中的最后一个rm命令要快得多,或者输入rm命令。 – Sheamus

+3

在删除目录下的文件之前,先退出Xcode。 –

相关问题