come risolvere il problema “Command / bin / sh fallito con exit code 1” in iphone

Ho usato una libreria statica di cocoa 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?

Destinazione -/> Fasi di costruzione -> esempi di aggiornamento”></p>
<p>  Fare clic sulla casella di controllo Esegui se non selezionata. </p>
</div>
</li><!-- #comment-## -->
<div class=

Ho avuto questo problema perché ho negato l’accesso portachiavi e per risolverlo è necessario aprire il portachiavi, quindi fare clic sul blocco in alto a destra dello schermo per bloccarlo di nuovo, dopo che è ansible archiviare e funzionerà

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.

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

È ansible verificare se uno script è in esecuzione nell’output di build (nel pannello di navigazione). Se il tuo script fa qualcosa di sbagliato, la fase di costruzione si fermerà.

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

  1. Fare clic su Mostra navigatore di progetto nella finestra di Navigator
  2. Ora Seleziona il progetto immediatamente sotto la finestra di navigazione
  3. Seleziona obiettivi
  4. Seleziona la scheda Fasi di creazione
  5. Apri l’opzione a discesa Script di esecuzione
  6. Seleziona Esegui script solo quando si installa la casella di controllo

Screenshot per passaggi

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

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

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

Hai aggiunto la libreria .a al xcode projet? (progetto -> fasi di creazione -> Collega binario con le 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 ottenuto una libreria che non funzionava con il simulatore ma con un dispositivo reale che compila …)

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

Ho fatto tutto quanto sopra e ho dedicato un’ora al problema.

Ho provato tutto sopra e ho riavviato Xcode.

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

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

Nel mio caso lo script ha avuto esito negativo durante la copia di un file da una posizione a un’altra. Penso che avrebbe potuto essere correlato a Finder che si scopava con i diritti di scrittura su certe cartelle.

Per me questo errore si verificava perché ho cambiato il numero di versione da 1 a 1.0 e ho creato il numero da 6 a 1.1 mentre estraevo il codice dall’albero dei sorgenti. Ho appena cambiato e cambiato il numero di build da 6 a 7 e ha funzionato bene.

Nel mio caso c’era spazio nel percorso che stava fallendo lo script. Se stai usando variabili come $PROJECT_DIR o $TARGET_BUILD_DIR allora sostituiscile rispettivamente "$PROJECT_DIR" o "$TARGET_BUILD_DIR" aggiunto le virgolette il mio script è stato eseguito correttamente.

basta mettere lo script in un file ed eseguire quel file con 2> / dev / null alla fine della riga di comando!

In questo modo, se c’è un problema con il comando qualunque, non fermerà la tua build xcode

nel mio caso stavo eseguendo solo un comando per disinstallare la mia copia precedente dell’app da un iphone connesso, quindi potrebbe dare un errore se l’iphone non è presente. Per risolverlo:

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

L’unica cosa ha funzionato per me:

1) Elimina i dati derivati ​​con CleanMyMac: Posta indesiderata di sistema -> Xcode Junk -> Xcode Derived Data

Eliminazione dei dati derivati ​​con CleanMyMac

2) Quindi in Xcode: Prodotto -> Pulisci

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

Innanzitutto, la risposta accettata di script Run solo quando l’installazione non ha funzionato.

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

Cosa ha funzionato:

  1. Ho aggiunto una nuova fase di build in Fasi di creazione

  2. Nuova fase di copia dei file

  3. Trascina e rilascia il framework scelto nel drop target

  4. Imposta la ‘Destinazione’ su Framework

Credito dovuto al post di Kevin Le’s Medium

Per coloro che non vogliono deselezionare quell’opzione (usando cocoapods per esempio), il problema potrebbe essere con il certificato / chiave.

Xcode (o qualunque strumento tu stia usando, come uno strumento da riga di comando) deve essere in grado di usare il certificato / chiave dal portachiavi. Per questo aprire il portachiavi, individuare il certificato che si desidera utilizzare (di solito sul portachiavi di login , I My Certificates ), fare clic con il tasto destro sulla chiave, selezionare Get Info , fare clic sulla scheda Access Control e aggiungere l’app all’elenco.

Se questo non funziona, prova a sbloccare il portachiavi.

È ansible selezionare un’altra opzione Consenti a tutte le applicazioni di accedere a questo elemento anziché a specifiche app e / o spostare il certificato / chiave sul portachiavi System che è condiviso tra tutti gli account utente su quel Mac.

Controlla anche che il certificato non sia scaduto.

Rimuovi tutti i pod e installa di nuovo.

passi:

  1. commenta tutti i pod ed esegui l’ pod install
  2. decommentare tutti i pod ed eseguire l’ pod install