Пакетная сборка и архив приложений iOS через терминал
Я пытаюсь упростить процесс отправки архива сборок для публикации приложений iOS. У нас более 50 мобильных приложений, которые имеют практически одинаковую структуру, но с разными графическими объектами и параметрами конфигурации.
Обычно я загружал бы каждый проект в xcode 4.2 и собирал -> архив -> отправлял обычным способом с графическим интерфейсом xcode, но сейчас у нас более 50 приложений, и этот процесс очень утомителен всякий раз, когда мы выпускаем обновление.
При этом я пытаюсь ускорить этот процесс с помощью функции оболочки. Я сделал много исследований и обнаружил, чтоxcodebuild (См. Ответ Рейда) должен работать, однако опция Архив не работает, поскольку я получаю следующую ошибку:
unsupported build action 'archive'
Поэтому я написал следующее:
# $1 should be a date like: 2012-07-17
# $2 should be a time like: 10.31AM
# $mybase will be the current directory at the time the function was called
# so make sure to cd into the folder containing the xcode project folders first
function xcodeArchive {
mkdir ~/Library/Developer/Xcode/Archives/$1
mybase=$PWD
for x in `ls`
do
mkdir ~/Library/Developer/Xcode/Archives/$1/$x
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/dSYMs
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/Products
mkdir ~/Library/Developer/Xcode/Archives/$1/$x/Products/Applications
cd $mybase/$x
xcodebuild
#read -p "Press [Enter] to continue"
cd $mybase/$x
cp $x/$x-Info.plist ~/Library/Developer/Xcode/Archives/$1/$x/Info.plist
cp -r build/Release-iphoneos/$x.app.dSYM ~/Library/Developer/Xcode/Archives/$1/$x/dSYMs/$x.app.dSYM
cp -r build/Release-iphoneos/$x.app ~/Library/Developer/Xcode/Archives/$1/$x/Products/Applications/$x.app
cd ~/Library/Developer/Xcode/Archives/$1/
mv $x $x\ $1\ $2.xcarchive
cd $mybase
done
}
export -f xcodeArchive
Я помещаю это в свой файл .bash_profile, и все работает правильно, как я и ожидал, за исключением того, что я не копирую правильный & quot; Info.plist & quot; и я не могу понять, откуда его скопировать или как его сгенерировать. Так что теперь я застрял.
Xcode распознает архивы, но перечисляет их в разделе «Неизвестная схема». и & quot; Безымянный архив & quot; в органайзере.
Any help regarding now to get the correct Info.plist is greatly appreciated.
Я также приветствую рекомендации о том, как улучшить сценарий и / или более эффективный способ пакетной сборки + архивирования этих приложений iOS.
Note:
I am unable to upgrade beyond Xcode 4.2 as that requires (as I understand it) OS X 10.7+ which I am not able to obtain yet (company computer).
I am still very much a bash/shell novice, so I apologize for any ugly code/practice above.
Also, this is for official app submission, not for ad-hoc or anything like that.
В очередной раз благодарим за помощь.