So beheben Sie das Problem "Befehl / bin / sh mit Exit-Code 1 fehlgeschlagen" im iPhone


92

Ich habe in meiner Anwendung eine statische Kakaobibliothek verwendet. Beim Kompilieren meiner Bibliothek wurde folgende Fehlermeldung angezeigt:

Shell Script invocation error:can't open input file:
/Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-
    bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/
    libSCXMLParser.a (No such file or directory)
Command /bin/sh failed with exit code 1

Screenshot für Fehler

Wie kann ich das beheben?

Antworten:


206

 Ziel -> Build-Phasen -> Aktualisierungsbeispiele

Aktivieren Sie das Kontrollkästchen Ausführen, wenn es nicht aktiviert ist.


2
Dieses Kontrollkästchen befindet sich möglicherweise unter Build-Phasen → Bundle React Native-Code und -Bilder.
Rishat

4
Für mich funktioniert dies beim
Erstellen

Diese Antwort ist richtig. Aber wenn der Modus Generc iOS-Gerät für den Build für alle eingestellt ist ... erhalte den Fehler erneut @Harshad
reza_khalafi

@reza_khalafi Stellen Sie sicher, dass Sie klare Daten haben und abgeleitete Daten löschen. dann versuchen Sie es erneut.
Harshad

1
@ Harshad Funktioniert beim Erstellen, aber nicht zum Archivieren
NGB

63

Ich hatte dieses Problem, weil ich den Schlüsselbundzugriff verweigert habe. Um es zu lösen, müssen Sie den Schlüsselbund öffnen. Klicken Sie dann auf das Schloss oben rechts auf dem Bildschirm, um es erneut zu sperren. Danach können Sie es archivieren und es funktioniert


3
ICH DANKE DIR SEHR! Übrigens, zumindest für mich ist das Schloss auf der linken Seite. Es war offen und musste geschlossen werden.
Eironeia

Ich habe diese Lösung aus einer Quelle geteilt, an die ich mich leider nicht erinnere.
Salem Binmusaed

Ich habe den Exit-Code 134 erhalten, als ich versucht habe, das Produkt zu archivieren, aber ich konnte die App auf dem Gerät installieren. Ich habe den Schlüsselbund geöffnet, aber Sie können das Schloss überall finden, wo meine Xcode-Version 9.2 wirklich Hilfe benötigt
showmyroutes

42

Das Löschen von "Abgeleiteten Daten" hat bei mir funktioniert.

Gehen Sie in Xcode zu Datei> Arbeitsbereichseinstellungen> Klicken Sie auf den Pfeil neben dem Dateipfad für abgeleitete Daten und verschieben Sie den Ordner "Abgeleitete Daten" in den Papierkorb.


1
Auf welche Xcode-Version beziehen Sie sich? ... Ich habe nicht die Menüs / Fenster oder Optionen, auf die Sie sich in Xcode 6.2
CthulhuJon

2
Es ist in Windows-> Organizer nicht Windows-Projekte
CthulhuJon

es funktioniert, musste aber das Projekt bereinigen und Xcode für mich neu starten
Hosny

1
Datei-> Arbeitsbereichseinstellungen ...-> Abgeleitete Daten. Klicken Sie auf den Pfeil am Ende des Pfads. Klicken Sie mit der rechten Maustaste auf den Ordner und wechseln Sie in den Papierkorb. iOS 10.12.6
Augustas

30

Anscheinend führen Sie ein Shell-Skript aus und es kann Ihre spezifische Datei nicht finden. Überprüfen Target -> Build-Phases -> RunScriptSie, ob Sie ein Skript ausführen.

Sie können überprüfen, ob in Ihrer Build-Ausgabe (im Navigatorfenster) ein Skript ausgeführt wird. Wenn Ihr Skript etwas falsch macht, wird die Erstellungsphase gestoppt.


SKM Ich habe meine Antwort bearbeitet. Vielleicht ist es Xcode, der dieses Skript erstellt hat, um Ihre statische Bibliothek zu finden. Übrigens wird es nicht kompiliert, da die Datei unter /Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/libSCXMLParser.a nicht gefunden werden kann. Stellen Sie also sicher, dass Sie es dort
einfügen

19

Ich hatte das gleiche Problem behoben. Führen Sie die folgenden Schritte aus, um das Problem in Xcode 6.4 zu beheben .

  1. Klicken Sie im Navigatorfenster auf Projektnavigator anzeigen
  2. Jetzt Wählen Sie Projekt unmittelbar unter Navigatorfenster
  3. Wählen Sie Ziele
  4. Wählen Sie die Registerkarte Phasen erstellen
  5. Öffnen Sie die Dropdown-Option Skript ausführen
  6. Aktivieren Sie das Kontrollkästchen Skript nur bei Installation installieren

Screenshot für Schritte

Bereinigen Sie nun Ihr Projekt (cmd + shift + k) und erstellen Sie Ihr Projekt.


Dies sollte die akzeptierte Antwort sein. Für ein Problem bin / sh ist dies die Lösung.
Yash Bedi

9

Das Bereinigen des Build-Ordners (Cmd + Shift + Alt + K) hat bei mir funktioniert


3

1) Löschen Sie den Pod-Ordner und die .xcworkspace-Datei. 2) Öffnen Sie den Ordner in Terminal. 3) Geben Sie "pod install" ein.


1

Haben Sie die .a-Bibliothek zum xcode-Projekt hinzugefügt? (Projekt -> Erstellungsphasen -> Binärdatei mit Bibliotheken verknüpfen -> auf '+' klicken -> auf 'Andere hinzufügen' klicken -> Bibliothek auswählen)

Und vielleicht ist die Bibliothek nicht mit dem Simulator kompatibel. Haben Sie versucht, für iDevice (nicht für den Simulator) zu kompilieren?

(Ich habe bereits mit dem zweiten Problem gekämpft, ich habe eine Bibliothek, die nicht mit dem Simulator funktioniert, sondern mit einem realen Gerät, das kompiliert wird ...)


1

Für mich ist mein Zertifikat abgelaufen. Ich habe ein neues Zertifikat erstellt.


0

Ich habe versucht, Xcode (7) neu zu starten und nichts (das hast du versucht, es von der iOS-Entwicklung für mich aus- und wieder einzuschalten :-)). Ich habe es dann versucht, indem ich meine Box neu gestartet habe und das hat funktioniert.

In meinem Fall schlug das Skript beim Kopieren einer Datei von einem Speicherort an einen anderen fehl. Ich denke, es könnte damit zusammenhängen, dass Finder mit Schreibrechten für bestimmte Ordner schraubt.


0

Bei mir trat dieser Fehler auf, weil ich die Versionsnummer von 1 auf 1.0 und die Build-Nummer von 6 auf 1.1 geändert habe, als ich den Code aus dem Quellbaum gezogen habe. Ich habe es gerade zurück geändert und die Build-Nummer von 6 auf 7 geändert, und es hat gut funktioniert.


0

In meinem Fall war im Pfad Speicherplatz vorhanden, bei dem das Skript fehlgeschlagen ist. Wenn Sie Variablen wie verwenden $PROJECT_DIRoder $TARGET_BUILD_DIRdiese ersetzen "$PROJECT_DIR"bzw. ersetzen. Nach dem "$TARGET_BUILD_DIR"Hinzufügen von Anführungszeichen wurde mein Skript erfolgreich ausgeführt.


0

Legen Sie einfach Ihr Skript in eine Datei und führen Sie diese Datei mit 2> / dev / null am Ende der Befehlszeile aus!

Auf diese Weise wird Ihr xcode-Build nicht angehalten, wenn ein Problem mit dem Befehl auftritt

In meinem Fall habe ich nur einen Befehl zum Deinstallieren meiner vorherigen Kopie der App von einem verbundenen iPhone ausgeführt, sodass ein Fehler auftreten kann, wenn das iPhone nicht vorhanden ist. Um es zu lösen:

$mobiledevice uninstall_app com.my.app 2>/dev/null



0

Ich habe alles oben getan und eine Stunde mit dem Thema verbracht.

Versuchte alles oben und startete Xcode neu.

Endlich Computer neu gestartet und alles funktioniert wieder normal!


1
Sie haben diesem Beitrag mit der Antwort nichts hinzugefügt. Ein Neustart des Computers kann ein Kommentar sein, da er nicht erklärt, was falsch war.
Bojan Petkovic

Ein seltsames Problem, gelöschte abgeleitete Daten und umgeschaltetes / nicht umgeschaltetes neues Build-System. Aber nach einem Neustart war ich ok!
Oritm

0

Ich werde Dinge auflisten, die ich getan habe, die für mich nicht funktioniert haben, und schließlich, was getan hat

Erstens hat die akzeptierte Antwort von Skript ausführen nur bei der Installation nicht funktioniert.

Das Löschen abgeleiteter Daten hat nicht funktioniert.

Was hat funktioniert:

  1. Ich habe eine neue Build-Phase in Build-Phasen hinzugefügt

  2. Neue Phase zum Kopieren von Dateien

  3. Ziehen Sie das ausgewählte Framework per Drag & Drop in das Drop-Ziel

  4. Setzen Sie das 'Ziel' auf Frameworks

Gutschrift wegen Kevin Le's Medium Post


0

Für diejenigen, die diese Option nicht deaktivieren möchten (z. B. mit Cocoapods), liegt das Problem möglicherweise am Zertifikat / Schlüssel.

Xcode (oder ein anderes Tool, das Sie verwenden, z. B. ein Befehlszeilentool) muss in der Lage sein, das Zertifikat / den Schlüssel aus dem Schlüsselbund zu verwenden. Öffnen Sie dazu den Schlüsselbund, suchen Sie das Zertifikat, das Sie verwenden möchten (normalerweise am loginSchlüsselbund My Certificates), klicken Sie mit der rechten Maustaste auf den Schlüssel, wählen Sie aus Get Info, klicken Sie auf die Access ControlRegisterkarte und fügen Sie die App zur Liste hinzu.

Wenn dies nicht funktioniert, entsperren Sie den Schlüsselbund.

Eine andere Option kann die Option Allen Anwendungen erlauben, auf dieses Element anstelle bestimmter Apps zuzugreifen, und / oder das Zertifikat / den Schlüssel in den SystemSchlüsselbund verschieben, der von allen Benutzerkonten auf diesem Mac gemeinsam genutzt wird.

Stellen Sie außerdem sicher, dass das Zertifikat nicht abgelaufen ist.



0

In meinem Fall ist eines der Skripte (im Zusammenhang mit SwiftGen) während der Kompilierung fehlgeschlagen.

Ich habe das Problem behoben, indem ich das entfernt Podsund dann erneut aktualisiert habe.

  1. Entfernen Sie den problematischen Pod unter PodsVerzeichnis oder verwenden Siepod deintegrate
  2. Installieren / Aktualisieren Sie die Pods mit pod installoderpod update

PS Es ist möglich, dass Ihre Abhängigkeit global ist und sich nicht in Pods befindet. In diesem Fall können Sie auch versuchen, diese Abhängigkeit neu zu installieren.


0

LESEN SIE DIESES, WENN SIE Crashlytics VERWENDEN UND DIESES PROBLEM HABEN ...

Ich habe das gleiche Problem wie oben Command /bin/sh failed with exit code 1genauer[31merror: Could not fetch upload-symbols settings: An unknown error occurred fetching settings.[0m

Die erste Lösung (die das Ausführungsskript nur bei der Installation aktiviert) ermöglichte es mir, mein Ziel im Simulator zu erstellen, aber ich konnte meinen Build nicht archivieren.

Ich habe dieses Archivproblem gelöst, indem ich Crashlytics auf Firebase aktiviert habe. Ich bin immer noch an Fabric gewöhnt, bei dem Crashlytics automatisch aktiviert wird. Nachdem ich Crashlytics in der Firebase-Konsole für die entsprechende GoogleService-Info.plist aktiviert hatte, konnte ich ohne diesen Fehler archivieren.


-1

Entfernen Sie alle Pods und installieren Sie sie erneut.

Schritte:

  1. Kommentiere alle Pods und starte pod install
  2. Alle Pods auskommentieren und ausführen pod install
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.