Xcode 4: Error de compilation, sin problemas

La aplicación funciona bien en el simulador, crea y ejecuta.

Cuando adjunto mi dispositivo (iPhone 3GS con iOS 4.3) y apunto al iPhone, el resultado es "Construir fallado" con "Sin problemas".

Al mirar la window de resultados de compilation, todo es verde, tiene una marca de verificación, incluida la notificación de Comprobación de falla .

La expansión de las transcripciones no muestra errores.

No puedo excluir la posibilidad de un error de firma o de suministro, pero me dio esos errores, los solucioné y ahora no me está dando ningún error o problema, solo "Build failed; No issues"

  • ¿De qué maneras puede fallar la compilation sin problemas?
  • ¿Hay alguna manera de que pueda ver el resultado de compilation para ver si puedo encontrar la razón por la que está fallando sin problemas?
  • ¿Hay producción de compilation producida más allá de la list de problemas?
  • No veo en la window de compilation donde intenta cargar la aplicación en mi dispositivo, ¿esta salida está en otro lado?

He estado recibiendo 'Build Failed' sin errores en el browser de problemas (solo advertencias). Sin embargo, el browser de informes muestra los errores correctamente.

¿Estás usando "subrayado" y "espacio", etc. para el identificador de package?

¿Estás utilizando .m en lugar de .h en una de tus importaciones? #import "Photo.h"

Lo primero que bash es limpiar todo (menu Producto / Limpiar) y volver a comstackrlo. Es posible que ya lo hayas probado.

Encontrará (y puede ver durante la compilation) la salida de compilation completa en Log Navigator. Es el ícono más apropiado de los íconos pequeños justo debajo de los botones Ejecutar y Construir.

Los files de logging de compilation (y debugging) se encuentran en el directory / Usuarios / usted / Biblioteca / Desarrollador / XCode / DerviedData / YourProject-abcdefg / Logs / Build (y ../Debug respectivamente).

No creo que haya ningún resultado para la installation de su aplicación en el dispositivo.

¿Hay un espacio en el nombre del producto de tu objective?

Sé que en las versiones anteriores de Xcode esto no fue un problema, pero parece que rompieron algo en Xcode 4, por lo que ya no funciona (sospecho que tiene algo que ver con la falta de sentido en la ruta DerivedData). Puede agregar un espacio al nombre de su aplicación tal como aparece en el Launchpad de su iDevice, configurando la key CFBundleDisplayName en Info.plist en algo distinto a ${PRODUCT_NAME} .

En una de las lists de correo locales de Cocoa Heads, me animaron a intentar un pequeño proyecto de muestra por defecto, algo que debería haber hecho al principio para asegurarme de que mi aprovisionamiento y firma funcionaran. Construyó y ejecutó en mi dispositivo sin problema, por lo que todos los signos apuntan hacia un problema con mi código o el proyecto.

Tiraré cosas del proyecto existente al nuevo proyecto de muestra, y si falla de una manera similar, podría networkingucir el problema a una región más pequeña de interés.


Agregué la funcionalidad principal de la aplicación en un nuevo proyecto y funciona bien. Las únicas cosas que hice de manera diferente esta vez fue que no configuré un binary universal (solo el iPhone en este momento) y desactivé todas las orientaciones, excepto la vertical. Por lo que puedo decir todo lo demás es el mismo, aunque si decido investigar más adelante, diferenciaré los files del proyecto y veré qué más podría ser diferente.

Entonces, la solución para mí fue comenzar un nuevo proyecto y convertir toda la funcionalidad del antiguo proyecto en nuevo proyecto.

Podría ser que rebuild el objective, como lo sugiere Paul en otra respuesta, lo solucionaría también, pero con un proyecto tan simple reiniciarlo desde cero fue fácil para mí.

Tuve el mismo problema, y ​​como alguien más sugirió que tenía que ver con el identificador del package. Lo había cambiado recientemente, como testing, y le había puesto un asterisco. Lo arreglé, y tuve que limpiar el objective, y luego funcionó.

Esto me pasó después de eliminar un objective no utilizado. Parece que Xcode puso un espacio en el CFBundleIdentifier de mi objective restante (com.company.etc). Tuve que editar Info.plist con un editor de text externo para eliminarlo y luego funcionó bien.

Estaba jugando con agregar varios proyectos dentro de un espacio de trabajo y tuve este problema. Tengo una biblioteca simple en uno de los proyectos y estaba creando y agregué un objective basado en la window de iOS para probarlo. Eliminé el primer objective que hice para que esto lo cambie de nombre. Después de leer esto intenté quitar xcuserdata del interior del package .xcodeproj y eso solucionó mi problema. Espero que esto ayude a alguien más. Ejecutando Xcode 4.1 en OS X 10.7.1.

Después de analizar todas estas respuestas, tuve el mismo problema, pero algo diferente me lo resolvió.

El problema:

La compilation falló sin problemas después de la refactorización. (Se cambió el nombre de una class usando Editar -> Refactor -> Renombrar).

La solución más tonta de todos los times:

Ir al refactorizador (renombrar) algo más (-_- "). Después de hacer eso, el error fue que Xcode no pudo cambiar el nombre de todos los files apropiados y no mostró errores. Luego, después de otro refactor, aparecieron los errores del refactor anterior .

Yo tuve el mísmo problema. Intentaba solucionarlo. Se bloqueó un xcode. Lo reabrí y funcionó bien. ¿Tal vez tuve suerte o algo así? Lo que sea, realmente no me importa lo que estaba mal en cuanto funcione ahora

Si cambió el identificador de package y el proyecto limpio, pero tampoco funcionó, intente vaciar / Users / YOUR_USERNAME / Library / Developer / Xcode / DerivedData directory.

Esto funciona para mi.

Para mí, la compilation falló sin mostrar ningún error en el Issue Navigator. Sin embargo, en Log Navigator, en esa session de compilation, pude ver el error. En mi caso, el error fue una constante no declarada. Importé el file de encabezado requerido y el problema se resolvió. No estoy seguro de por qué este error no apareció en el Navegador de problemas.

Intenté reproducir este comportamiento al cambiar deliberadamente el nombre de otra variable. Esta vez, el error se mostró en el Navegador de problemas. Entonces, todavía no estoy seguro de por qué no apareció el error anterior en el Navegador de problemas.

Espero que esto ayude.

Las soluciones anteriores no funcionan para mí.

Mi solución es mover el proyecto a otra carpeta.

Los errores de compilation simplemente aparecen como lo hizo normalmente.

¿Has limpiado tu carpeta de compilation? Vaya al menu Producto, mantenga presionada la tecla Opción y select "Carpeta de compilation limpia …"

Sé cuál es el problema: en Info.plist -> Identificador de package: no puedes usar '_'. Por ejemplo, com.mycompany.My_app no ​​es válido, pero com.mycompany.My-app OK.

Tuve exactamente el mismo problema al tratar de comstackr un proyecto existente en xcode 4, y casi sufrí el dolor de volver a crear el proyecto.

Sin embargo, en un último bash, reemplacé el file info.plist con uno nuevo que incluía las tags adicionales para "types de documentos", "types de url", "UTI de tipo exportado" e "UTI de tipo importado"

Esto pareció funcionar y fue una solución sorprendentemente simple para mi proyecto.

Esto me sucedió con mi objective de UnitTest. Estaba funcionando y luego se detuvo. Me había olvidado de que acababa de eliminar un .h / .m en el sistema de files y no lo eliminé del file del proyecto, sin embargo, XCode no lo notificó.

Lo descubrí ejecutando el proyecto en la línea de command, que me dijo el error:

 /usr/bin/xcodebuild -target "UnitTest" 

Ejecute esto en la carpeta donde tiene su file de proyecto y reemplace UnitTest con su objective, o simplemente no pase en un objective para generar el objective pnetworkingeterminado.

También tuve este problema, pero la causa fue diferente:

Tengo un espacio de trabajo con un proyecto. En este proyecto utilizo un marco que se incluye al agregar su proyecto Xcode a mi proyecto. Importé el file de encabezado del marco en mi encabezado de prefijo (.pch). Esto fue estúpido.

La solución fue eliminar el #import del file de encabezado de marco de mi file de encabezado de prefijo y agregarlo solo donde sea necesario.

El mismo problema aquí cuando se construye para un dispositivo. La compilation falló, pero mi logging es todo verde. Limpiar / eliminar carpeta de construcción no lo soluciona. Leí en otro lugar que alguien resolvió este problema eliminando y recreando el objective, pero aún no he descubierto cómo hacerlo en XCode 4.


Mi solución temporal ha sido download e instalar XCode 3.2.6 con iOS 4.3. No me di count de que Apple también había lanzado una versión de XCode 3 que incluye iOS 4.3, lo que le permite posponer la actualización a XCode 4. Presenté un informe de error con Apple sobre el problema de la compilation.


udpate de Apple:

Cuando creamos este proyecto, aunque en una versión post-Xcode 4.0, vemos lo siguiente en el paso ProcessProductPackaging en el logging de construcción:

(nulo): error: CFBundleIdentifier 'com.yourcompany.Magic_Carpet' contiene carácter ilegal '_' identificador de package no válido 'com.yourcompany.Magic_Carpet'

El código ProcessProductPackaging recibió una revisión bastante reciente, por lo que sospechamos que no estaba emitiendo errores correctamente en Xcode 4.0. Eche un vistazo a la transcripción de su propia compilation, y si es así, es probable que esto se arregle en una futura versión de Xcode (no podemos comentar más hasta que se haya publicado una solución).

Cambié de guión bajo a guión y solucionó el problema.

Lo mismo me pasó con una causa diferente.

Eliminé get-task-allow de mi file Entitlements.plist, dejando un plist vacío. La configuration de compilation aún tenía el file Entitlements.plist especificado como mi file de derechos. Elegí correr usando mi configuration de compilation Ad-Hoc en el dispositivo iOS con mi iPhone conectado y vi el comportamiento descrito en este error. Agregando get-task-allow atrás lo solucionó.

Parece que hay muchas causas posibles de este problema. El mío resultó ser eso

Mi objective se configuró para usar un perfil de aprovisionamiento inexistente.

Configuré mi proyecto para usar un nuevo perfil y eliminé el anterior. No se dio count de que el objective tenía su propia configuration de perfil de aprovisionamiento, que todavía estaba configurada en el perfil antiguo (ahora eliminado).

Solo para agregar otra respuesta después de intentar TODO lo anterior sin éxito: tuve que reiniciar la MacBook, no solo cerrar XCode, y eso funcionó para mí. Terminó con XCode mostrando algunos errores en las cadenas localizables que no apareció antes.

Espero que ayude

borro todos los espacios en esquemas de proyecto en xcschemes y esto resuelve este problema. F *** ing Apple 🙁 AppCode ROCKS!

ver: http://developer.apple.com/library/ios/#DOCUMENTATION/FileManagement/Conceptual/understanding_utis/understand_utis_conc/understand_utis_conc.html

El set de caracteres UTI Un identificador de tipo uniforme es una cadena Unicode que generalmente contiene caracteres en el set de caracteres ASCII. Sin embargo, solo se permite un subset de los caracteres ASCII. Puede usar el alfabeto romano en mayúsculas y minúsculas (A-Z, a-z), los dígitos del 0 al 9, el punto (".") Y el guión ("-"). Esta restricción se basa en restricciones de nombre DNS, establecidas en RFC 1035.

Los identificadores de tipo uniformes también pueden contener cualquiera de los caracteres Unicode mayores que U + 007F.

Importante: Cualquier carácter ilegal que aparezca en una cadena UTI, por ejemplo, guión bajo ("_"), dos puntos (":") o espacio (""), hará que la cadena sea rechazada como una UTI no válida. En la capa API, no se genera ningún error para las UTI inválidas.

No tuve problemas con el nombre del package, por lo que las soluciones sugeridas no funcionaron para mí. Finalmente, he configurado No codifique el signo para la compilation, luego cerré el proyecto, luego eliminé el aprovisionamiento en el organizador, luego descargué el nuevo aprovisionamiento y lo agregué al organizador, luego los configuré para la compilation. Funcionó.

Esta no es una respuesta técnica, pero una respuesta de "error de usuario" probablemente no se aplique a su situación. Me pasó a mí y mi búsqueda me llevó a esta Q & A en vano — hasta que me di count de mi error. Tenía un set de filters en el Navegador de problemas que no coincidía con nada que se informara como un problema. Cuando limpié el filter, se mostraron los problemas.

Tenga en count que los síntomas eran los mismos que le preguntaban y no tengo idea cuando configuré ese filter (debe henetworkingarse de las otras vistas de navigation) ya que no habría necesitado ningún filter en la list corta.

Acabo de tener un problema similar. No se pudo encontrar un error en ninguna parte. Eliminé todos mis perfiles de aprovisionamiento y agregué otros nuevos.

Luego intenté crear otra aplicación de testing en mi dispositivo y obtuve este post de error:

Error de signo de código: la identidad del certificate 'Desarrollador de iPhone: xxxxxx' aparece más de una vez en el llavero. La herramienta de encoding requiere que solo haya una.

Así que entré en Keychain, encontré un par de certificates caducados con el mismo nombre y los eliminé, y eso hizo el truco.

Es bastante aleatorio, pero quizás si intentas build otra aplicación en el dispositivo como lo hice, podrías tener la suerte de recibir un post de error, como lo hice, para ayudar a diagnosticar el problema.

Vaya a Organizador en xcode. Y en la pestaña Proyecto, elimine ese proyecto. Deje que xcode reconstruya los datos derivados de nuevo solucione mi problema.

Me enfrenté a un problema similar en XCode4.5 y mientras trabajaba en mi aplicación, XCode se estrelló de repente.

Después de search durante horas, descubrí que uno de mis files en mi aplicación se eliminó cuando se bloqueó xcode.

Recuperé el file de la Papelera y el problema se resolvió.

Estaba progtwigndo una aplicación Mac OS X sin encoding . Cuando activé sandboxing en la sección "Derechos", los códigos se activaron automáticamente y no pude hacer una nueva compilation.