1

我正在尝试为我的 iOS 应用程序设置应用程序测试。我正在使用以下文章作为我正在做的事情的基础:http: //cocoawithlove.com/2009/12/sample-iphone-application-with-complete.html

所以我可以创建我需要的其他目标。我现在有 3 个目标: - 原始目标 - 测试目标 - 重复目标

我已将原始目标作为目标依赖项添加到我的测试目标中。然后,我将测试目标添加为我的重复目标的目标依赖项。

但是,每当我尝试在测试用例中引用我的任何类时,我都会得到:

架构 armv7 的未定义符号:“_OBJC_CLASS_$_MyClass”,引用自:MyApplicationTests.o 中的 objc-class-ref “_OBJC_CLASS_$_AnotherClass”,引用自:MyApplicationTests.old 中的 objc-class-ref:未找到符号对于架构 armv7 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

是否有另一个位置需要我设置某种依赖关系来告诉我的测试目标它依赖于原始目标?

干杯

4

2 回答 2

6

所以我找到了这个问题的解决方案:http: //twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/

您需要执行以下操作以避免此问题:

返回您的应用程序目标(不是测试目标),将Symbols Hidden by Default构建设置设置为NO

现在,只要将原始目标设置为依赖项,就无需将任何源文件添加到测试目标的编译源中。

于 2012-04-11T00:06:07.537 回答
0

您必须在测试目标的已编译源列表中包含您从测试代码中引用的任何类的 .m 文件。从您提供的错误消息来看,这听起来像是您的问题。在 XCode 4.2 中,您可以通过在项目导航器中选择您的项目,然后选择您的测试目标、Build Phases 选项卡并展开 Compile Sources 部分来将编译源添加到目标。单击“编译源”部分下方的“+”,然后选择您的类的 .m 文件。

于 2012-04-10T03:01:36.697 回答