使用python子进程构建Xcode

2024-06-11 13:57:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用于xcode构建的python脚本。它的一部分如下所示。在

cmd = "xcodebuild -verbose -configuration Release -workspace".split()
cmd += [PROJECT_WORKSPACE_FOLE_NAME_PATH]
cmd += "-scheme".split()
cmd += [scheme]
cmd += "CONFIGURATION_BUILD_DIR =".split()
cmd += [APP_OUTPUT_DIRECTORY]
cmd += "CODE_SIGN_IDENTITY =".split()
cmd += [DEVELOPER_ID]
cmd += "OTHER_CODE_SIGN_FLAGS = ".split()
cmd += [--keychain, TEAMCITY_KEYCHAIN_PATH]
subprocess.call(cmd)

这给了我一个错误。在

^{pr2}$

请帮帮我。在

编辑:下面给出了等效的bash脚本

  xcodebuild -verbose -configuration Release -workspace  "$PROJECT_WORKSPACE_FILENAME_PATH" -scheme "$SCHEME"    CONFIGURATION_BUILD_DIR="$APP_OUTPUT_DIR" CODE_SIGN_IDENTITY="$DEVELOPER_ID" OTHER_CODE_SIGN_FLAGS="--keychain $TEAMCITY_RUN_SCRIPT_LOCATION/$TEAMCITY_KEYCHAIN"

Tags: pathproject脚本cmdverbosereleasedircode
1条回答
网友
1楼 · 发布于 2024-06-11 13:57:18

最大的问题是你传递的设置错误。如果您查看^{}手册页,可以看到它们是作为单个参数setting=value传递的。例如,在您的(工作)bash示例中,其中一个参数是:

OTHER_CODE_SIGN_FLAGS=" keychain $TEAMCITY_RUN_SCRIPT_LOCATION/$TEAMCITY_KEYCHAIN"

但是在Python代码中,您将其作为四个独立的参数传递:OTHER_CODE_SIGN_FLAGS= keychain,以及{}的值。在

这不是一回事。显然,xcodebuild正在将OTHER_CODE_SIGN_FLAGS=和路径解释为有效的(但可能不是您想要的),但它将{}视为一个它一无所知的标志,这就是您得到错误的原因。在

解决方案是构建一个参数,就像您在bash中所做的那样。而不是这样:

^{pr2}$

这样做:

cmd += ["OTHER_CODE_SIGN_FLAGS= keychain " + TEAMCITY_KEYCHAIN_PATH]

但你在其他场合都犯了同样的错误。我也不会惊讶,如果有其他论点你传递错了。所以,仅仅修复这一个错误并不能让所有的事情都神奇地工作;你必须修复所有的错误。在

相关问题 更多 >