2016-10-03 48 views
5

Jestem zajęty pracą nad kompilacją Jenkinsa, która będzie budować aplikacje na iOS. I udało się utworzyć archiwum powodzeniem z tym poleceniem:XCodeBuild -exportArchive nie pozwala mi podać nazwy pliku

xcodebuild archive -archivePath build/app.xcarchive 

Teraz próbuję wyeksportować archiwum z określeniem nazwy pliku wyjściowego, ale nie może uzyskać to work.In przykład poniżej Chcę plik wyjściowy o nazwie app.ipa, ale mogę to folder o nazwie app.ipa z pliku ipa środku Nazwa .ipa

xcrun xcodebuild -exportArchive -exportPath build/app.ipa -archivePath build/app.xcarchive/ -exportOptionsPlist exportOptions.plist 

Outputs a file /build/app.ipa/<projectname>.ipa 

Jabłka dokumentacja XCodeBuild mówi, że można określić ścieżkę wyjścia w tym pliku nazwa:

-export Ścieżka docelowa ścieżka Określa miejsce docelowe wyeksportowanego produktu, w tym nazwę wyeksportowanego pliku.

https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcodebuild.1.html

Powodem tego jest to, że chciałbym zachować build generic tak, że każdy projekt wyślę przez to spowoduje app.ipa bez konieczności mi śledzić nazwy projektu i różne formaty wyjściowe itp

+0

Co to jest 'xcrun xcodebuild'. Nigdy wcześniej czegoś takiego nie widziałem. – midori

+0

"xcrun umożliwia lokalizowanie lub wywoływanie narzędzi programistycznych z poziomu wiersza poleceń, bez konieczności modyfikowania plików Makefile przez użytkownika lub podejmowania w inny sposób niewygodnych środków w celu obsługi wielu łańcuchów narzędzi Xcode." https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man1/xcrun.1.html – Craigt

+1

Tak, wcześniej bez -exportOptionsPlist, to samo polecenie utworzy określony plik, teraz po 8.3 , tworząc folder i wewnątrz tego folderu .ipa. Czy jest jakieś obejście z wyjątkiem użycia mv? – karim

Odpowiedz

2

Jeśli do xcodebuild --help ona mówi:

-exportPath PATH specifies the destination for the product exported from an archive 

hmmm.

Aby obejść ten problem, można zmienić nazwę pliku później.

mv "oldname" "newname" 
+0

Witam, chciałbym osiągnąć to bez wiedzy o tym "stary". Chcę ponownie wykorzystać ten sam skrypt kompilacji dla wielu projektów i nie wiem, jaka jest nazwa pliku wyjściowego. – Craigt

+0

Czy jabłko pozbyło się możliwości określenia nazwy pliku .ipa? Wydaje się dziwne, że pozwalają ci to określić dla .xcarchive, ale nie na wynik .ipa. – Bungles

3

ArchiveAction tag w .xcscheme pliku może mieć atrybut customArchiveName, które mogą być ustawione na cokolwiek chcesz.

<ArchiveAction 
     buildConfiguration = "AdHoc_Example" 
     customArchiveName = "app" 
     revealArchiveInOrganizer = "YES"> 
    </ArchiveAction> 
</Scheme> 

To daje app.ipa zawsze podczas eksportowania archiwum poprzez -exportOptionsPlist.