2016-05-05 3 views
0

У меня есть полная команда для развертывания проекта xCode на реальном устройстве.Команда xcodebuild в сценарии оболочки iOS

т.е.

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

его работает отлично с помощью командной строки.

Todo:Я хотел выполнить эту команду с помощью сценария оболочки.

вот мой полный сценарий оболочки deploy.sh so для.

#!/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' 

, если я запускаю выше команду с помощью командной строки его прекрасно работает, но если я запустите это через скрипт оболочки, который не работает.

я упомянул I want to concatenate arguments of xcodebuild as string, which have space in it ,then run this command конкатенировать команду xcodebuild

ответ

2

Оболочка удаляет одиночные кавычки в исходной команде, поэтому вы не должны иметь какой-либо при создании массива либо.

+0

Я удалил одиночные кавычки из своего сценария. теперь я получаю эту ошибку xcodebuild: ошибка: схема jamesAppV2 в настоящее время не настроена для тестового действия .. это странно. команда успешно выполняется из командной строки –

+1

@QadirHussain На ваш вопрос был дан ответ. Это не постоянный вызов поддержки. Задайте новый вопрос. – trojanfoe

+0

@ Игнасио Васкес-Абрамс, пожалуйста, ответьте на это http://stackoverflow.com/questions/37042815/xcodebuild-command-in-shell-script-ios/37042925?noredirect=1#comment61639456_37042925 –

Смежные вопросы