【问题标题】:XCode: Preprocessor macros from host target not being found in unit testsXCode:在单元测试中找不到来自主机目标的预处理器宏
【发布时间】:2018-08-07 17:52:43
【问题描述】:

在我的目标设置中,我有预处理器宏来设置我在应用程序中使用的一些 URL。我有一些集成测试来测试我们已经完成的服务器 API 集成。当我运行单元测试时,找不到这些预处理器宏,因此单元测试无法编译。据我了解,在主机目标中设置的预处理器宏将在运行测试时可用

【问题讨论】:

    标签: xcode


    【解决方案1】:

    我假设您指的是构建设置中定义的预处理器宏。

    预处理器宏构建设置在每个文件的编译期间仅在定义了这些构建设置的目标中使用。如果你有一个标准的 Xcode 项目,其中有一个构建应用程序的目标、一个单元测试目标和一个 UI 测试目标,那么它们中的每一个都将有自己的预处理器宏。但是,任何目标的构建设置都可以继承项目级别中定义的值,这是通过添加 $(inherited) 值来完成的。

    因此,您可以在项目的构建设置中添加需要在目标之间共享的预处理器宏,并确保在目标的构建设置中预处理器宏具有 $(inherited) 值(它们默认具有)。确保将它们添加到所有构建配置(例如调试和发布)。

    1. 选择项目的(左列顶部目标上方)构建设置并添加共享宏:

    2. 它们将被自动继承到所有目标:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 2015-01-11
      • 1970-01-01
      • 2016-08-19
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      相关资源
      最近更新 更多