【问题标题】:How to use environment variable in xcconfig #include?如何在 xcconfig #include 中使用环境变量?
【发布时间】:2011-12-14 09:49:22
【问题描述】:

在我的项目中,我想参考位于 InDesign SDK 中的另一个 xcconfig 文件。由于这个 SDK 可能安装在不同的位置,取决于机器,我更喜欢声明一个环境变量来定位它。

嵌套步骤显然是在我的 xcconfig 包含指令中使用变量(恰当地命名为 ID_CS5_SDK_DIR)。

不幸的是,当我尝试简单的时候

// InDesign sdk project build settings (based on common build settings)
#include "$(ID_CS5_SDK_ROOT)/build/mac/prj/_shared_build_settings/common.xcconfig"

XCode 给了我一个

 [WARN]AutocatPlugin.xcconfig line 7: Unable to find included file "$(ID_CS5_SDK_ROOT)/build/mac/prj/_shared_build_settings/common.xcconfig"

我怎样才能让它工作?

【问题讨论】:

  • 老兄注意你接受的答案...

标签: xcode4 include xcconfig


【解决方案1】:

我也一直在尝试这样做,并且得出的结论是这是不可能的。

【讨论】:

    【解决方案2】:

    我曾经尝试过实现这一目标,但得出的结论是你做不到。如果有人证明我们有可能,我会很高兴,然后删除我的答案

    【讨论】:

    【解决方案3】:

    似乎 .xcconfig 文件只能定义和设置环境变量的值(仅在整个构建会话中占主导地位),但不能使用或评估环境变量。

    可能是因为 .xcconfig 文件作为构建设置的基础层,并且没有被解析。

    【讨论】:

      【解决方案4】:

      不幸的是,这是不可能的,但您可以为每个目标使用两个不同的 xcconfig 文件,而不是让一个包含另一个。只需为项目选择一个,为目标选择一个。

      【讨论】:

        【解决方案5】:

        如果您将环境变量放在 /etc/config/launchd.conf 中然后重新启动,它将可以访问 .xcconfig 文件。

        给有经验的用户的简短说明:

        编辑只读文件 /etc/launchd.conf 并将“setenv VARIABLENAME /FOLDER/PATH”添加到文件中,然后重新启动。

        无经验用户的步骤

        1. 打开应用程序/实用程序/终端,然后输入

          sudo nano /etc/launchd.conf

        2. 通过添加一行

          setenv VARIABLENAME FOLDER/PATH

          然后按回车键来创建环境变量。

        3. 使用 Ctrl-O、Ctrl-M 保存文件(可能 Ctrl-Y 覆盖),然后 Ctrl-X 退出编辑器。
        4. (可选)输入 cat /etc/launchd.conf 以查看您的更改是否存在
        5. 重新启动计算机。 (注销不起作用)
        6. 您现在可以以

          $(VARIABLENAME) 的身份访问 .xcconfig 文件中的变量

        注意事项:

        • 这将创建一个可供所有用户访问的 GLOBAL 环境变量。将其设置为您的主目录中的某个内容(例如 ~/MyFolder)可能没有意义。但是,如果您这样做,则需要使用完整的路径名,例如 /Users/MyUserName/MyFolder)。

        参考资料:

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-10-05
          • 2021-11-17
          • 2016-04-11
          相关资源
          最近更新 更多