xcodebuild schlägt fehl, wenn es von Jenkins ausgeführt wird (funktioniert im Terminal)

8

Ich versuche Jenkins CI (auf einem Mac Mini mit Mavericks) zu verwenden, indem ich den Befehl xcodebuild verwende, um meine iOS-Projekte zu erstellen. Ich habe stundenlang damit herumgespielt, kann aber dieses Problem nicht verstehen.

Der folgende Befehl erstellt mein Projekt ohne Probleme in der Befehlszeile, schlägt aber fehl, wenn es in Jenkins ausgeführt wird.

%Vor%

(Zeilenumbrüche zur besseren Übersicht hinzugefügt.)

Der Fehler sieht immer so aus:

%Vor%

Was ich bis jetzt gemacht habe:

  • Der Benutzer ist in Jenkins und in der Befehlszeile identisch (siehe dies SO Frage )
  • Der Benutzer ist der Root-Benutzer der Build-Maschine
  • Die Bereitstellung funktioniert mit einem anderen Beispielprojekt, das ich eingerichtet habe (d. h. es handelt sich nicht um ein Schlüsselbundproblem)
  • Ich habe die aktuellen Xcode 5.1-Befehlszeilenprogramme installiert und ein Handbuch erstellt xcode-select
  • Ich habe export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer" verwendet, bevor ich den xcodebuild -Befehl
  • aufgerufen habe
  • Ich habe DerivedData vor dem Ausführen des Jenkins-Jobs
  • gelöscht

BEARBEITEN: Ich habe vergessen zu erwähnen, dass dieses Projekt CocoaPods verwendet, nicht sicher, ob das der Grund sein könnte, warum es nicht erstellt.

EDIT 2: Ich habe etwas mehr Fehler ausgegeben. Ich überprüfe meinen Pods-Ordner in Git. Das gleiche Projekt wird ohne Probleme in der Befehlszeile erstellt. Es gibt absolut keinen Unterschied im Befehl, ich habe dreifach überprüft. Leider kann ich das Xcode-Plugin nicht für verschiedene Anpassungsgründe verwenden. Aber selbst wenn ich könnte, ich möchte wirklich herausfinden, was der Unterschied zwischen den beiden Umgebungen ist.

Update: Ich scheine es einfach nicht zu schaffen, einige der .m-Dateien in meinem Projekt zu kompilieren. Die Ausgabe unterscheidet sich immer ein wenig von einem Build zum anderen. Ich fügte auch eine Abhängigkeit in meinem Erstellungsschema hinzu, um sicherzustellen, dass CocoaPods vor allem anderen erstellt wird.

Immer noch keine Ahnung, warum einige Dateien dieses Problem verursachen. Kann jemand bestätigen, dass sie immer noch Projekte von Jenkins mit xcodebuild Xcode 5.1 Build version 5B130a erstellen können?

    
m.barakuda 26.03.2014, 13:59
quelle

1 Antwort

1

Ich verwende Xcode 5.0.2 (5A3005) und ich baue auch mit xcodebuild von der Kommandozeile, ohne das Jenkins-Plugin oder die IDE zu verwenden.

Eine Anmerkung: Jenkins erstellt eine neue Gruppe von Umgebungsvariablen für jeden Build-Schritt. Alle neuen Umgebungsvariablen, die in einem bestimmten Build-Schritt erstellt wurden, werden im nächsten Build-Schritt nicht repliziert. Es gibt Möglichkeiten (aber das ist derzeit nicht deine Frage). Wenn der Befehl export in einem separaten Schritt Shell ausführen vom Befehl xcodebuild ausgeführt wird, hat er keine Auswirkungen.

Hier ist etwas zu versuchen:
Geben Sie in der Befehlszeile xcode-select -p ein.
Dann tippe set Kopieren Sie die Ausgabe in einen guten Texteditor, der diff

enthalten kann

Führen Sie anschließend einen Jenkins-Job aus und verwenden Sie im Schritt Ausführung ausführen die gleichen Befehle:
xcode-select -p set Kopieren Sie die Ausgabe in einen guten Texteditor und dann die beiden Dateien.

Vergleichen Sie zunächst die Ausgabe von xcode-select -p ist gleich.
Dann sollten, abgesehen von extra Variablen in der Jenkins-Ausführung (wie $BUILD_NUMBER , usw.), keine Unterschiede auftreten.

    
Slav 27.03.2014 16:59
quelle

Tags und Links