首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将OCHamcrest添加到IOS项目中

将OCHamcrest添加到IOS项目中
EN

Stack Overflow用户
提问于 2011-06-19 23:23:20
回答 2查看 1.4K关注 0票数 1

该项目的文档说,只要添加框架和链接器标志,您就可以继续工作了。几小时又一小时的浪费时间之后,我发现那不是真的。如果这样做,项目将不会看到头文件。你必须把框架放在某个地方,因为编译器会找到标题。在我的例子中,当我将框架放到/Developer/Library/ framework中,然后告诉它在搜索该框架目录时(不要在头搜索目录中摆弄),这就起了作用。

然后,我得到的问题是,链接失败的消息:

代码语言:javascript
复制
ld: framework not found OCHamcrestIOS

我注意到这个项目的文档显示它是为Xcode 4更新的,我在查看了代码之后,删除了框架的二进制文件,并浪费了大量的时间,无法构建框架的IOS版本。

文档是这里

我还注意到,在该文档中,可可说明告诉您在构建中放置一个副本文件阶段。我试过了。并没有改变结果。

上次我掉进水槽洞是因为库是C++代码。也许这仍然是问题所在。

除非这里有一个快速的解决方案,否则我将回到使用STAsserts,尽管这一前景令人生厌,但这远比现在糟糕得多。

更新:重新安装Xcode。还是不起作用。有一些廉价的方法可以实现这个功能,比如将头文件添加到项目中。对此做了一个博客帖子,让一个人也有了同样的经历。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-20 20:13:51

所以我现在采用的解决方案,经过了很多周折之后,就是把这个框架包括在这个项目中。

  1. 在Xcode项目中创建一个名为第三方的组。
  2. 将其链接到一个名为第三方的文件夹。
  3. 转到Xcode中的Add并选择框架。
  4. 将其拖到依赖项中。
  5. 运行测试,他们通过了!

无论如何,这可能更好,因为在/System/Library/Frameworks中引用它会出现一些版本控制问题,并且可以非常快地设置。此外,我们有一个持续的集成服务器,每当有什么变化不是很大的时候,我们就必须进入该服务器并同步版本。

谢谢你查查德里克。

票数 0
EN

Stack Overflow用户

发布于 2011-06-20 00:27:55

我在我的项目中使用了许多框架。有些来自其他人,有些是我的。查看文档,我建议复制阶段的内容不是用于iOS开发的。所以我不会那么做。我从https://github.com/jonreid/OCHamcrest下载了最新的zip,它似乎包含一个准备就绪的iOS静态库。(在我的mac电脑上没有,所以我不能测试来确认)。

无论如何,我包含静态库的方式是

  • 选择项目(XCode 4)。
  • 选择要将库添加到的目标。
  • 选择“构建阶段”选项卡。
  • 使用库展开链接二进制。
  • 单击+按钮以添加框架。
  • 点击添加其他..。按钮并导航到包含.framework目录的目录,并选择该目录。

仅此而已。目标搜索路径将被更新,包括框架目录,框架将列在项目的左边。展开它将显示标题。

你提到的问题听起来像是几件事。首先,未发现的框架听起来像是没有包含在目标中的框架。当您在左边的项目列表中选择框架时,您应该能够看到右边显示的目标成员资格。检查你正在编译的目标是否打开。

其次,构建框架并不是一项琐碎的任务,所以除非您有脚本来完成,否则不要尝试它。我之所以这样说,是因为构建一个iOS静态框架意味着为模拟器和设备进行编译,将编译好的库文件组合成一个通用文件,然后将其和头存储在特定的目录结构中。

不过,从OCHamcrest下载的zip中似乎包含正确的OCHamcrestiOS.framework。因此,如果您将该目录存储在某个位置,并使用我前面概述的步骤链接到它,那么它应该工作得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6405676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档