come risolvere il problema "Comando / bin / sh non riuscito con codice di uscita 1" in iphone


92

Ho usato una libreria statica di cacao nella mia applicazione. Quando compilo la mia libreria ho ricevuto il seguente errore:

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 per errore

Come posso risolvere questo problema?

Risposte:


206

 Target -> Build-Fhases -> update examples

Fare clic sulla casella di controllo On Run se non selezionata.


2
Questa casella di controllo potrebbe trovarsi sotto Build Phases → Bundle React Native code and images.
rishat

4
per me funziona durante la creazione / installazione dell'app sul telefono, ma non durante l'archiviazione
Adeem

Questa risposta è corretta, ma quando si imposta la modalità Generc iOS Device per ottenere build fr all ... ottenere di nuovo l'errore @Harshad
reza_khalafi

@reza_khalafi assicurati di avere dati chiari e di eliminare i dati derivati. quindi riprova.
Harshad

1
@Harshad funziona durante la costruzione ma non per l'archiviazione
NGB

63

Ho avuto questo problema perché ho negato l'accesso al portachiavi e per risolverlo è necessario aprire il portachiavi, quindi fare clic sul lucchetto in alto a destra dello schermo per bloccarlo di nuovo, dopodiché è possibile archiviare e funzionerà


3
GRAZIE MILLE! A proposito, almeno per me la serratura è nella parte sinistra. Era aperto e doveva chiuderlo.
Eironeia

Ho condiviso questa soluzione da una fonte che purtroppo non ricordo.
Salem Binmusaed il

Ho ricevuto il codice di uscita 134 quando provo ad archiviare il prodotto, ma potrei installare l'app sul dispositivo, ho aperto il portachiavi ma potresti trovare il lucchetto ovunque, il mio Xcode versione 9.2, ha davvero bisogno di aiuto
showmyroutes

42

L'eliminazione di "Dati derivati" ha funzionato per me.

In Xcode vai su File> Impostazioni area di lavoro> Fai clic sulla freccia accanto al percorso del file Dati derivati> sposta la cartella "Dati derivati" nel cestino.


1
A quale versione di Xcode ti riferisci? ... Non ho il menu / le finestre o le opzioni a cui ti riferisci in Xcode 6.2
CthulhuJon

2
è in Windows-> Organizer, non Windows Projects
CthulhuJon

funziona ma era necessario pulire il progetto e riavviare Xcode per me
Hosny

1
File-> Impostazioni area di lavoro ...-> Dati derivati. Fare clic sulla freccia alla fine del percorso. Fare clic con il tasto destro sulla cartella e spostarsi nel cestino. iOS 10.12.6
Augustas

30

Sembra che tu stia eseguendo uno script di shell e non riesce a trovare il tuo file specifico. Guarda Target -> Build-Phases -> RunScriptse stai eseguendo uno script.

Puoi controllare se uno script è in esecuzione nell'output della build (nel pannello di navigazione). Se il tuo script fa qualcosa di sbagliato, la fase di costruzione si interromperà.


SKM ho modificato la mia risposta. Forse è Xcode che ha creato questo script per trovare la tua libreria statica. A proposito non si sta compilando perché non riesce a trovare il file in /Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/libSCXMLParser.a. Quindi assicurati di includerlo lì
Mr Bonjour,

19

Ho avuto lo stesso problema risolto. Utilizzare i passaggi seguenti per risolvere il problema in Xcode 6.4.

  1. Fare clic su Mostra navigatore progetto nella finestra Navigatore
  2. Ora seleziona il progetto immediatamente sotto la finestra del navigatore
  3. Seleziona obiettivi
  4. Seleziona la scheda Build Phases
  5. Apri l'opzione a discesa Esegui script
  6. Seleziona la casella di controllo Esegui script solo durante l'installazione

Screenshot per i passaggi

Ora pulisci il tuo progetto (cmd + shift + k) e crea il tuo progetto.


Questa dovrebbe essere la risposta accettata. Per un problema bin / sh questa è la soluzione.
Yash Bedi

9

La pulizia della cartella build (Cmd + Maiusc + Alt + K) ha funzionato per me


3

1) Elimina la cartella pod e il file .xcworkspace 2) Apri la cartella nel terminale 3) Digita "pod install"


1

Hai aggiunto la libreria .a al progetto xcode? (progetto -> fasi di compilazione -> Collega binario con librerie -> fai clic su "+" -> fai clic su "aggiungi altro" -> scegli la tua libreria)

E forse la libreria non è compatibile con il simulatore, hai provato a compilare per iDevice (non simulatore)?

(Ho già combattuto con il secondo problema, ho una libreria che non funzionava con il simulatore ma con un dispositivo reale si compila ...)


1

Per me, il mio certificato è scaduto. Ho creato un nuovo certificato.


0

Ho provato a riavviare Xcode (7) e niente ( hai provato a spegnerlo e riaccenderlo dello sviluppo iOS per me :-)). Ho quindi provato riavviando la mia scatola e ha funzionato.

Nel mio caso lo script non funzionava durante la copia di un file da una posizione a un'altra. Penso che potrebbe essere correlato al Finder che rovina con i diritti di scrittura su determinate cartelle.


0

Per me questo errore si è verificato perché ho cambiato il numero di versione da 1 a 1.0 e il numero di build da 6 a 1.1 mentre estraevo il codice dall'albero dei sorgenti. L'ho appena cambiato di nuovo e ho cambiato il numero di build da 6 a 7 e ha funzionato bene.


0

Nel mio caso c'era spazio nel percorso che non funzionava con lo script.Se stai usando variabili come $PROJECT_DIRo, $TARGET_BUILD_DIRsostituiscile "$PROJECT_DIR"o "$TARGET_BUILD_DIR"rispettivamente.Dopo aver aggiunto virgolette, il mio script è stato eseguito correttamente.


0

metti il ​​tuo script in un file ed esegui quel file con 2> / dev / null alla fine della riga di comando!

In questo modo, se c'è un problema con il comando, non si fermerà la compilazione di xcode

nel mio caso stavo eseguendo solo un comando per disinstallare la mia copia precedente dell'app da un iPhone collegato, quindi potrebbe dare un errore se l'iPhone non è lì. Per risolverlo:

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



0

Ho fatto tutto quanto sopra e ho trascorso un'ora sulla questione.

Ho provato tutto sopra e riavviato Xcode.

Infine, riavviato il computer e tutto funziona di nuovo normalmente!


1
non hai aggiunto nulla a questo post con la risposta. Il riavvio del computer può essere un commento in quanto non aiuta a spiegare cosa c'era che non andava.
Bojan Petkovic

Qualche strano problema, dati derivati ​​cancellati e nuovo sistema di compilazione commutato / non commutato. Ma dopo un riavvio stavo bene!
Oritm

0

Elencherò le cose che ho fatto che non hanno funzionato per me e infine cosa ha funzionato

Innanzitutto, la risposta accettata di Esegui script solo durante l'installazione non ha funzionato.

L'eliminazione dei dati derivati ​​non ha funzionato.

Cosa ha funzionato:

  1. Ho aggiunto una nuova fase di costruzione in Build Phases

  2. Nuova fase di copia dei file

  3. Trascina e rilascia il framework scelto nella destinazione di rilascio

  4. Imposta la "Destinazione" su Frameworks

Credito dovuto al post Medium di Kevin Le


0

Per coloro che non vogliono deselezionare questa opzione (utilizzando cocoapods ad esempio), il problema potrebbe essere con il certificato / chiave.

Xcode (o qualunque strumento tu stia utilizzando, come uno strumento da riga di comando) deve essere in grado di utilizzare il certificato / chiave dal portachiavi. Per questo apri il portachiavi, individua il certificato che desideri utilizzare (di solito sul loginportachiavi My Certificates), fai clic con il pulsante destro del mouse sulla chiave, seleziona Get Info, fai clic sulla Access Controlscheda e aggiungi l'app all'elenco.

Se non funziona, prova a sbloccare il portachiavi.

Un'altra opzione può essere selezionare Consenti a tutte le applicazioni di accedere a questo elemento invece di app specifiche e / o spostare il certificato / la chiave nel Systemportachiavi che è condiviso tra tutti gli account utente su quel Mac.

Controlla anche che il certificato non sia scaduto.



0

Nel mio caso, uno degli script (relativo a SwiftGen) non funzionava durante la compilazione.

Ho risolto il problema rimuovendo Podse aggiornandoli di nuovo.

  1. Rimuovere il pod problematico nella Podsdirectory o utilizzarepod deintegrate
  2. Installa / Aggiorna i pod utilizzando pod installopod update

PS È possibile che la tua dipendenza sia globale e non sia nei pod. In tal caso puoi anche provare a reinstallare quella dipendenza.


0

LEGGI QUESTO SE USI Crashlytics E HAI QUESTO PROBLEMA ...

Stavo avendo lo stesso problema di cui sopra in modo Command /bin/sh failed with exit code 1più specifico[31merror: Could not fetch upload-symbols settings: An unknown error occurred fetching settings.[0m

La prima soluzione (abilitare lo script di esecuzione solo durante l'installazione) mi ha permesso di costruire il mio target nel simulatore, ma non ho potuto archiviare la mia build.

Ho risolto questo problema di archivio abilitando Crashlytics su Firebase. Sono ancora abituato a Fabric dove Crashlytics è abilitato automaticamente. Dopo aver abilitato Crashlytics nella console Firebase per il corrispondente GoogleService-Info.plist, sono stato in grado di archiviare senza questo errore.


-1

Rimuovi tutti i pod e installali di nuovo.

Passaggi:

  1. commenta tutti i pod ed esegui pod install
  2. rimuovere il commento da tutti i pod ed eseguire pod install
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.