正在测试的目标对象的 XCode5 XTC 链接问题

Posted

技术标签:

【中文标题】正在测试的目标对象的 XCode5 XTC 链接问题【英文标题】:XCode5 XTC link problems with target object being tested 【发布时间】:2014-04-02 18:55:14 【问题描述】:

完全公开,我是 ios/ObjectiveC/Xcode 的新手。我正在使用内置的 XCode5 XTC 库设置一个用于单元测试的测试套件。我在将测试代码链接到我正在测试的对象时遇到了一个基本问题。我浏览了整个 WEB,有很多关于如何将代码复制和粘贴到 XTC 测试对象中的示例,但我找不到有关如何设置测试代码以便它可以链接到您正在测试的对象的示例。我在哪里可以在 XCode5 项目属性中正确包含链接位置?

下面是测试代码的简短sn-p...

#import <XCTest/XCTest.h>
#import “ObjectA.h”

@interface SimpleTest : XCTestCase
@end
@implementation SimpleTest
- (void)testExample

    ObjectA *objectA;

    objectA = [[ObjectA alloc] init];

    XCTAssertTrue(ObjectA != nil, @“ObjectA is nil!");

@end

以下是错误:

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

【问题讨论】:

【参考方案1】:

您是否检查过您的目标依赖项是否正确?

在您的目标“构建阶段”选项卡中,您应该会在“目标依赖项”下看到您的主要项目目标

当我遇到链接问题时,我还使用 Xcode 的首选项 -> 位置来查找和删除当前派生数据目录并运行干净的构建。

【讨论】:

以上是关于正在测试的目标对象的 XCode5 XTC 链接问题的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 5:一个方案中的多个测试目标:“模拟器已在使用”

在非测试目标中使用 XCTest

Xcode 5 为 OS X 10.6 开发

将捆绑包与 xibs XCode5 一起使用

如何在 XCode5 中将部署目标更改为 5.1.1 [重复]

异步服务调用的 TableView 单元测试