XCode - iOS - <OCMock/OCMock.h> 文件未找到

Posted

技术标签:

【中文标题】XCode - iOS - <OCMock/OCMock.h> 文件未找到【英文标题】:XCode - iOS - <OCMock/OCMock.h> file not found 【发布时间】:2014-09-08 02:10:36 【问题描述】:

我有一个 ios 应用程序,我正在尝试将 OCMock 添加到其中,以便更好地对其进行单元测试。我已按照 ocmock.org 上的说明以及在其他地方找到的说明进行操作,但我仍然无法编译测试代码。

这就是我所做的

将源代码添加到我的项目目录

在我的项目中创建组以模仿我的文件系统

我选择了添加到我的测试目标的选项,因此适当地添加了框架以及库搜索路径

然后我手动将标题添加到标题搜索路径

并添加了 -ObjC 链接器标志

然后当我去导入头文件时,我得到文件未找到错误

任何想法我在这里缺少什么???

【问题讨论】:

【参考方案1】:

您有搜索路径test/libraries/OCMock。然后你有#import &lt;OCMock/OCMock.h&gt;

因为没有文件test/libraries/OCMock/OCMock/OCMock.h,所以失败。

您使用搜索路径test/libraries,或者您可以创建一个前缀目录来保存OCMock,并将搜索路径指向该位置。

我通常在实际目录之前有一个带有库名和版本号的目录。

目录test/libraries/OCMock-X.X.X 可以包含OCMock 目录。这样搜索路径仍然更具体:test/libraries/OCMock-X.X.X,您仍然使用 OCMock/OCMock.h 作为包含。

【讨论】:

非常感谢!就是这样!我今天在这上面浪费了很多时间。至于有版本号的目录,你平时是不是里面的lib也一样? 我尽量保留库的原包装。所以是的,我想应该是test/libraries/OCMock-X.X.X/libOCMock.a 酷。再次感谢。【参考方案2】:

还有一件事要检查,对于遇到此问题的任何其他人 - 我将 OCMock 从一个项目复制到另一个项目,并且一切看起来正确,但它没有找到包含文件。事实证明,即使我在 Xcode 中有正确的组,文件都被转储到一个目录中。我需要在磁盘上创建文件夹并将它们与 Xcode 中的组相关联。这里接受的答案让我知道出了什么问题(尽管通常情况下,事后看来应该很明显)。

【讨论】:

以上是关于XCode - iOS - <OCMock/OCMock.h> 文件未找到的主要内容,如果未能解决你的问题,请参考以下文章

xcode 中的单元测试(使用 GHUnit 和 OCMock)

不能在 Xcode 5.0 中使用 OCMock 2.1+ 存根类方法

IOS单元测试,OCMock

无法识别 OCMock 的头文件

使用 OCMock 静态库进行 iOS 单元测试(-ObjC 标志问题)

iOS单元測试:Specta + Expecta + OCMock + OHHTTPStubs + KIF