INFO_PLIST="${TARGET_BUILD_DIR}"/"${INFOPLIST_PATH}"
# Query and save the value; suppress any error message, if key not found.
value=$(/usr/libexec/PlistBuddy -c 'print :GitCommitHash' "${INFO_PLIST}" 2>/dev/null)
# Check if value is empty
if [ -z "$value" ]
then
/usr/libexec/PlistBuddy -c "Add :GitCommitHash string" "${INFO_PLIST}"
fi
/usr/libexec/PlistBuddy -c "Set :GitCommitHash `git rev-parse --short HEAD`" "${INFO_PLIST}"
4条答案
按热度按时间os8fio9y1#
我已经根据gagarwal的回答编写了一个实现,在编译阶段之前,我在构建阶段添加了这个构建脚本:
在我的代码中,我通过调用以下函数来引用它:
瞧,您最后一次提交的哈希值在运行时可用!
tsm1rwdh2#
Xcode 12+解决方案
Info.plist
,只需执行以下步骤:1.相加
New run script phase
1.插入脚本:
1.将
$BUILT_PRODUCTS_DIR/$INFOPLIST_PATH
和$TARGET_BUILD_DIR/$INFOPLIST_PATH
添加到Input Files
属性(重要信息!)1.确保相位在
Copy Bundle Resources
相位之后现在你可以访问提交哈希了:
cqoc49vn3#
这在Xcode 12上不起作用。在将
GIT_COMMIT_HASH
放入Info.plist
文件后,我将以下内容放入上面提到的Build Phases步骤:然后,您可以通过以下方式在Swift中访问它:
nimxete24#
1.添加目标的信息。plist GIT_COMMIT_HASH密钥x1c 0d1x
1.编译阶段之前的构建阶段:
/usr/libexec/PlistBuddy -c“设置:GIT提交哈希'
git rev-parse --short HEAD'
““${项目目录}/${信息列表文件}”