首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Xcode 6中构建的旧项目中找不到XCTest/XCTest.h

在Xcode 6中构建的旧项目中找不到XCTest/XCTest.h
EN

Stack Overflow用户
提问于 2014-06-18 08:48:13
回答 7查看 74K关注 0票数 83

我有几个项目正在尝试用Xcode6Beta2构建。这些项目都有一些使用XCTest的类型库(Kiwi/XCTest和Specta),这些库不是用Xcode6构建的,因为找不到XCTest/XCTest.h。

代码语言:javascript
复制
fatal error: 'XCTest/XCTest.h' file not found
#import <XCTest/XCTest.h>

我注意到XCTest.framework不再处于“使用二进制文件链接库”的构建阶段列表中,但这很好,因为当我使用Xcode6创建一个新项目时,该库似乎是自动链接的。

也许与此相关的是,我需要XCTest的依赖项都是通过Cocoapods引入的。

有没有什么我不知道的东西需要在我的项目中更新?

EN

回答 7

Stack Overflow用户

发布于 2014-06-24 03:11:16

我注意到XCTest只对测试目标可用(在Xcode6中)。如果您将XCTest用于任何其他目标(无论出于何种原因),您将看到XCTest.h not found错误。

票数 18
EN

Stack Overflow用户

发布于 2015-02-18 17:54:07

当您添加了一个在测试目标外部使用XCTest的文件时,就会出现此错误。要在AppCode中修复此问题,您可以右键单击任何可疑文件并选择“管理目标”,然后确保只选中测试目标。

票数 12
EN

Stack Overflow用户

发布于 2014-08-01 19:03:42

@squarefrog拥有right answer,但每次更新pods时,您都必须手动执行此操作:(

如果你把这个添加到你的podfile中,它会自动为你添加额外的路径。例如,如果您想将$(PLATFORM_DIR)/Developer/Library/Frameworks添加到Specta的FRAMEWORK_SEARCH_PATHS中:

代码语言:javascript
复制
post_install do |installer|
    target = installer.project.targets.find { |t| t.to_s == "Pods-Tests-Specta" }
    if (target)
        target.build_configurations.each do |config|
            s = config.build_settings['FRAMEWORK_SEARCH_PATHS']
            s = [ '$(inherited)' ] if s == nil;
            s.push('$(PLATFORM_DIR)/Developer/Library/Frameworks')
            config.build_settings['FRAMEWORK_SEARCH_PATHS'] = s
        end
    else
        puts "WARNING: Pods-Tests-Specta target not found"
    end
end
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24275470

复制
相关文章

相似问题

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