shell脚本iOS中的xcodebuild命令

Posted

技术标签:

【中文标题】shell脚本iOS中的xcodebuild命令【英文标题】:xcodebuild command in shell script iOS 【发布时间】:2016-05-05 05:08:27 【问题描述】:

我有一个完整的命令可以在真机上部署 xCode 项目。

xcodebuild -workspace jamesAppV2.xcworkspace -scheme jamesAppV2 -configuration Debug -destination 'platform=ios,name=Shujaat’s iPad' clean test

使用命令行可以正常工作。

待办事项: 我想通过 shell 脚本执行这个命令。

这是我完整的 shell 脚本 deploy.sh 所以。

#!/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 脚本运行它,它就不能正常工作。

我已推荐I want to concatenate arguments of xcodebuild as string, which have space in it ,then run this command 连接 xcodebuild 命令

【问题讨论】:

【参考方案1】:

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

【讨论】:

我从脚本中删除了单引号。现在我收到此错误 xcodebuild: error: Scheme jamesAppV2 当前未配置用于测试操作.. 这很奇怪。命令从命令行成功执行 @Ignacio Vazquez-Abrams 请回答这个***.com/questions/37042815/…【参考方案2】:

我还尝试通过字符串传递命令以类似的方式执行命令。该命令对我来说在命令的任何位置都没有双引号。

示例:

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

【讨论】:

以上是关于shell脚本iOS中的xcodebuild命令的主要内容,如果未能解决你的问题,请参考以下文章

使用 XCodebuild 和 shell 脚本导出 IPA

Xcodebuild 在 cordova ios 项目中停止

詹金斯 xcodebuild 失败

来自命令行的 xcodebuild:文件的编译标志

shell中执行sed命令

通过Shell脚本生成IPA