【问题标题】:"XXX-Swift.h" file not found in test project在测试项目中找不到“XXX-Swift.h”文件
【发布时间】:2015-10-11 23:41:07
【问题描述】:

我正在尝试在测试项目中的 XCTestCase 子类的方法中调用我在“主”项目中拥有的 NSObject 子类的方法。主项目的NSObject 子类导入“XXX-Swift.h”头文件(我正在混合SwiftObjective-C 代码)。当我运行主项目时一切正常,但是当我运行调用该子类的对象的测试时,我收到一条错误消息,提示找不到导入中的 Swift 头文件。

我想我在测试目标中遗漏了一些设置,但我没有找到哪个...我应该检查什么?或者我应该怎么做才能解决这个问题?

【问题讨论】:

    标签: ios swift import header-files xctest


    【解决方案1】:

    转到 Xcode Project > Build Settings 并输入“header name”,您将获得以下选项:

    确保必须存在一个名称为:$(SWIFT_MODULE_NAME)-Swift.h的文件

    然后在 Build Settings 下键入“bridging header”,并确保“bridging-header.h”文件的路径正确存在。

    已编辑:

    1) 确保您的“项目名称”不包含空格 2)在以下路径生成“XXX-Swift.h”文件,因此您需要将该路径添加到单元测试 - 转到构建设置,输入“标题搜索路径”并添加以下行

    "$(TARGET_TEMP_DIR)/../$(PROJECT_NAME).build/DerivedSources"
    

    更多内容可以参考这个链接:iOS - 'MyProject-Swift.h' file not found when running Unit Tests for Swift

    【讨论】:

    • 我已经在应用程序目标中有这些设置,并且我在测试目标中将Embedded Content Contains Swift Code 设置为YES,但是当我运行应用程序时它仍然有效,但在运行时出现错误测试...
    • 我仍然得到错误...我怎么能看到 $(TARGET_TEMP_DIR) 的值?
    • @AppsDev 你可以从这里知道:stackoverflow.com/questions/4233581/…
    • 执行此操作后,我的测试目标可以看到 XXXTests-Swift.h 但是该文件包含 @import XXX 的一行;它无法解决
    • 记得在 .m 文件中导入“MyProject-Swift.h”,在我的情况下,在不受#ifdef FB_SONARKIT_ENABLED 或#if DEBUG 限制的地方也非常重要!
    猜你喜欢
    • 1970-01-01
    • 2021-02-08
    • 2017-03-21
    • 2014-12-15
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多