2015-09-21 28 views
6

Miałem bota, który działał idealnie pod Xcode 6.4. Skrypt po wyzwalania została automatycznie przesyłając IPA przy użyciu tej ścieżki: „$ XCS_OUTPUT_DIR/$ XCS_PRODUCT”

jednak (nawet po ponawianie bota od zera), wydaje się, że:

  • $ XCS_PRODUCT jest zawsze pusty.
  • $ XCS_OUTPUT_DIR jest skierowany do folderu, który nie istnieje, ponieważ po sprawdzeniu na serwerze wydaje się, że serwer Xcode jest przechowywanie .ipa tam:/Library/Developer/XcodeServer/IntegrationAssets/

Jak znaleźć mój .ipa bez tej zmiennej podczas mojego skryptu po wyzwoleniu?

+0

Mam dokładnie ten sam problem. IPA nie jest produkowany dopóki mój skrypt przestał go szukać ... – Mikael

+1

Wysłałem raport o błędzie na Apple, ktoś oznaczył go jako duplikat, miejmy nadzieję, że to naprawiono wkrótce! :) – Ganzolo

Odpowiedz

4

miałem ten sam problem i po dyskusji na Apple Developer Forums I okazało się, że faktycznie jest plik .ipa wewnątrz

/Library/Developer/XcodeServer/Integrations/Integration-INTEGRATION_ID/ExportedProduct/ 

katalogu i można do niego dostęp z Po Script wyzwalania używając coś jak

originalBinaryName=$(basename "${XCS_ARCHIVE%.*}".ipa) 
originalBinaryPath="${XCS_OUTPUT_DIR}/ExportedProduct/Apps/${originalBinaryName}" 

mam również wysłany raport o błędzie, ponieważ $ XCS_PRODUCT nie powinno być puste i tak, i to byłoby miło mieć nową zmienną środowiskową dla pełnej ścieżki pliku .IPA.

+0

Próbowałem czegoś podobnego, ale wygląda na to, że wszystkie .ipa są generowane po zakończeniu "skryptu po wyzwoleniu". Czy próbowałeś swojego rozwiązania? Czy to działa? – Ganzolo

+0

Tak, teraz działa. IPA są tam, kiedy wykonywany jest "po wyzwalaczu". – tadija

+0

Możesz również sprawdzić obecność plików na terminalu podczas trwania integracji. Może masz złą ścieżkę do pliku lub coś podobnego. – tadija