OGeek|极客世界-中国程序员成长平台

标题: ios - 运行某个Scheme时如何不运行脚本? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 03:15
标题: ios - 运行某个Scheme时如何不运行脚本?

我在我的项目目标中保存了以下脚本作为运行脚本:

git_output=$(git status | grep "nothing to commit, working directory clean")
if [[ -z "$git_output" ]]; then
    xcrun agvtool next-version -all
fi

它会检查 git 存储库以查看是否有任何待处理的更改,如果有,则增加项目的内部版本号。一切正常。

问题在于,在运行 KIF 测试时,内部版本号的更改会与 KIF 测试的运行相混淆,因此它永远不会启动模拟器并运行。我已经验证,如果没有出现这样的内部版本号增量,KIF 测试将运行良好。

解决此问题的最简单方法是在 Xcode 中指定在运行某个方案时不运行给定脚本。此外,如果我可以从脚本本身查询正在运行的方案,那将完成同样的事情。但我不知道该怎么做。



Best Answer-推荐答案


您可以添加自己在方案中选择的“测试”构建配置。对于此构建配置,您可以定义自己的 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

要使此build设置仅在特定方案上设置,请按照以下步骤操作。

  1. 创建配置。

Create a Configuration

  1. 为此配置设置build设置。

Set the build settings for this configuration

  1. 编辑您的方案并选择配置。

Choose the configuration for the scheme

关于ios - 运行某个Scheme时如何不运行脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854684/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4