cómo solucionar el problema "El comando / bin / sh falló con el código de salida 1" en el iphone

92

Usé una biblioteca estática de cocoa en mi aplicación. Cuando compilo mi biblioteca, recibí el siguiente error:

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

Captura de pantalla del error

¿Cómo puedo arreglar esto?

Ben10
fuente

Respuestas:

208

 Target -> Build-Phases -> ejemplos de actualización

Haga clic en la casilla de verificación On Run si no está seleccionada.

Harshad
fuente
2
Esta casilla de verificación puede estar en Build Phases → Bundle React Native código e imágenes.
rishat
4
para mí, esto funciona al crear / instalar la aplicación en el teléfono, pero no al archivar
Adeem
Esta respuesta es correcta. Pero cuando se establece el modo Generc iOS Device para obtener build fr all ... get the errr nuevamente @Harshad
reza_khalafi
@reza_khalafi asegúrese de tener datos claros y de eliminar los datos derivados. vuelva a intentarlo.
Harshad
1
@Harshad Funciona mientras se construye pero no para archivar
NGB
63

Tuve este problema porque denegué el acceso al llavero y para resolverlo necesitas abrir el llavero, luego haz clic en el candado en la parte superior derecha de la pantalla para bloquearlo nuevamente, luego puedes archivarlo y funcionará

Salem Binmusaed
fuente
3
¡MUCHAS GRACIAS! Por cierto, al menos para mí la cerradura está en el lado izquierdo. Estaba abierto y tuve que cerrarlo.
Eironeia
Compartí esta solución de una fuente que desafortunadamente no recuerdo.
Salem Binmusaed
Obtuve el código de salida 134 cuando intenté archivar el producto, pero pude instalar la aplicación en el dispositivo, abrí el llavero, pero ¿podrías encontrar el candado en alguna parte? Mi Xcode versión 9.2, realmente necesito ayuda
showmyroutes
42

Eliminar "Datos derivados" funcionó para mí.

En Xcode, vaya a Archivo> Configuración del espacio de trabajo> Haga clic en la flecha junto a la ruta del archivo de datos derivados> mueva la carpeta "Datos derivados" a la papelera.

hgwhittle
fuente
1
¿A qué versión de Xcode te refieres? ... No tengo el menú / ventanas u opciones a las que te refieres en Xcode 6.2
CthulhuJon
2
está en Windows-> Organizador, no en Proyectos de Windows
CthulhuJon
funciona pero necesitaba limpiar el proyecto y reiniciar Xcode para mí
Hosny
1
Archivo-> Configuración del espacio de trabajo ...-> Datos derivados. Haga clic en la flecha al final de la ruta. Haz clic derecho en la carpeta y muévete a la papelera. iOS 10.12.6
Augustas
30

Parece que está ejecutando un script de shell y no puede encontrar su archivo específico. MirarTarget -> Build-Phases -> RunScript si está ejecutando un script.

Puede verificar si se está ejecutando un script en la salida de su compilación (en el panel de navegación). Si su script hace algo mal, la fase de construcción se detendrá.

Señor Bonjour
fuente
SKM he editado mi respuesta. Tal vez sea Xcode quien ha creado este script para encontrar su biblioteca estática. Por cierto, no se está compilando porque no puede encontrar el archivo en /Users/sijuthomas/Library/Developer/Xcode/DerivedData/SCXML2-bbttehupryhijphhjdiemcytkvgy/Build/Products/Debug-iphonesimulator/libSCXMLParser.a. Así que asegúrese de incluirlo allí
Mr Bonjour
19

Tuve el mismo problema que lo solucioné. Siga los pasos a continuación para resolver el problema en Xcode 6.4.

  1. Haga clic en Mostrar navegador de proyectos en la ventana del navegador
  2. Ahora seleccione el proyecto inmediatamente debajo de la ventana del navegador
  3. Seleccionar objetivos
  4. Seleccione la pestaña Build Phases
  5. Abrir la opción desplegable Ejecutar script
  6. Seleccione Ejecutar secuencia de comandos solo al instalar la casilla de verificación

Captura de pantalla de los pasos

Ahora, limpie su proyecto (cmd + shift + k) y construya su proyecto.

Jayprakash Dubey
fuente
Esta debería ser la respuesta aceptada. Para un problema bin / sh, esta es la solución.
Yash Bedi
9

Limpiar la carpeta de compilación (Cmd + Shift + Alt + K) funcionó para mí

nb07
fuente
3

1) Elimine la carpeta del pod y el archivo .xcworkspace 2) Abra la carpeta en el terminal 3) Escriba "pod install"

Akil
fuente
1

¿Agregó la biblioteca .a al proyecto xcode? (proyecto -> fases de construcción -> Vincular binarios con bibliotecas -> haga clic en '+' -> haga clic en 'agregar otro' -> elija su biblioteca)

Y tal vez la biblioteca no sea compatible con el simulador, ¿intentó compilar para iDevice (no para el simulador)?

(Ya luché con el segundo problema, obtuve una biblioteca que no funcionaba con el simulador pero con un dispositivo real que compila ...)

Ashbay
fuente
1

Para mí, mi certificado está vencido. He creado un nuevo certificado.

Vincent sentarse
fuente
0

Intenté reiniciar Xcode (7) y nada ( has intentado apagarlo y encenderlo de nuevo en el desarrollo de iOS para mí :-)). Luego lo intenté reiniciando mi caja y funcionó.

En mi caso, el script fallaba al copiar un archivo de una ubicación a otra. Creo que podría haber estado relacionado con Finder con los derechos de escritura sobre ciertas carpetas.

Juan Fran Jiménez
fuente
0

Para mí, este error se produjo porque cambié el número de versión de 1 a 1.0 y el número de compilación de 6 a 1.1 mientras sacaba el código del árbol fuente. Lo cambié de nuevo y cambié el número de compilación de 6 a 7 y funcionó bien.

Chaudhry Talha
fuente
0

En mi caso, había un espacio en la ruta que fallaba en el script.Si está utilizando variables como $PROJECT_DIRo $TARGET_BUILD_DIRreemplácelas "$PROJECT_DIR"o "$TARGET_BUILD_DIR"respectivamente.Después de agregar comillas, mi script se ejecutó correctamente.

Rosa del desierto
fuente
0

¡simplemente coloque su script en un archivo y ejecute ese archivo con 2> / dev / null al final de la línea de comando!

De esta manera, si hay algún problema con el comando, no detendrá la compilación de xcode.

en mi caso, solo estaba ejecutando un comando para desinstalar mi copia anterior de la aplicación desde un iphone conectado, por lo que podría dar un error si el iphone no está allí. Para solucionarlo:

PSmobiledevice uninstall_app com.my.app 2>/dev/null

Saeed Badran
fuente
0

Lo único que funcionó para mí:

1) Eliminar datos derivados con CleanMyMac: System Junk -> Xcode Junk -> Xcode Derived Data

Eliminar datos derivados con CleanMyMac

2) Luego, en Xcode: Producto -> Limpiar

Евгений М
fuente
0

Hice todo lo anterior y dediqué una hora al tema.

Probé todo lo anterior y reinicié Xcode.

Finalmente, reinicié la computadora y todo volvió a funcionar normalmente.

Luke Mccormick
fuente
1
no ha agregado nada a esta publicación con la respuesta. Reiniciar la computadora puede ser un comentario, ya que no ayuda a explicar el problema.
Bojan Petkovic
Algún problema extraño, datos derivados eliminados y nuevo sistema de compilación cambiado / no cambiado. ¡Pero después de reiniciar estaba bien!
Oritm
0

Enumeraré las cosas que hice que no funcionaron para mí y finalmente lo que sí

Primero, la respuesta aceptada de Ejecutar script solo cuando la instalación no funcionó.

La eliminación de datos derivados no funcionó.

Qué funcionó:

  1. Agregué una nueva fase de construcción en Build Phases

  2. Nueva fase de copia de archivos

  3. Arrastre y suelte el marco elegido en el destino de la gota

  4. Establecer el 'Destino' a Frameworks

Crédito debido a la publicación mediana de Kevin Le

FullMetalFist
fuente
0

Para aquellos que no quieran desmarcar esa opción (usando cocoapods, por ejemplo), el problema podría estar en el certificado / clave.

Xcode (o cualquier herramienta que esté usando, como una herramienta de línea de comando) necesita poder usar el certificado / clave del llavero. Para esto abra el llavero, ubique el certificado que desea usar (generalmente en el loginllavero My Certificates), haga clic derecho en la clave, seleccione Get Info, haga clic en la Access Controlpestaña y agregue la aplicación a la lista.

Si esto no funciona, intente desbloquear el llavero.

Otra opción puede ser seleccionar Permitir que todas las aplicaciones accedan a este elemento en lugar de aplicaciones específicas y / o mover el certificado / clave al Systemllavero que se comparte entre todas las cuentas de usuario en esa Mac.

También verifique que el certificado no esté vencido.

rgkobashi
fuente
0

1) opción: Verifique ejecutar el script solo al instalar ...

2) opción: actualización de pod, datos de derivación limpia,

sumit rathore
fuente
0

En mi caso, uno de los guiones (relacionado con SwiftGen) estaba fallando durante la compilación.

Solucioné el problema quitando el Podsy luego actualizándolo nuevamente.

  1. Elimine el pod problemático del Podsdirectorio o utilicepod deintegrate
  2. Instale / actualice los pods usando pod installopod update

PD: Es posible que su dependencia sea global y no esté en pods. En ese caso, también puede intentar reinstalar esa dependencia.

Haseeb Iqbal
fuente
0

LEA ESTO SI UTILIZA Crashlytics Y TIENE ESTE PROBLEMA ...

Estaba teniendo el mismo problema que el anterior Command /bin/sh failed with exit code 1más específicamente[31merror: Could not fetch upload-symbols settings: An unknown error occurred fetching settings.[0m

La primera solución (habilitar el script de ejecución solo durante la instalación) me permitió compilar mi objetivo en el simulador, pero no pude archivar mi compilación.

Resolví este problema de archivo habilitando Crashlytics en firebase. Todavía estoy acostumbrado a Fabric, donde Crashlytics se habilita automáticamente. Una vez que habilité Crashlytics en la consola de base de fuego para el correspondiente GoogleService-Info.plist, pude archivar sin este error.

NicholasTM
fuente
-1

Retire todas las cápsulas e instálelas de nuevo.

Pasos:

  1. comenta todos los pods y ejecuta pod install
  2. descomenta todos los pods y ejecuta pod install
MuhammadGad
fuente