如何清空缓存并清除所有目标Xcode 4及更高版本

问题描述 投票:222回答:11

Jonathan在这里建议:清除所有目标并清空缓存的Xcode Includes .xib files that have been deleted!将解决Xcode的问题,包括删除的.xib文件,但我找不到在Xcode 4中清空缓存的方法。

如何在Xcode 4中做到这一点?

xcode caching xcode4 xib
11个回答
507
投票

Command-Option-Shift-K清除构建文件夹。更好的是,退出Xcode并手动清除〜/ Library / Developer / Xcode / DerivedData。删除它的所有内容,因为有一个错误,Xcode将运行某个地方的旧版本项目。 (Xcode 4.2将显示Derived Data文件夹:选择Window> Organizer并切换到Projects选项卡。单击Derived Data文件夹名称右侧的右箭头。)

在模拟器中,选择iOS模拟器>重置内容和设置。

最后,为了完整性,您可以删除/ var / folders的内容;一些缓存也发生在那里。

警告:删除/ var /文件夹可能会导致问题,您可能需要在执行此操作后修复或重新安装操作系统。

编辑:我刚刚了解到,如果您害怕使用/ var / folders /,您可以使用终端中的以下命令以更有针对性的方式删除:

rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"

编辑:对于某些与Swift相关的问题,我发现删除〜/ Library / Caches / com.apple.dt.Xcode很有用。当你这样做时,你会失去很多,比如你下载的文档文档集的备用副本,但它是值得的。


0
投票

这是我的shell script solution,它删除派生数据并清除项目的缓存资产,用于Xcode 4,5和6。

有时,只需在Derived Data目录上调用rm -rf会留下一两个延迟文件,但我的脚本会循环,直到所有文件都被删除。


0
投票

我尝试了几乎所有但却无法帮助,是什么帮助我禁用SIP(系统集成保护)它的工作原理,我不知道什么时候发生,但系统文件在某处混淆并导致这种情况......虽然可能存在风险显然禁用这个

这是怎么回事

1.在Mac上打电源并按住[command] + [R]键以访问恢复分区。

2.从Recovery Partition中,单击菜单栏中的Utilities,然后选择Terminal。

3.在Terminal中输入以下命令,然后按Enter键执行它:csrutil disable

4.一旦命令执行完毕,退出终端并重启Mac。当您重新登录OS X时,将禁用SIP。


0
投票

当使用“数据模型”时,检查器中有一些选项可以生成类,对我来说就是这种情况,因为已经有一个具有现有名称的类。

Codegen:为我解决了。

enter image description here


64
投票

Command-Option-Shift-K应该这样做。或者,转到产品菜单,按选项键,现在选项“清洁”将更改为“清洁构建文件夹...”选择该选项。


17
投票

除了命令+选项+ shift + K之外,我找到了另一种方法。在XCode 4.2中,有一个可以从右上角图标打开的组织器。您可以从那里清除所有存档和已保存的项目选项。这有助于我的情况(我在mainBundle中看到旧的删除文件)。


16
投票

除了执行以下操作之外,如果您的应用程序的Storyboard文件已本地化,则可能会遇到此问题。首先,做以下各项:

  • 清洁构建
  • 重置模拟器
  • 重启Xcode
  • 删除〜/ Library / Developer / Xcode / DerivedData中的DerivedData文件夹
  • 重启电脑

警告:另外一步是删除/ var / folders的内容(而不是整个文件夹)。请注意,这可能会导致OSx安装出现严重问题,并且您可能无法再启动到OSx。在这种情况下,唯一的选择是从恢复控制台重新安装OSx。

最终对我有用的是重新生成故事板本地化文件并删除英语本地化(由于Base Locale是英语,因此不需要)。要重新加载Storyboard字符串,see this answer on StackOverflow

我注意到我的Storyboard的非文本部分正在更新,但不是本地化的文本。如果您的应用程序中有本地化,我建议您检查以确保您的本地化更新(即使它们是.strings文件)。


9
投票

我一直在拔头发,因为我觉得我有同样的问题。在构建应用程序时,我在iPhone上获得的结果与模拟器上的结果不同。

问题是我以某种方式制作了MainStoryboard.storyboard文件的本地化版本。因此,当我在手机上运行应用程序时,它显示了丹麦版本......模拟器显示了英文版本。

是的我是新人! :)


6
投票

要在/var/folders中删除所有派生数据和模块缓存,请使用this little ruby script

derivedDataFolder = Dir.glob(Dir.home + "/Library/Developer/Xcode/DerivedData/*")
moduleCache = Dir.glob("/var/folders/**/com.apple.DeveloperTools*")
FileUtils.rm_rf derivedDataFolder + moduleCache

这只是为我解决了fatal error: malformed or corrupted AST file: 'Unable to load module "/var/folders/错误。


4
投票

当我打开文档窗口时,我遇到了一些Xcode 5.1崩溃的问题。

我不确定它的原因,因为我也在更新docsets,而我打开了窗口。

好吧,在Xcode 5中,modules目录现在位于派生数据文件夹中,由于显而易见的原因我没有删除。我删除了〜/ Library / Developer / Xcode / DerivedData / ModuleCache和〜/ Library / Preferences / com.apple.Xcode.plist的内容,然后在重新启动Xcode后,一切似乎都有效。


1
投票

我的“DerivedData”与Xcode 10.2和Mojave在这里:

MacHD /用户/ [MYUSER] /资源库/开发/的Xcode


0
投票

您必须小心xib文件。我尝试了以上所有内容,对我来说没有任何作用。我正在使用在xib中定义的自定义UIButton,并意识到它可能与我在那里分配了没有以编程方式更改的属性这一事实有关。如果您在那里定义了图像或文本,请将其删除。当我这样做时,我的程序化更改开始生效。

© www.soinside.com 2019 - 2024. All rights reserved.