xcode build warnings

Advertencia de Xcode: "Múltiples comandos de compilación para el archivo de salida"



build warnings (19)

Abra la carpeta Frameworks en su proyecto y asegúrese de que solo haya frameworks dentro. Agregué por error toda la carpeta de desarrolladores!

Estoy recibiendo un error como este:

[WARN] Advertencia: varios comandos de compilación para el archivo de salida /Developer/B/Be/build/Release-iphonesimulator/BB.app/no.png

[WARN] Advertencia: varios comandos de compilación para el archivo de salida /Developer/B/Be/build/Release-iphonesimulator/BB.app/d.png

[WARN] Advertencia: varios comandos de compilación para el archivo de salida /Developer/B/Be/build/Release-iphonesimulator/BB.app/n.png

Pero he revisado Xcode y no veo ningún duplicado de tales archivos en absoluto. Como dice esta publicación en las listas de correo de Apple, no hay duplicados.


Como se mencionó anteriormente, este problema se puede ver si tiene varios archivos con el mismo nombre, pero en diferentes grupos (carpetas amarillas) en el navegador del proyecto. En mi caso, esto fue intencional ya que tenía varios subdirectorios, cada uno con un "preview.jpg" que quería copiar en el paquete de la aplicación:

En esta situación, debe asegurarse de que Xcode reconozca la referencia del directorio (icono de carpeta azul), no solo los grupos.

Elimine los archivos ofensivos y elija "Eliminar referencia" (para que no los eliminemos por completo):


Vuelva a agregarlos al proyecto arrastrándolos de nuevo al navegador del proyecto. En el cuadro de diálogo que aparece, elija "Crear referencias de carpeta para cualquier carpeta agregada":


Observe que los archivos ahora tienen un icono de carpeta azul en el navegador del proyecto:

Si ahora mira en la sección "Copiar recursos del paquete" de las fases de compilación del objetivo, notará que hay una sola entrada para toda la carpeta, en lugar de entradas para cada elemento contenido dentro del directorio. El compilador no se quejará de los múltiples comandos de compilación para esos archivos.


El error parece aparecer cuando tienes más de una referencia del mismo archivo. Tuve 2 archivos del mismo nombre y obtuve este error. Cuando borro uno de ellos el error desaparece.


En el Navegador de proyectos, seleccione su archivo de proyecto Xcode. Esto le mostrará la configuración del proyecto, así como los objetivos en el proyecto. Busque en la fase de compilación "Copiar los recursos del paquete". Debes encontrar los archivos ofensivos en esa lista dos veces. Eliminar la referencia duplicada.

Xcode se queja de que está intentando agrupar el mismo archivo con su aplicación dos veces.


En mi caso, el problema fue causado por el mismo nombre de destino y carpeta dentro de un grupo.

Solo renombra el archivo o la carpeta en conflicto para resolver el problema.


En realidad, la respuesta a esto es muy simple.

En su búsqueda de xcode para los archivos que genera la advertencia, y simplemente elimínelos.

Xcode mostrará solo una referencia de ese archivo en los resultados de búsqueda, pero no se detenga ahí, siga adelante y elimínelo. (Es mejor hacer una copia de seguridad de su archivo de proyecto antes de la operación de eliminación)

Ahora haz una compilación, verás la advertencia eliminada. (esta respuesta es para una versión anterior de xcode)


Encontré una solución bastante fácil para esto:

  1. Seleccione el archivo que causa el problema desde el navegador del proyecto.
  2. Desmarque la membresía de destino del inspector de archivos
  3. Construir el proyecto
  4. Vuelva a comprobar la pertenencia de destino para el archivo de nuevo

¡La advertencia se ha ido! Compruebe esta imagen para la referencia.


Esto no es un error de Xcode, aunque el mensaje de advertencia no es lo suficientemente útil para describir la causa real.

Este mensaje de error aparece cuando tiene varios archivos en su proyecto que tienen el mismo nombre. Solo tiene que eliminar o renombrar los archivos con nombres duplicados y el problema está resuelto.


Esto no es un error. Las ayudas de Xcode pueden ayudarle. Seleccione el objetivo, a la izquierda en el navegador del proyecto. Haga clic en "Validar configuración" en la parte inferior de la configuración. Xcode verificará la configuración y eliminará duplicados si es posible.


Esto se produce fácilmente cuando agrega subproyectos basados ​​en git. Xcode no es lo suficientemente inteligente como para ignorar la subcarpeta .git aunque no pueda verlo desde el buscador, por lo que se confundirá mucho al saber que hay varios archivos llamados "master" o "exclude" (archivos de repo de git estándar). Con Xcode4, vaya al proyecto (raíz del árbol de la izquierda), luego haga clic en el destino de su aplicación y expanda "Copiar los recursos del paquete", luego elimine todas las referencias a .git, no debería necesitarlas en su aplicación de todos modos.


Esto sucede porque ur "no.png" "d.png" y "n.png" están duplicados en los recursos. Solo busca eliminar archivos duplicados y eliminar.


Esto sucede si tiene 2 archivos con el mismo nombre en el proyecto. Aunque los archivos están en grupos en XCode cuando el proyecto se compila, todos los archivos terminan en el mismo directorio. En otras palabras, si tiene /group1/image.jpg y /group2/image.jpg, el proyecto compilado solo tendrá uno de los dos archivos image.jpg.


Estoy bastante seguro de que esto puede ser causado por un error de XCode 4, al menos en los casos en que lo he encontrado.

Sucede si agrega varios archivos dependientes del idioma al proyecto al mismo tiempo. Descubrí esto mirando a través de las diferencias git. No hice nada en la confirmación, pero agregué algunos nuevos archivos nib localizados. Pero mirando hacia atrás a la diferencia del archivo project.pbxproj, mostró un montón de nuevas referencias duplicadas agregadas para archivos que ya estaban en el proyecto anteriormente. Los archivos que hizo esto también me parecieron aleatorios.

Reproducí este mismo comportamiento exacto varias veces.

Eliminar estos archivos del proyecto no soluciona el problema porque solo elimina la referencia original y deja los duplicados. La única forma de solucionarlo es retroceder un compromiso y comenzar de nuevo, o editar manualmente el archivo del proyecto, lo cual es una muy buena manera de arruinarlo aún más, ya que es difícil saber qué duplicados se eliminan y hay que hacerlo. en un montón de lugares diferentes.

Xcode 4 es una gran decepción para mí.


Otra variación más sobre este tema. Recibí el mismo mensaje, ninguna de las soluciones sugeridas anteriormente resolvió el problema (definitivamente solo tuve una copia del archivo ofensivo, por ejemplo).

Mi solución fue editar el archivo project.pbxproj en un editor de texto (después de salir de XCode y hacer una copia de seguridad del archivo) y eliminar todas las referencias al archivo ofensivo. Luego, después de volver a iniciar XCode, agregué manualmente el archivo al proyecto y todo estaba bien.

(Mi sospecha es que este problema me sucedió debido a un manual, es decir: sin XCode, combinación del archivo de proyecto).


Para mí, el objetivo> Configuraciones de compilación> Empaquetado> Nombre del producto se configuró de la misma forma que otro valor al que se hace referencia en un archivo .plist que fue personalizado para mi aplicación. Eventualmente, debido a nuestro proceso de compilación, esto crea archivos duplicados.


Tuve el mismo problema hace unos minutos. He mencionado que cambiar el ''objetivo de implementación'' solucionó mi problema.


otra versión de esta situación puede ocurrir cuando hay duplicados en la fase de compilación de los encabezados .

para arreglar esto …

  1. ir a su objetivo de proyecto
  2. elegir Build Phases
  3. elegir la fase de construcción de Headers
  4. ingrese el nombre que se muestra en la advertencia
  5. note los dos (o más) elementos
  6. encuentra los cuadros +|- en la esquina inferior izquierda
  7. seleccione uno de los elementos y haga clic en el botón -

Lo que funcionó para mí:

  1. Arrastra el repositorio a la papelera.
  2. volver a clonar su repo.
  3. Configura tu repositorio con el correcto seguimiento remoto. git remote add <url.git> , o git remote set-url <url.git>

Esto absolutamente funcionó para mí. En mi caso por alguna razón difícil de alcanzar, cuando ejecuté el desarrollo de git pull upstream develop para una dependencia local, git traería / generaba archivos duplicados de múltiples confirmaciones.

Después de seguir los pasos anteriores, el problema desapareció y el desarrollo de git pull upstream develop ya no era un tirón de múltiples confirmaciones a la vez. Tal vez había un caché de git extraño para mi repo.


Swift 3 : (pero también las versiones anteriores) sucede cuando tengo activos con duplicados. Simplemente renombra los archivos con este problema y todo irá bien.

También puede suceder cuando haya creado un Assets.xcassets y haya cambiado el nombre de los duplicados con nombres nuevos, así que una vez que lo olvidó y lo eliminó para agregar las referencias a la carpeta, pero este vuelve al problema de los archivos duplicados.