Как передать аргументы командной строки в проект Xcode через AppleScript? - PullRequest
0 голосов
/ 20 октября 2010

Я пытаюсь установить аргументы командной строки для проекта Xcode, связанного с приложением iPhone Simulator.

Когда я пытаюсь запустить следующий скрипт, строка "создать новый аргумент запуска со свойствами {name:" file: ///Users/aakash/Desktop/sample_h.html ", active: yes}"

выдает ошибку: ошибка выполнения: Xcode получил ошибку: не может создать или переместить этот элемент в этот контейнер. (-10024)

Вот сценарий:

!/bin/zsh

BUILD_PATH=$(dirname $0)

while [[ -z $BUILD_FILE && $BUILD_PATH != "/" ]]; do
    BUILD_FILE=$(find $BUILD_PATH -name '*.xcodeproj' -maxdepth 1)
    BUILD_PATH=$(dirname $BUILD_PATH)
done

if [[ -z $BUILD_FILE ]]; then
    echo "Couldn't find an xcode project file in directory"
    exit 1
fi

open -a Xcode "$BUILD_FILE"

BUILD_FILE=${BUILD_FILE//\//:}

SIMULATOR_SDKS=( /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/*.sdk )

SIMULATOR_SDK=${SIMULATOR_SDKS[-1]} 
SIMULATOR_SDK_STRING=$(basename ${(L)SIMULATOR_SDK%.[a-z]*})

if [[ -z $SIMULATOR_SDK ]]; then
    echo "Couldn't find a simulator SDK"
    exit 1
fi

echo $BUILD_FILE
echo $BUILD_PATH

osascript <<SCRIPT
application "iPhone Simulator" quit
application "iPhone Simulator" activate


tell application "Xcode"
    open "$BUILD_FILE"
    set targetProject to project of active project document

    tell targetProject
        set active build configuration type to build configuration type "Debug"
        set active SDK to "$SIMULATOR_SDK_STRING"
        set value of build setting "SDKROOT" of build configuration "Debug" of active target to "$SIMULATOR_SDK"
        make new launch argument with properties{name:"file:///Users/aakash/Desktop/sample_h.html",active:no}

        if (build targetProject) is equal to "Build succeeded" then
                launch targetProject
        else
                application "iPhone Simulator" quit
        end if
    end tell
end tell
SCRIPT

Какие-нибудь подсказки ??? Есть ли другой способ установить аргументы для проекта XCode или я делаю это неправильно? Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 06 мая 2011

Вы должны сделать активным исполняемый файл в качестве контейнера вместо приложения Xcode

tell application "Xcode"
set targetProject to project of active project document
set targetExecutable to active executable of targetProject
tell targetExecutable
make new launch argument with properties {name:"new argument", active:true}
end tell
end tell


это все еще работает для Xcode 3. *, но больше не работает с Xcode 4. *

0 голосов
/ 20 октября 2010

Для сборки из командной строки я обычно использую Makefile, который запускает xcodebuild , интерфейс командной строки для Xcode. Вы также можете использовать скрипт zsh, чтобы сделать то же самое, если хотите. Установить параметры сборки проекта с помощью инструмента командной строки довольно просто.

...