我有以下代码,并且我需要传递带有空格的方案参数,所以我需要用引号发送它,但是当我调用我的主命令XCODE_RUN_COMMAND时,它是用引号制作我的方案但是它再添加一个引号。< / p>
[[ -n $XCODE_SCHEME ]] && XCODE_W_P_ARG="$XCODE_W_P_ARG -scheme \"${XCODE_SCHEME}\""
cd "${XCODE_PROJECT_DIRECTORY}"
XCODE_RUN_COMMAND="xcodebuild ${XCODE_W_P_ARG} -sdk ${XCODE_SDK} ${XCODE_CONFIG}"
$XCODE_RUN_COMMAND -showBuildSettings > xcodebuild.properties.prep || die "Fail got parameters from project parameter"
我得到以下输出和错误:
xcodebuild -project ... -configuration Debug -scheme '"QVC' - 'QA.xcscheme"' -sdk iphoneos -xcconfig .../config.xcodeconfig -showBuildSettings
11:00:28 xcodebuild: error: Unknown build action '-'.
我试图这样做:
"$XCODE_RUN_COMMAND" -showBuildSettings > xcodebuild.properties.prep || die "Fail got parameters from project parameter"
但是比引号中的所有命令都不起作用。
'xcodebuild -project .... -configuration Debug -scheme "QVC - QA.xcscheme" -sdk iphoneos -xcconfig .../config.xcodeconfig' -showBuildSettings
那么如何通过在方案名称中保存报价来调用$ XCODE_RUN_COMMAND?
我做了:
XCODE_W_P_ARG=( 'arg1' 'arg2' 'arg3' )
[[ -n $XCODE_SCHEME ]] && XCODE_W_P_ARG+=( -configuration "$XCODE_CONFIGURATION" )
[[ -n $XCODE_SCHEME ]] && XCODE_W_P_ARG+=( -scheme "$XCODE_SCHEME" )
[[ -n $XCODE_SCHEME ]] && XCODE_W_P_ARG+=( -target "$XCODE_TARGET" )
cd "${XCODE_PROJECT_DIRECTORY}"
xcodebuild "${XCODE_W_P_ARG[@]}" -sdk "$XCODE_SDK" "$XCODE_CONFIG" - showBuildSettings > xcodebuild.properties.prep || die "Fail got parameters from project parameter"
并输出:
xcodebuild arg1 arg2 arg3 -configuration Debug -scheme 'QVC - QA.xcscheme' -target '' -sdk iphoneos '-xcconfig .../src/config.xcodeconfig' -showBuildSettings
11:52:55 xcodebuild: error: invalid option '-xcconfig .../src/config.xcodeconfig'
答案 0 :(得分:0)
目前,$XCODE_SCHEME
周围的引号未按预期工作,因此"QVC
,-
和QA.xcscheme"
被视为三个独立的参数。改为使用数组作为参数:
XCODE_W_P_ARG=( 'arg1' 'arg2' 'arg3' ) # whatever was in there before the posted code
[[ -n $XCODE_SCHEME ]] && XCODE_W_P_ARG+=( -scheme "$XCODE_SCHEME" )
cd "$XCODE_PROJECT_DIRECTORY"
xcodebuild "${XCODE_W_P_ARG[@]}" -sdk "$XCODE_SDK" "$XCODE_CONFIG" -showBuildSettings > xcodebuild.properties.prep || die "Fail got parameters from project parameter"
使用最新更新中的代码:
XCODE_W_P_ARG=()
XCODE_CONFIG=( -xcconfig .../src/config.xcodeconfig ) # "..." looks like a typo
if [[ -n $XCODE_SCHEME ]]; then
XCODE_W_P_ARG+=( -configuration "$XCODE_CONFIGURATION" )
XCODE_W_P_ARG+=( -scheme "$XCODE_SCHEME" )
XCODE_W_P_ARG+=( -target "$XCODE_TARGET" )
fi
cd "${XCODE_PROJECT_DIRECTORY}"
xcodebuild "${XCODE_W_P_ARG[@]}" -sdk "$XCODE_SDK" "${XCODE_CONFIG[@]}" - showBuildSettings > xcodebuild.properties.prep || die "Fail got parameters from project parameter"