Использование xcodebuild для автоматической компиляции iOS

Я читал (и искал) о xcodebuild уже несколько дней. У меня есть шаблон для приложения для iOS, в котором меняются несколько пользовательских переменных, таких как значки, URL-адреса и имя приложения, для создания другого приложения.

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

Как мне передать эти переменные в xcodebuild из командной строки? Это вообще возможно?

2 ответа

Страница man xcodebuild указывает, что вы можете передать в настройках. Бежать man xcodebuild от терминала.

У меня есть проект под названием щипцы. Я только что построил BoBo.app из этого проекта, выполнив следующую команду:

xcodebuild build PRODUCT_NAME=BoBo

Фрагмент из вывода xcodebuild:

Create product structure
/bin/mkdir -p /Users/myid/Code/Tongs/build/Release-iphoneos/BoBo.app

Я не уверен, как сделать имя приложения, но вот сценарий bash, который я использую для установки изображений значков приложений из одного основного изображения, используя встроенные глотки Apple для создания меньших изображений. Затем создайте файл JSON для ссылки на эти изображения. Вы могли бы использовать это так для стандартной структуры файла проекта, созданного XCode. ../myScript.sh myImage.png MyProject/MyProject/Images.xcassets/AppIcon.appiconset/

#!/bin/bash

if [ "$#" -ne 2 ]; then
echo "usage source target"
exit
fi
targetdir="${2%/}"
if [ ! -d $targetdir ]
then
echo "target not directory"
exit
fi

echo $targetdir
sizes=(29 40 50 57 58 72 76 80 100 114 120 144 152 180)
for size in ${sizes[@]};
do
echo $size
sips --setProperty format png -Z $size --out "${targetdir}/icon${size}.png" "$1"
done
echo '{
"images" : [
            {
                "size" : "29x29",
                "idiom" : "iphone",
                "filename" : "icon29.png",
                "scale" : "1x"
            },
            {
                "size" : "29x29",
                "idiom" : "iphone",
                "filename" : "icon58.png",
                "scale" : "2x"
            },
            {
                "size" : "40x40",
                "idiom" : "iphone",
                "filename" : "icon80.png",
                "scale" : "2x"
            },
            {
                "size" : "57x57",
                "idiom" : "iphone",
                "filename" : "icon57.png",
                "scale" : "1x"
            },
            {
                "size" : "57x57",
                "idiom" : "iphone",
                "filename" : "icon114.png",
                "scale" : "2x"
            },
            {
                "size" : "60x60",
                "idiom" : "iphone",
                "filename" : "icon120.png",
                "scale" : "2x"
            },
            {
                "size" : "60x60",
                "idiom" : "iphone",
                "filename" : "icon180.png",
                "scale" : "3x"
            },
            {
                "size" : "29x29",
                "idiom" : "ipad",
                "filename" : "icon29.png",
                "scale" : "1x"
            },
            {
                "size" : "29x29",
                "idiom" : "ipad",
                "filename" : "icon58.png",
                "scale" : "2x"
            },
            {
                "size" : "40x40",
                "idiom" : "ipad",
                "filename" : "icon40.png",
                "scale" : "1x"
            },
            {
                "size" : "40x40",
                "idiom" : "ipad",
                "filename" : "icon80.png",
                "scale" : "2x"
            },
            {
                "size" : "50x50",
                "idiom" : "ipad",
                "filename" : "icon50.png",
                "scale" : "1x"
            },
            {
                "size" : "50x50",
                "idiom" : "ipad",
                "filename" : "icon100.png",
                "scale" : "2x"
            },
            {
                "size" : "72x72",
                "idiom" : "ipad",
                "filename" : "icon72.png",
                "scale" : "1x"
            },
            {
                "size" : "72x72",
                "idiom" : "ipad",
                "filename" : "icon144.png",
                "scale" : "2x"
            },
            {
                "size" : "76x76",
                "idiom" : "ipad",
                "filename" : "icon76.png",
                "scale" : "1x"
            },
            {
                "size" : "76x76",
                "idiom" : "ipad",
                "filename" : "icon152.png",
                "scale" : "2x"
            }
            ],
"info" : {
    "version" : 1,
    "author" : "xcode"
}
}' > ${targetdir}/Contents.json
Другие вопросы по тегам