Tworzenie i archiwizacja wsadowa aplikacji iOS przez Terminal
Próbuję uprościć proces budowania-> archiwum-> wysyłania dla publikacji aplikacji na iOS. Mamy ponad 50 aplikacji mobilnych, które mają prawie identyczne ramy, ale z różnymi ustawieniami graficznymi i konfiguracyjnymi.
Zwykle ładowałem każdy projekt w xcode 4.2 i budowałem-> archiwum-> przesyłałem w zwykły sposób za pomocą GUI xcode, ale mamy teraz ponad 50 aplikacji i ten proces jest bardzo męczący za każdym razem, gdy wypychamy aktualizację.
Mimo to staram się przyspieszyć ten proces za pomocą funkcji powłoki. Zrobiłem dużo badań i znalazłem toxcodebuild (Zobacz odpowiedź Reida) powinna działać, jednak opcja Archiwum nie działa, ponieważ pojawia się następujący błąd:
unsupported build action 'archive'
Napisałem więc:
# $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
Umieszczam to w moim pliku .bash_profile i wszystko działa poprawnie, tak jak się tego spodziewałem, z wyjątkiem tego, że nie kopiuję poprawnego „Info.plist” i nie mogę dowiedzieć się, skąd go skopiować lub jak go wygenerować. Więc teraz utknąłem.
Xcode rozpozna archiwa, ale wyświetli je w „Nieznanym schemacie” i „Bezimiennym archiwum” w organizatorze.
Każda pomoc dotycząca teraz uzyskania poprawnego Info.plist jest bardzo mile widziana.
Z zadowoleniem przyjmuję również zalecenia dotyczące ulepszenia skryptu i / lub bardziej efektywnego sposobu tworzenia wsadowego i archiwizowania tych aplikacji na iOS.
Uwaga:
Nie mogę uaktualnić poza Xcode 4.2, ponieważ wymaga to (jak rozumiem) OS X 10.7+, którego nie jestem jeszcze w stanie uzyskać (komputer firmowy).
Nadal jestem bardzo początkującym bash / shell, więc przepraszam za każdy brzydki kod / praktykę powyżej.
Dotyczy to również oficjalnego przesyłania aplikacji, nie dla ad-hoc lub czegoś podobnego.
Jeszcze raz dziękuję za pomoc.