Я пытаюсь упростить процесс сборки -> архивирования -> отправки для публикации приложения 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 _, и все работает правильно, как я и ожидал, за исключением того, что я не копирую правильный «Info.plist» и не могу понять, откуда его скопировать или как его сгенерировать.. Так что теперь я застрял.
Xcode распознает архивы, но перечисляет их в разделах «Неизвестная схема» и «Безымянный архив» в органайзере.
Мы очень признательны за любую помощь в получении правильного Info.plist.
Я также приветствую рекомендации по улучшению сценария и/или более эффективному способу пакетной сборки + архивации этих приложений iOS.
Примечание:
Я не могу выполнить обновление выше Xcode 4.2, так как для этого требуется (, насколько я понимаю )OS X 10.7+, которую я пока не могу получить (корпоративный компьютер ).
Я все еще очень новичок в bash/shell, поэтому приношу извинения за любой уродливый код/практику выше.
Кроме того, это для официальной подачи приложения, а не для -ad hoc или чего-то подобного.
В очередной раз благодарим за помощь.