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