我正在尝试为我的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.o中的objc-class-ref ld:找不到架构armv7的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
是否还有其他位置我需要设置某种依赖关系来告诉我的测试目标它是否依赖于原始目标?
干杯
答案 0 :(得分:6)
所以我找到了这个问题的解决方案: http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/
您需要执行以下操作以避免此问题:
返回您的应用目标(不是测试目标),将默认隐藏的符号构建设置设为否
现在,只要将原始目标设置为依赖项,就不需要将任何源文件添加到测试目标的编译源中。
答案 1 :(得分:0)
您必须在测试代码的编译源列表中为测试代码中引用的任何类包含.m文件。从您提供的错误消息,这听起来像您的问题。在XCode 4.2中,您可以通过在项目导航器中选择项目,然后选择测试目标,Build Phases选项卡以及展开Compile Sources部分,将编译源添加到目标。单击Compile Sources部分下方的“+”,然后选择您的班级'.m文件。