我有一个使用CocoaPods的iOS项目。一切都很顺利,直到另一个开发人员开始在同一个项目上工作。他做了一些更改(据我所知只是对代码进行了更改),并在回购中创建了一个新的分支。我已经检查了他的分支,并试图构建它,但我得到一个错误:ASLogger/ASLogger.h文件未找到。

即使我删除了整个项目,重新复制并使用“pods install .”,构建失败仍然存在。你知道问题出在哪里吗?如果你需要更多的信息,尽管问。


当前回答

我认为一个最终的解决方案是去构建设置->搜索路径->用户头搜索路径,找到你的库路径,并在Finder中通过它。确保所有路径都存在,包括导入路径。

对我来说,我的道路比教程更短。在教程中,它类似于#import <SDK/path/to/ SDK/File.h>,但事实证明它只是#import <SDK/File.h>

其他回答

我必须从git中心下载zip,并将丢失的文件拖到Finder中相应的Pod/…

维基给出了如何解决这个问题的建议:

如果Xcode找不到依赖项的头文件: 检查pod头文件是否在Pods/Headers中被正确地符号链接 并且您没有覆盖HEADER_SEARCH_PATHS(参见#1)。如果Xcode 还是找不到他们,作为最后的手段,你可以提前进口, 例如,#导入“Pods/ ssziparchvee .h”。

如果以上都不适合你,你发现这个错误,因为你刚刚切换到use_frameworks!在你的播客文件中,继续阅读:

我尝试了上面所有的解决方案,在了解到在我的特定情况下,它根本不是关于搜索头路径;当你切换到use_frameworks时!在Podfile中,你不再需要在桥接头中包含框架,事实上Xcode会抛出非常没有帮助的“unable to find header”错误。

你需要做的是删除桥接头文件中的所有导入,取而代之的是根据需要在你的个人Swift文件中使用Swift导入模块,就像你对Swift框架一样。

如果你在你的Obj-C类中使用任何框架头文件(在我的例子中,我们有一个使用FBSDK的方便类),你需要将它从本地导入更改为全局导入(这意味着将#import "Module.h"更改为#import <Module/Module.h>,当你开始键入框架名称时,它应该自动完成。在我的例子中,它是<AFNetworking/AFHTTPRequestOperationManager.h>)。

编辑:我已经了解到做一个@import模块使用伞文件,这是更安全的。

我是在Xcode 5.0的GM种子上,我不能让这些答案工作。我在SO上尝试了多个不同的关于头导入/ cocoapods的问题。

最后我找到了一个适合我的解决方案:我通过Mac AppStore升级到Xcode 5.0(安装在GM种子的顶部),现在头导入工作正常。

我的系统上还有Xcode 5的测试版,我也把它删除了。也许是这两件事的结合,但希望这能帮助到其他人。

我是团队中唯一遇到相同问题的开发人员,它对每个人都很有效,所以我意识到这必须是我的环境。我在另一个目录中尝试了同一个项目的git克隆,它编译得很完美,然后我意识到它必须是Xcode缓存的东西,为我的项目路径的某处,“某处”是DerivedData文件夹,只需删除它,并对你的项目进行干净的构建,它为我工作。

你可以获取路径,甚至在finder中打开文件夹:

Xcode -> 首选项 -> 位置 -> **派生数据