如何在Xcode中包含git commit hash?

时间:2014-10-22 18:48:15

标签: ios xcode

我有一个应用程序,人们可以直接从中报告错误,但我希望用户能够提交构建应用程序的git hash。 Xcode是否公开了包含此信息的#define,或者我是否必须将其包含在某个自定义构建脚本中?

3 个答案:

答案 0 :(得分:12)

我根据gagarwal引用的答案编写了一个实现。我在编译阶段之前将构建脚本添加到了构建阶段:

/usr/libexec/PlistBuddy -c "Set :GIT_COMMIT_HASH `git rev-parse HEAD`" "${TARGET_BUILD_DIR}"/"${INFOPLIST_PATH}"

在我的代码中,我通过调用:

来引用它
[[NSBundle mainBundle] infoDictionary][@"GIT_COMMIT_HASH"];

瞧,您的上次提交哈希值在运行时可用!

答案 1 :(得分:0)

  1. 添加目标的 info.plist GIT_COMMIT_HASH 键 enter image description here

  2. 编译阶段之前的构建阶段:

/usr/libexec/PlistBuddy -c "Set :GIT_COMMIT_HASH 'git rev-parse --short HEAD'" "${PROJECT_DIR}/${INFOPLIST_FILE}"

答案 2 :(得分:0)

这在 Xcode 12 上对我不起作用。在将 GIT_COMMIT_HASH 放入 Info.plist 文件后,我在上面提到的构建阶段步骤中放置了以下内容:

COMMIT_HASH=`git rev-parse --short HEAD`
/usr/libexec/PlistBuddy -c "Set :GIT_COMMIT_HASH $COMMIT_HASH" "${INFOPLIST_FILE}"

然后你可以在 Swift 中访问它:

Bundle.main.object(forInfoDictionaryKey: "GIT_COMMIT_HASH")