7
我不希望Archive构建成功,除非我的工作目录是干净的。因此,我想添加一个“运行脚本”建设阶段(或类似的东西)我的Xcode项目这样的:如果我的git工作副本很脏,如何停止Xcode存档版本?
IF我进行存档建立...
和有我的源代码目录中未提交的更改
那么构建失败并显示错误。
我在Xcode 4的工作和Git 1.7。
什么是良好的,简洁的,可重复使用的脚本,将做的工作?
我不希望Archive构建成功,除非我的工作目录是干净的。因此,我想添加一个“运行脚本”建设阶段(或类似的东西)我的Xcode项目这样的:如果我的git工作副本很脏,如何停止Xcode存档版本?
IF我进行存档建立...
和有我的源代码目录中未提交的更改
那么构建失败并显示错误。
我在Xcode 4的工作和Git 1.7。
什么是良好的,简洁的,可重复使用的脚本,将做的工作?
这里的剧本我已经出来:
#!/bin/sh
if [ -z "$(git status --porcelain)" ]; then
TAG=`date +xcarchive-%Y%m%d-%H%M%S`
echo "Working directory clean, creating tag ${TAG}"
git tag -a -m "Xcode Archive created" ${TAG}
exit 0
else
echo "error: Working directory dirty, stopping build"
exit 1
fi
作为奖励,它会创建一个标签,如果工作副本是干净的。
干净/肮脏的检查是根据this question(我忘了我曾提出一个答案)。
如果你不希望创建一个标签,去掉git tag
线。
如果你不想停止建立,删除exit 1
线。
在项目中安装这个:
ArchiveHousekeeper.sh
),并确保可执行位设置(chmod +x
)./ArchiveHousekeeper.sh
如果Xcode 4 Pre-and Post-actions可以用于这个(所以你不需要创建一个“伪”目标),但是它们似乎不能够影响构建,而且我也不知道它们在哪个目录下执行,哪些环境变量可用或者其输出的位置。
谢谢!我花了相当长的时间来研究如何[添加新目标](http://stackoverflow.com/a/10407469/2547229)! – Benjohn
我非常希望能够在脚本中使用构建设置 - 基本上我需要[标记中的构建名称,版本和内部版本号](http://stackoverflow.com/q/27326469/2547229)。这些变量似乎没有被赋予使用这种方法的脚本? – Benjohn
在Xcode 8.3.2中,通过文件>新建>目标...>跨平台>外部构建系统添加一个“外部构建系统”目标。 –