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.

questionAnswers(2)

yourAnswerToTheQuestion