【问题标题】:Set Xcode project version from custom environment variable从自定义环境变量设置 Xcode 项目版本
【发布时间】:2023-04-06 06:54:01
【问题描述】:

为了确保我的 Xcode 项目版本对应于我最新的 git 标签,我想使用以下命令行进行设置:

git describe --abbrev=0 --tags

我的想法是导出一个我会这样设置的环境变量:

export VERSION=`git describe --abbrev=0 --tags`

如何定义 Xcode 在 Target > General > Identity > Version 文本字段中可以看到的环境变量?

【问题讨论】:

    标签: xcode git environment-variables


    【解决方案1】:
    1. Xcode 7.0+ 默认不计算环境变量

    可以使用以下命令启用旧行为: 默认写入 com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NOO

    1. 在 ~/Library/LaunchAgents/ 中创建一个 environment.plist 文件,内容如下:

    environment.plist

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
      <key>Label</key>
      <string>my.startup</string>
      <key>ProgramArguments</key>
      <array>
        <string>sh</string>
        <string>-c</string>
        <string>
        launchctl setenv FOO /FOO
        </string>
    
      </array>
      <key>RunAtLoad</key>
      <true/>
    </dict>
    </plist>
    

    为此使用 mkdir、touch、nano。 FOO 是系统变量的一个示例。 您可以重新启动操作系统或使用 launchctl 加载 ~/Library/LaunchAgents/environment.plist 立即重新加载。

    1. 在 Xcode 中使用环境变量 - 项目设置/常规/版本

    “版本 1.0” - 之前

    “版本 1.0 $(FOO)” - 更改为

    【讨论】:

    • 因为我想从我的 git 存储库中提取信息,所以要在预构建步骤中定义环境。您的解决方案将在登录时创建 env,如果存储库被修改,则不会更新。
    猜你喜欢
    • 1970-01-01
    • 2011-06-15
    • 2011-11-25
    • 2012-01-08
    • 2021-11-07
    • 1970-01-01
    • 2011-12-25
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多