Jonathan在此建议:清除所有目标并清空缓存的Xcode Includes .xib files that have been deleted!将解决Xcode的问题,包括已删除的.xib文件,但我找不到在Xcode 4中清空缓存的方法。
如何在Xcode 4中做到这一点?
答案 0 :(得分:499)
Command-Option-Shift-K清除构建文件夹。更好的是,退出Xcode并手动清除〜/ Library / Developer / Xcode / DerivedData 。删除所有其内容,因为有一个错误,Xcode将运行某个地方的旧版本项目。 (Xcode 4.2将显示Derived Data文件夹:选择Window> Organizer并切换到Projects选项卡。单击Derived Data文件夹名称右侧的右箭头。)
在模拟器中,选择iOS模拟器>重置内容和设置。
最后,为了完整起见,您可以删除 / var / folders 的内容;一些缓存也在那里发生。
警告:删除 / var / folders 可能会导致问题,您可能需要在执行此操作后修复或重新安装操作系统。
编辑:我刚刚了解到,如果你害怕与 / var / folders / 进行斗争,可以使用终端中的以下命令以更有针对性的方式删除:
rm -rf "$(getconf DARWIN_USER_CACHE_DIR)/org.llvm.clang/ModuleCache"
编辑:对于某些与Swift相关的问题,我发现删除〜/ Library / Caches / com.apple.dt.Xcode 很有用。当你这样做时,你会失去很多,比如你下载的文档文档集的备用副本,但它是值得的。
答案 1 :(得分:63)
Command-Option-Shift-K应该这样做。或者,转到产品菜单,按选项键,现在选项“清洁”将更改为“清洁构建文件夹...”选择该选项。
答案 2 :(得分:17)
除了命令+选项+ shift + K之外,我找到了另一种方法。在XCode 4.2中,有一个可以从右上角图标打开的组织器。您可以从那里清除所有存档和已保存的项目选项。这有助于我的情况(我在mainBundle中看到旧的删除文件)。
答案 3 :(得分:16)
除了执行以下操作之外,如果您的应用的Storyboard文件已本地化,则可能会遇到此问题。首先,做以下各项:
DerivedData
文件夹
警告:另一步是删除 / var / folders 的内容(不是整个文件夹)。请注意,这可能会导致您的OSx安装出现严重问题,并且您可能无法再启动到OSx 。在这种情况下,唯一的选择是从恢复控制台重新安装OSx。
最终对我有用的是重新生成故事板本地化文件并删除英语本地化(由于Base Locale是英语,因此不需要)。要重新加载Storyboard字符串see this answer on StackOverflow。
我注意到我的Storyboard的非文本部分正在更新,但不是本地化的文本。如果您的应用中有本地化,我建议您检查以确保您的本地化更新(即使它们是.strings
个文件)。
答案 4 :(得分:9)
我一直在拔头发,因为我觉得我有同样的问题。构建应用程序时,我的iPhone上的结果与模拟器上的结果不同。
问题是我以某种方式制作了MainStoryboard.storyboard文件的本地化版本。因此,当我在手机上运行应用程序时,它显示了丹麦版本......模拟器显示了英文版本。
是的,我是新人! :)
答案 5 :(得分: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/
错误。
答案 6 :(得分:4)
当我打开文档窗口时,我遇到了一些Xcode 5.1崩溃的问题。
我不确定原因,因为我也在更新docsets,而我打开了窗口。
好吧,在Xcode 5中,modules目录现在位于派生数据文件夹中,由于显而易见的原因我没有删除。我删除了〜/ Library / Developer / Xcode / DerivedData / ModuleCache 和〜/ Library / Preferences / com.apple.Xcode.plist 的内容,然后似乎一切在我重新启动Xcode之后工作。
答案 7 :(得分:1)
我的Xcode 10.2和Mojave的“ DerivedData”在这里:
MacHD /用户/ [MyUser] /库/开发人员/ Xcode
答案 8 :(得分:0)
你必须小心xib文件。我尝试了以上所有内容,对我来说没有任何作用。我正在使用在xib中定义的自定义UIButton,并意识到它可能与我在那里分配了没有以编程方式更改的属性这一事实有关。如果您在那里定义了图像或文本,请将其删除。当我这样做时,我的程序化更改开始生效。
答案 9 :(得分:0)
这是我的shell script solution,它为Xcode 4,5和6删除派生数据并清理项目的缓存资产。
有时,只需在派生数据目录上调用rm -rf会留下一两个延迟文件,但我的脚本会循环,直到所有文件都被删除。
答案 10 :(得分:0)
我几乎尝试了一切,但无法帮助,是什么帮助我禁用SIP(系统集成保护)它的工作原理,我不知道什么时候发生,但系统文件在某处混淆并导致这种情况...... 虽然明显禁用这个可能存在风险
这是如何
1.在Mac上打电源并按住[command] + [R]键以访问恢复分区。
2.从Recovery Partition中,单击菜单栏中的Utilities,然后选择Terminal。
3.在Terminal中输入以下命令,然后按Enter键执行: csrutil禁用
4.一旦命令执行完毕,退出终端并重启Mac。当您重新登录OS X时,SIP将被禁用。
答案 11 :(得分:0)