/ usr / bin / codesign falló con el código de salida 1

81

Estoy intentando implementar mi primera aplicación de desarrollo para iPhone y tengo algunos problemas. Pasé con éxito a través del Asistente de aprovisionamiento en línea, pero ahora estoy atascado. No importa lo que haga, siempre obtengo el siguiente error.

/ usr / bin / codesign falló con el código de salida 1

¿Alguien tiene alguna idea de por qué está sucediendo esto?

PF1
fuente
Pregunta complementaria: Xcode falla con el error de "firma de código"
Richard Stelling
1
stackoverflow.com/a/44889440/2252866 Esta solución funcionó para mí. Estaba desarrollando la aplicación macOS.
Mediajon

Respuestas:

55

Actualización:
la nota técnica en mi respuesta original ahora está en desuso. Apple publicó una colección de problemas de firma de código (y algunas soluciones) en un nuevo documento: Nota técnica Índice de solución de problemas de firma de código TN2407

Verifique la propiedad CODE_SIGN_IDENTITY en su configuración de compilación. ¿Está seleccionado su perfil de aprovisionamiento?
También debe ingresar un identificador de paquete válido en su lista de aplicaciones.
El identificador debe coincidir con el que proporcionó al generar el perfil.
Apple tiene una nota técnica sobre eso aquí .

Thomas Zoechling
fuente
1
Resulta que el problema era el identificador de paquete válido. Gracias por tu ayuda, ahora está arreglado.
PF1
¿Cómo "ingresas un identificador de paquete válido"? ¿Cómo se ve uno de esos?
buildsucceeded
El identificador de un paquete es una cadena en notación de DNS inverso (por ejemplo, com.apple.dt.Xcode) que se asigna a la clave plist CFBundleIdentifier. Más sobre esto aquí: developer.apple.com/library/ios/#documentation/General/…
Thomas Zoechling
Ni siquiera sabía que este escenario estaba allí. Eres un salvavidas.
dclowd9901
25

Me encontré con este error, y esto es lo que descubrí en caso de que esto ayude a alguien: descubrí que puede hacer clic con el botón derecho en el mensaje de error en Xcode y elegir expandir para obtener más detalles, incluida una descripción del problema.

En mi caso, tenía dos copias de mi certificado de desarrollador con el mismo nombre en diferentes archivos de llavero, y Xcode no pudo averiguar cuál usar.

Tobias Cohen
fuente
Como resolviste esto? Tengo el mismo problema, pero Keychain Access solo me muestra un certificado.
Dan Ray
11
Lo encontré. Para el registro, el problema fue un certificado caducado en mi llavero del sistema. Keychain Access no muestra, de forma predeterminada, certificados caducados. Fui al llavero del sistema, hice que KA me informara sobre los certificados caducados, eliminé el caducado que estaba chocando con el mío correcto en el llavero de inicio de sesión y el tío de Bob.
Dan Ray
Tobias, eres brillante. Gracias por encontrar ese truco de clic derecho.
Greg Combs
Yo también tuve este problema. En mi caso, expandirlo mostró que el nombre común era "ambiguo" porque TweetDeck de todas las cosas parecía haberse apoderado del llavero para uno de los inicios de sesión de mi cuenta. Tuve que ir a Biblioteca / Soporte de aplicaciones / Adobe / Air / ELS / y eliminar los archivos que se encuentran allí. Entonces todo funcionó bien. ¡Extraño!
dramático
En mi caso, el problema fue una tarjeta inteligente conectada a mi mac mini con un certificado no válido.
Giorgio
18

Podría ser una respuesta extraña para el problema del código de identificación en Xcode 9.0. Yo también estaba recibiendo este error y no sabía qué hacer, porque todo estaba correcto.

Fui al llavero, tenía la opción de inicio de sesión "desbloqueada". Lo bloqueé y compilé mi compilación nuevamente. El propio Xcode me pidió que abriera el llavero de acceso. Le di acceso y funcionó.

Los pasos fueron:

  1. Ir al llavero
  2. Ciérralo
  3. Archive el código, vuelva a construir el proyecto
CÓDIGO
fuente
esto funcionó: accountsdhabía solicitado acceso al llavero al reiniciar después de la actualización, lo cual descarté porque los modales debajo eran raros. rebotar el llavero fue el truco
Warren Burton
14

Tuve exactamente el mismo error e intenté todo lo que hay bajo el sol, incluido lo que estaba en otra parte de esta página, sin éxito. El problema para mí fue que en Keychain Access, el certificado Apple WWDR real estaba marcado como " Confiar siempre ". Debía ser " Valores predeterminados del sistema ". Eso también se aplica a sus certificados de desarrollo y distribución. Si alguno de ellos está configurado incorrectamente en " Confiar siempre ", aparentemente puede causar este problema.

Entonces, en Acceso a Llaveros, haga clic en el certificado de Autoridad de Certificación de Relaciones con Desarrolladores Mundiales de Apple, seleccione Obtener información . Luego, expanda la configuración de Confianza y, para el cuadro combinado de " Al usar este certificado: ", elija " Valores predeterminados del sistema ".

Otros han comentado que es posible que deba hacer esto en el sistema y los llaveros de inicio de sesión para estos errores .

Nate
fuente
Muchas gracias, me enfrenté a este problema desde los últimos 3 días, e intenté muchas cosas como eliminar todos los certificados de Mis certificados, eliminar Apple Id, etc., pero finalmente funcionó cuando hice clic en el certificado de la Autoridad de certificación de Apple Worldwide Developer Relations, seleccione Obtener Info. Luego, expanda la configuración de Confianza y, para el cuadro combinado de "Al usar este certificado:", elija "Valores predeterminados del sistema".
Ankit
9

Puede haber muchas razones cuando recibe este tipo de error:

  1. Compruebe si ha seleccionado un perfil de aprovisionamiento que incluya la identidad de firma de código válida y un identificador de paquete válido en Configuración. (Ir a Configuración de compilación-> Firma-> Perfil de aprovisionamiento).

  2. Abra Keychain Access y haga clic en el icono de candado en la parte superior izquierda, para que bloquee el llavero de inicio de sesión y luego haga clic nuevamente para desbloquear.

ingrese la descripción de la imagen aquí

  1. Vaya a Archivo-> Configuración del proyecto-> Datos derivados y elimine la carpeta de compilación del proyecto. Después de eso, limpia y crea tu aplicación.
Rahul Kumar
fuente
sí @cesarak, creo que es una especie de error en Keychain.
Rahul Kumar
6

Tuve el mismo problema con la compilación de distribución. Simplemente sucedió de repente. De hecho, no tuve este problema hace unos días y tenía mi versión Ad-Hoc compilada correctamente. Este problema surgió porque mi certificado acaba de caducar hoy. Así que fui a crear un nuevo provisional siguiendo la guía de Apple: (http://developer.apple.com/ios/manage/distribution/index.action).

Después de pasar horas en la red y asegurarme de que no me había enamorado de lo que pudiera salir mal. Esto es lo que me salvó como lo sugirieron Tobias y Dan Ray:

  1. "... descubrió que puede hacer clic derecho en el mensaje de error en Xcode para ver los detalles".
  2. "... el problema fue un certificado caducado en mi llavero del sistema. Keychain Access no muestra, por defecto, certificados caducados".

La información detallada me dijo acerca de la coincidencia ambigua de dos certificados. Uno de ellos resultó ser un certificado caducado en la cadena de claves del sistema. ¡Así que eliminé el vencido y funcionó! También me preocupaba qué ingresar en el "nombre común" al crear el certificado de distribución utilizando la utilidad de llavero: mi nombre o el nombre de mi empresa. En mi caso, ingresé mi nombre. Supongo que es el mismo que el título que se abordó en el correo electrónico de respuesta automática del desarrollador.

Gran ayuda. Gracias.

Wayne Lo
fuente
3

Si el error que precede inmediatamente al error de signo de código dice algo como "bifurcación de recursos, información del Finder o detritus similares no permitidos"

Luego navegue hasta el archivo .app en Terminal y escriba:

xattr -cr <ruta_a_paquete_aplicaciones>

ref: https://developer.apple.com/library/content/qa/qa1940/_index.html

Fiach Reid
fuente
2

Lo que funcionó para mí fue la adición --deepde otro código de firma de Banderas en configuración de generación. Más información aquí: El código de la API de Dropbox falla en Xcode 4.6.3: "el objeto de código no está firmado en absoluto"

Desafortunadamente, esta condición de error ambigua tiene 400 soluciones diferentes, pero estoy divagando.

Matt Montag
fuente
1
¡Hola Matt, gracias! Me volvió loco ... renuncié a todo un par de veces y no funcionó ... bueno, me ayudó mucho ... Pero al final supongo que me perdí de agregar mi cuenta de desarrollador en XCode ... Es realmente extraño de todos modos ..
Lukas
1

Yo tuve el mismo problema. Al final resultó que mi clave privada no permitía que codesign tuviera acceso a ella. Se puede ver esto en el diálogo de información en la aplicación de llavero.

user312143
fuente
1

Tengo que estar de acuerdo con Tobias. El error es demasiado genérico. Cuando me sucedió lo mismo, indagué en el mensaje de error y me di cuenta de que había estropeado algo en las propiedades de compilación, pero no en la firma del código. Así que sí, profundizaría en los detalles.

Rob Kelley
fuente
1
Debe señalar esto como un comentario debajo de la pregunta del usuario.
Matteo Alessani
1

En mi caso, el error se debió al hecho de que tenía dos llaves en el llavero con el mismo nombre. Eliminé el anterior y eso resolvió el problema.

Ir al mensaje detallado me muestra el problema real.

Jaume
fuente
1

Después de horas de buscar en Google y probar diferentes cosas, esto es lo que me solucionó:

  1. Asegúrese de que no haya certificados en la pestaña Sistema> Certificados en Acceso a llaveros. Elimine todos los certificados duplicados de allí.

  2. Instale el certificado intermedio WWDR debajo de los certificados del portal de aprovisionamiento, además de los certificados de los desarrolladores y asegúrese de verlo en la pestaña Iniciar sesión> Certificados en Acceso a llaveros.

¡Espero que esto ayude a alguno de ustedes!

como_
fuente
1

El mismo problema con ambiguo (coincide con "iPhone Developer: [yo]" y /// el archivo de datos privados de la biblioteca de tweetdeck. Se solucionó moviendo el archivo a la papelera y volviendo a iniciar sesión en Tweetdeck, configurando contraseñas nuevamente. Qué dolor.

anna
fuente
1

Tuve el mismo problema, pero también en el registro de errores estaba este: CSSMERR_TP_CERT_NOT_VALID_YET

Al mirar el certificado en KeyChain, se mostró un mensaje similar. El problema se debió a que el reloj del sistema de mi Mac estaba configurado incorrectamente. Tan pronto como configuré la región / hora correcta, el certificado se marcó como válido y pude compilar y ejecutar mi aplicación en el iPhone

MCP
fuente
1

También recibía este error ("/ usr / bin / codesign falló con el código de salida 1"), y cuando miré en Keychain Access, mis certificados de desarrollador estaban marcados como "Este certificado fue firmado por una autoridad desconocida". Recientemente me había actualizado a Mac OS 10.8 y desde entonces he tenido un par de problemas con XCode (4.5.2). Resulta que no tenía instalado el certificado intermedio WWDR. ¡Lo descargué del Portal de aprovisionamiento de iOS, lo instalé en Keychain Access y mi proyecto se compila nuevamente!

Chris Prince
fuente
1

Cuando recibí este error, ni siquiera estaba intentando firmar la aplicación. Estaba escribiendo una aplicación de prueba y no me importaba firmar. Para deshacerme de este mensaje, tuve que seleccionar "No firmar código" en Configuración de compilación en Firma de código.

ingrese la descripción de la imagen aquí

spfursich
fuente
1

A veces, su carpeta de compilación simplemente necesita una limpieza, ciertamente funcionó para mí. Gracias a loafer-project por la solución.

Nanki
fuente
0

Una posible causa es que no tiene permiso para escribir en el directorio de compilación.

Solución: elimine todo el directorio de compilación en la carpeta del proyecto y reconstruya su aplicación.

Equipo de desarrollo de SEQOY
fuente
0

Me encontré con este error y fue porque estaba tratando de escribir el archivo de compilación en una unidad de red que no funcionaba. Intenté de nuevo desde mi escritorio y funcionó bien. (Puede que tengas que "Limpiar" la compilación después de moverla. Simplemente elige "Limpiar todos los objetivos" en el menú desplegable "Compilación").

Sin embargo, Tobias tiene razón, profundice en los detalles del código haciendo clic derecho para ver cuál es su problema específico.

Dancreek
fuente
0

Una cosa que querrá tener en cuenta (es un error estúpido de mi parte, pero sucede) es que la dirección de correo electrónico adjunta a la CSR debe ser la misma que la del correo electrónico conectado a su cuenta Apple Dev. Una vez que usé un nuevo CSR y reconstruí todos los certificados y perfiles de aprovisionamiento, todo salió bien en Appleville.

Ash Menon
fuente
0

Otra razón, verifique que su cuenta de desarrollador esté conectada con xCode

ingrese la descripción de la imagen aquí

Ofir Malachi
fuente
0

Una pregunta un poco vieja, pero parece que todavía sucede. Otra solución:

Ocurrió para mí después de revertir una rama en git. Intenté limpiar, limpiar compilaciones, eliminar productos derivados y reiniciar Xcode, pero no tuve suerte.

Intente reiniciar la comp.

Marte
fuente
0

Tuve el mismo error desconocido al firmar el código que mencionaste. De manera similar a la respuesta proporcionada (pero un poco diferente), simplemente bloqueé el acceso a mi llavero y lo desbloqueé, y pude compilar y ejecutar mi dispositivo nuevamente. Si alguien tiene el mismo problema, quizás intente eso primero antes de pasar por la molestia de modificar la contraseña del llavero.

sumit mehra
fuente
0

Al lanzar mis comentarios al ring, me encontré con esto después de intentar actualizar mi entorno de desarrollo después de hacer clic en DENEGAR accidentalmente en una de las solicitudes de la aplicación, después de buscar, encontré una serie de cosas que no parecían funcionar. Este es el orden completo en el que intenté las correcciones y si hubo éxito:

1) Intentó borrar los DerivedFiles y reiniciar XCode - sin dados

2) Intentó iniciar sesión y desbloquear el llavero, luego reiniciar XCode, sin dados

3) Intenté actualizar mi cuenta de desarrollador dentro de XCode, sin dados

4) Mordió la bala y simplemente reinicié todo mi llavero, después de hacerlo, mi cuenta de desarrollador se cerró (volvió a iniciar sesión), luego reinició XCode, sin dados

5) Encontré un artículo aquí que decía que teníamos que configurar la [inicio de sesión | local | Sistema] / certificado / Autoridad de certificación de relaciones con desarrolladores mundiales de Apple en "Sistema predeterminado". Pero en mi caso ya estaba configurado por defecto del sistema, sin dados

6) Luego miré mi inicio de sesión de certificado de desarrollador real / mis certificados / Desarrollador de Mac: y cuando miré allí, estaba configurado correctamente en Confirmar antes de permitir el acceso, PERO no había entradas en la sección inferior. Debe haber [Xcode, codesign, productbuild]. Eliminé la entrada del certificado y reinicié XCode - bingo

Se agregó el certificado y luego se me solicitó. Entonces, ¿qué hice? Presioné "permitir siempre" y luego me deshice.

Tuve que regresar y eliminar el certificado nuevamente, luego pasar por unos 20 diálogos de permiso durante una compilación limpia. Una vez completado, pude construir completamente.

Kendavidson
fuente
0

En mi caso, después de unos días de investigación,

Todo lo que hice para girar se enumera a continuación:

  1. elimine todo el certificado en su llavero.
  2. ve a tu cuenta de Apple. a) descargue el certificado específico que desea instalar en su llavero. b) (Opcional) También cree y descargue el perfil obligatorio.
  3. en Xcode, limpia tu proyecto. Esto puede tomar algo de tiempo.
  4. Construye tu proyecto.

Esto debería funcionar para problemas de códigos de diseño similares.

Tenga en cuenta que durante este proceso, el sistema operativo le solicitará la validación de su credencial.

Tunde Pizzle
fuente
-1

Abra la ruta del proyecto en la terminal e ingrese los siguientes comandos en la terminal

1) encontrar. | xargs -0 xattr -c

2) xattr -rc.

Esto funciona para mi.

Vineesh TP
fuente
encontrar . -tipo f -exec xattr -c {} \;
Sage
Esta funciona para mí; encontrar . -tipo f -exec xattr -c {} \;
Sage
Que hace ?
Setar