Ich bin ein CI-System mit Jenkins einrichten und stellte fest, dass der Build fehlgeschlagen, da xcodebuild meldet, gibt es keine Schemas, als ich das ausführte Liniexcodebuild Befehle geben andere Ergebnisse, wenn sie von der Befehlszeile ausgeführt werden, als wenn innerhalb von Jenkins ausgeführt
-xcodebuild -workspace XXX -schema NNN.
Ich konnte nicht herausfinden, warum das passieren könnte, also um etwas verschroben mit meinem Arbeitsbereich zu beseitigen Ich habe eine neue Projektvorlage mit XCode erstellt und festgestellt, dass ich einen Unterschied im Verhalten für jeden xcodebuild Befehl und für jeder Arbeitsbereich/jedes Projekt.
wurde Die Vorlage Projekt Schrott genannt und wenn vom Terminal Befehlszeile ausführen ich diesen Befehl zum Beispiel:
xcodebuild -list
Es gibt
Information about project "scrap":
Targets:
scrap
Build Configurations:
Debug
Release
If no build configuration is specified and -scheme is not passed then "Release" is used.
Schemes:
scrap
Aber wenn ich laufen xcodebuild -Liste aus Jenkins dann ist die Ausgabe stattdessen:
Building in workspace /Users/Shared/Jenkins/Home/workspace/scrap
[scrap] $ /bin/sh -xe /var/folders/ph/s6dvlfq9769741g_yzmjlmz000007c/T/hudson3765407964219991487.sh
+ xcodebuild -list
Information about project "scrap":
Targets:
scrap
Build Configurations:
Debug
Release
If no build configuration is specified and -scheme is not passed then "Release" is used.
This project contains no schemes.
Dieses ist das einfachste von jenkins Jobs - al Ich erstelle einen neuen Job, setze ihn auf ein Free-Style-Software-Projekt, füge dann einen Build-Schritt der Execut-Shell hinzu und füge den Befehl xcodebuild -list hinzu, das ist alles.
Warum sagt xcodebuild, dass es keine Schemata gibt? Und warum verhält es sich anders, wenn man innerhalb von Jenkins läuft?
Haben Sie versucht, den Namen ohne Erweiterung zu übergeben? – Eimantas
Ich habe meine Frage überarbeitet, da ich ein viel allgemeineres Problem gefunden habe, indem ich einfach "xcodebuild -list" zum Beispiel verschiedene Ergebnisse von der Befehlszeile aus innerhalb von Jenkins herausbringe. – Gruntcakes