web-dev-qa-db-de.com

Erstellen von Xcode 10-Befehlszeilen: Archivierung mit Fabric Info.plist-Fehler fehlgeschlagen

Ich habe einen Jenkins-Server zum automatischen Erstellen eines iOS-Projekts, das zwei Ziele hat Projekt wird mit dem Befehlszeilendienstprogramm xcodebuild erstellt.

Vollständige Befehle sind

/usr/bin/xcodebuild -workspace "Unser project.xcworkspace" 
 -scheme "Erstes Ziel" 
 -Konfigurationsversion 
 Archiv
 DEVELOPMENT_TEAM = TEAMCODE 
 -allowProvisioningUpdates 

und

/usr/bin/xcodebuild -workspace "Unser project.xcworkspace" 
 -scheme "Zweites Ziel" 
 -Konfigurationsversion 
 Archiv
 DEVELOPMENT_TEAM = TEAMCODE 
 -allowProvisioningUpdates 

Bevor ich Xcode auf Version 10 aktualisiert habe, funktioniert es einwandfrei. Aber nach jedem Update sehe ich einen Fehler

fehler: Fabric: Info.plist Fehler

Info.plist kann nicht unter Pfad /Users/Shared/Jenkins/Library/Developer/Xcode/DerivedData/Our_project-xxxx/Build/Intermediates.noindex/ArchiveIntermediates/Our project/BuildProductsPath/Release-iphoneos/First application.app/Info verarbeitet werden .plist Dies könnte ein Timing-Problem sein. Stellen Sie sicher, dass die Buildphase für das Fabric-Ausführungsskript die letzte Buildphase ist und keine anderen Skripts verschoben wurden. Unsere application.app wurde von dem Speicherort verschoben, den Xcode generiert hat. Sie können auch "$ (BUILT_PRODUCTS_DIR)/$ (INFOPLIST_PATH)" als "Eingabedateien" -abhängigkeit für die Build-Phase des Fabric-Ausführungsskripts hinzufügen.

** ARCHIV FEHLGESCHLAGEN **

Nach dem Googeln und Lesen der Fehlerbeschreibung öffnete ich den Build phases-Tab in Xcode und richtete ihn ein (Run script-Element nach unten verschieben, Run script only when installing überprüfen und $(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH) zu den Eingabedateien hinzufügen und auch das leere Run script-Element entfernen).

Das manuelle Erstellen von der Befehlszeile aus funktioniert jetzt - es scheint, als wäre das Problem gelöst. Sogar Jenkins baute das erste Ziel! Aber ein zweites Ziel hat nicht den gleichen Fehler.

Ich habe ein Projekt geöffnet, die Registerkarte "Build-Phasen" angesehen und festgestellt, dass das Run script-Element nach oben verschoben wurde und ein neues leeres Run script angezeigt wurde ..__ Danach experimentierte ich: Baue die Phasen ein, baue das Projekt in der Xcode-GUI neu auf und sehe, dass die Phasen neu angeordnet wurden. So tritt es während oder nach dem Bauen auf.

Wie kann ich diesen Fehler beheben?

Sprich, kann ich Build-Phasen manuell von der Kommandozeile aus bestellen? Wenn ja, füge ich nur eine Zeile in Jenkins Schritt an.

Außerdem: Dieser Fehler tritt nur beim Erstellen von Befehlszeilen auf. Wenn ich ein Projekt von Xcode GUI aus baue, ist es immer erfolgreich.

1
General Failure

Ich habe eine krückenartige Lösung gefunden: Wählen Sie Legacy Build System unter File -> Workspace Settings -> Build System in der Xcode-GUI aus.

Warum ist das eine schlechte Lösung? Durch:

  • Legacy Build System ist langsamer als New Build System (Default).

  • Es ist keine Xcode-Einstellung, sondern ein Arbeitsbereich. D.h. Nachdem Sie den Arbeitsbereichsordner in Jenkins oder einige Systemsteuerungen des Versionskontrollsystems gesäubert haben, wird diese Einstellung auf die Standardeinstellungen zurückgesetzt.

5
General Failure

Okay, ich habe das Lösungsformular Fabrics . Fügen Sie diesen Pfad für Xcode 10 zu den Eingabedateien in der Build-Phase in XCode hinzu $ (BUILT_PRODUCTS_DIR)/$ (INFOPLIST_PATH)

 enter image description here

3
Elsammak

Lösung zum Abschließen der Einrichtung von Crashlytics und/oder des Fabric mit den folgenden Anweisungen: 1. Gehen Sie zu den Build-Einstellungen 2. Suchen Sie nach "Debug Information Format" 3. Ändern Sie den Wert von "Debug" von "DWARF" in "DWARF with dSYM File" 4. Bauen Sie Ihr Projekt erneut auf.

"DWARF" ändern Bild prüfen

Zu "DWARF mit dSYM-Datei" Bild prüfen

1
Bhavik Modi