Xcode 6测试目标:架构的未识别符号

时间:2015-01-13 17:58:17

标签: ios xcode testing

我正在运行Xcode 6.1.1。 我使用以下方法设置了新的测试目标:文件>新>目标

使用空模板运行测试工作正常。我导入了一个标题ServerController,并尝试创建一个实例:

#import <UIKit/UIKit.h>
#import <XCTest/XCTest.h>
#import "ServerController.h"

@interface Tixie_Tests : XCTestCase

@end

@implementation Tixie_Tests

- (void)setUp {
    [super setUp];
    // Put setup code here. This method is called before the invocation of each test method in the class.
    ServerController * s = [[ServerController alloc] init];
}

- (void)tearDown {
    // Put teardown code here. This method is called after the invocation of each test method in the class.
    [super tearDown];
}

- (void)testExample {
    // This is an example of a functional test case.
    XCTAssert(YES, @"Pass");
}

- (void)testPerformanceExample {
    // This is an example of a performance test case.
    [self measureBlock:^{
        // Put the code you want to measure the time of here.
    }];
}

@end

现在运行测试给了我这个:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_ServerController", referenced from:
      objc-class-ref in <omitted>.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1 个答案:

答案 0 :(得分:0)

对于在应用程序中查找类的链接器错误...在应用程序目标中将“默认隐藏的符号”构建设置设置为“NO”。这使您的所有应用程序类自动可用于您的测试目标... 所以,这意味着:

Project Navigator&gt;选择你的项目

目标&gt;选择您的应用程序(不是测试)

构建设置&gt;搜索“默认隐藏的符号”

“默认隐藏的符号”&gt;将其从“是”更改为“否”

检查来源:answer