Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
shell脚本iOS中的xcodebuild命令_Ios_Bash_Shell_Command Line_Xcodebuild - Fatal编程技术网

shell脚本iOS中的xcodebuild命令

shell脚本iOS中的xcodebuild命令,ios,bash,shell,command-line,xcodebuild,Ios,Bash,Shell,Command Line,Xcodebuild,我有一个完整的命令在真实设备上部署xCode项目 i、 e 使用命令行工作正常 Todo:我想通过shell脚本执行这个命令 下面是我的完整shell脚本deploy.shso for #!/bin/bash #My First Script #Info to be configured current_path=$(pwd) appName="jamesApp" jamesApp_workspace="jamesAppV2.xcworkspace" echo "Searching f

我有一个完整的命令在真实设备上部署xCode项目

i、 e

使用命令行工作正常

Todo:我想通过shell脚本执行这个命令

下面是我的完整shell脚本
deploy.sh
so for

#!/bin/bash
#My First Script

#Info to be configured 


current_path=$(pwd)
appName="jamesApp"
jamesApp_workspace="jamesAppV2.xcworkspace"

echo "Searching for $jamesApp_workspace workspace..."

if [[ $(ls $jamesApp_workspace) ]];     then 
    echo "$jamesApp_workspace found in current directory."


echo "Listing all installed and connected devices..."
instruments -s devices

echo "Copy + Paste from above devices"
echo "specify name of your decice to launch $appName"
read d_device_name

echo "building workspace for $d_device_name..."

build_cmd=(xcodebuild -workspace jamesAppV2.xcworkspace -scheme jamesAppV2 -configuration Debug)
destination="'platform=iOS,name=$d_device_name'"

build_cmd+=(-destination "$destination" clean test)

echo "${build_cmd[@]}"
# Here it prints the valid command given above

"${build_cmd[@]}"

else
    echo "$jamesApp_workspace workspace not found"
    echo "Make sure your current path contains the $jamesApp_workspace workspace"
    echo "Place this file i.e deploy.sh within the directory containing $jamesApp_workspace workspace"
fi;
问题: 我做得很好

build_cmd=(xcodebuild -workspace jamesAppV2.xcworkspace -scheme jamesAppV2 -configuration Debug)
destination="'platform=iOS,name=$d_device_name'" 
build_cmd+=(-destination "$destination" clean test) 
echo "${build_cmd[@]}"  #Prints valid command
"${build_cmd[@]}" 
但在执行时会出现错误

xcodebuild: error: option 'Destination' requires at least one parameter of the form 'key=value'
如果我通过命令行运行上面的命令,它会工作得很好,但是如果我通过shell脚本运行它,它就不工作了


我提到了连接xcodebuild命令

shell会删除原始命令中的单引号,因此在创建数组时也不应该有单引号。

我还尝试通过字符串传递命令,以类似的方式执行该命令。该命令在没有双引号的情况下工作

例如:

$ xcodebuild -project ~/ios_projects/example.xcodeproj -scheme Xcode9-XCtest destination id=EBCDFH7S-DCJD-EE8D-DSKDKD78

我从脚本中删除了单引号。现在我得到这个错误xcodebuild:error:Scheme jamesAppV2当前没有为测试操作配置。。这很奇怪。命令从命令行@Ignacio Vazquez Abrams成功执行。请回答此问题
$ xcodebuild -project ~/ios_projects/example.xcodeproj -scheme Xcode9-XCtest destination id=EBCDFH7S-DCJD-EE8D-DSKDKD78