5

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

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

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

// 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"

我怎样才能使它工作?

4

5 回答 5

6

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

于 2012-02-23T21:38:00.940 回答
3

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

于 2012-02-17T15:07:49.877 回答
0

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

在此处输入图像描述

于 2018-03-31T22:19:13.663 回答
0

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

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

于 2017-01-02T12:51:43.387 回答
-4

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

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

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

无经验用户的步骤

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

    sudo nano /etc/launchd.conf

  2. 通过添加一行

    setenv VARIABLENAME FOLDER/PATH

    ,然后按 ENTER 创建环境变量。

  3. 使用 Ctrl-O、Ctrl-M 保存文件(可能 Ctrl-Y 覆盖),然后 Ctrl-X 退出编辑器。
  4. (可选)键入cat /etc/launchd.conf以查看您的更改是否存在
  5. 重启你的电脑。(注销不起作用)
  6. 您现在可以访问 .xcconfig 文件中的变量

    $(VARIABLENAME)

笔记:

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

参考:

于 2014-02-12T23:45:36.143 回答