我将以下脚本保存为项目目标中的运行脚本:
git_output=$(git status | grep "nothing to commit, working directory clean")
if [[ -z "$git_output" ]]; then
xcrun agvtool next-version -all
fi
检查git repo以查看是否有任何挂起的更改,如果是,则增加项目的内部版本号。一切正常。
问题在于,在运行KIF测试时,更改内部版本号会因运行KIF测试而混乱,因此它永远不会最终启动模拟器并运行。我已经验证,如果没有出现这样的内部版本号增量,KIF测试将运行正常。
最简单的方法是在Xcode中指定在运行某个方案时不运行给定的脚本。另外,如果我可以在脚本本身内查询正在运行哪个方案,那将完成同样的事情。但我不知道该怎么做。
答案 0 :(得分:1)
您可以添加自己在计划中选择的“测试”构建配置。对于此构建配置,您可以定义自己的GCC_PREPROCESSOR_DEFINITIONS
。
然后,您可以在脚本中使用{GCC_PREPROCESSOR_DEFINITIONS}
。
needle="NO_BUILD=1"
haystack="${GCC_PREPROCESSOR_DEFINITIONS}"
if [[ "$haystack" =~ "$needle" ]]; then
echo "Test Build. Do not increase build number." >> ~/Desktop/Test.txt
else
echo "Not a test build" >> ~/Desktop/Test.txt
fi
要仅针对特定方案设置此构建设置,请按照以下步骤操作。