在Xcode中删除类文件会导致编译错误:“<unknown>:0:错误:没有这样的文件或目录”

时间:2016-05-17 02:23:35

标签: ios objective-c xcode swift

我在Swift / Objective-C桥接iOS项目上使用Xcode 7.3。前段时间,我在名为Ping的关联文件中创建了一个名为Ping.swift的类。然而,今天,该项目的另一位工程师决定我们不再需要这个文件/类,所以他删除了它并将他的更改推送到git。这对他来说很好。但是,在拉动之后,它不会为我编译。相反,它产生了这个相当无趣的编译错误:

<unknown>:0: error: no such file or directory: '/Users/chris/Sites/glanceios/Glance/Glance/Controllers/utils/Ping.swift'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1

是的,我已经尝试删除派生数据,然后清理,重新创建文件到同一个地方,烧圣人,面向西方做一场雨舞等等......

仅供参考,this questionthis onethis one都不会有帮助。即使它们各自都有相同的Xcode错误消息,但它们的原因都有微妙的不同,因此它们的答案不适用。

2 个答案:

答案 0 :(得分:2)

尝试@theonethecallneo建议的以下内容后(通过rm rf手动删除派生数据,git reset - hard,并遵循Xcode中包含HARD CLEAN的重要步骤here(与软清洁相比)一直这么做)我仍然没有运气

但是其他的东西@theonetheycallneo让我失望了。 neo建议我使用备用IDE搜索我的项目以引用此类。我这样做了,并在工作区找到了它们。 Ahaha它必须与Pods有关。

因此,pod构建必须挂在对不再存在的类/文件的引用上。以下是我从这一点开始解决的问题:

rm -rf ./Pods
rm -rf ./Podfile.lock
rm -rf ./Glance.xcworkspace
pod install

花了一段时间,但修复了它。呼。抛出一个#!/bin/bash,你得到了一个方便的脚本,顺便说一句。

答案 1 :(得分:1)

确保{gid repo。

中的./Glance/Glance/Helpers/Ping.swift位于您的本地目录中

enter image description here

尝试

git reset --hard HEAD

打开Sublime中的所有文件或您首选的原始文本编辑器,然后搜索controllers/utils/Ping.swift并删除它们。有时项目文件中的错误引用会延迟。

确保使用rm -rf ./{Derived-Data}/*实际删除了派生数据文件夹(有时Xcode的缓存只会在其他程序/插件擦除目录时重新填充。)

有时Xcode需要强制退出才能将其所有文件引用分开。

向Apple Gods祈祷。