Error de Xcode 10: múltiples comandos producen


659

error: Múltiples comandos producen '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist': 1) El comando 'OptimalLive' de destino tiene 'OptimalLive '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' to '/ Users / uesr / Library / Developer / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Build / Products / Debug-iphoneos / Optimal-iphoneos / Optimal-iphoneos / Optimal .app / Info.plist '2) El destino' OptimalLive 'tiene el comando copiar de' /Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist 'a' / Users / uesr / Biblioteca / Desarrollador / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhjsawtebkimvwx / Build / Products / Debug-iphoneos / OptimalLive.app / Info.plist '3) Target' OptimalLive 'tiene comando de proceso con la entrada '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'

Ejecutar el código en Xcode9 funciona, pero hay un error en Xcode10.


Para las dependencias administradas de cocoapods, consulte stackoverflow.com/a/52421345/334999
Shuo

sucede cuando importa un marco de terceros a su proyecto y tiene info.plist en sus archivos fuente. Esta lista de información entra en conflicto con la de su aplicación. Simplemente elimínelo de las fases de construcción
espacio prots el

Estimado lector, lea CADA respuesta a esta pregunta, hay muchas cosas diferentes que pueden estar mal.
iluvcapra

Ir a la ruta "Crear fases-> Copiar recursos de paquete". Verifique el nombre del archivo y elimine el mismo. Limpiar y ejecutar la aplicación
Sagar Sukode

Respuestas:


1228

El problema podría estar ocurriendo debido a múltiples Plist u otros archivos dentro de App-

Solución -> Abrir objetivo -> Fases de compilación> Copiar recursos de paquete y eliminar info.plistde allí.

ingrese la descripción de la imagen aquí

Nota: Si también ha desarrollado una aplicación de reloj, también tendrá que eliminar la lista del reloj y la extensión del reloj.


12
También es posible que deba buscar en cualquier dependencia, es decir, CocoaPods, para archivos info.plist agregados incorrectamente
Chris Paveglio

68
Para elaborar un poco: este error está ocurriendo porque el nuevo sistema de compilación de Xcode 10 es mejor para detectar problemas de configuración del proyecto. Problemas como estos a veces pueden causar problemas sutiles con su construcción, por lo que es bueno solucionarlos.
Rick Ballard

2
En mi caso, tuve que eliminar algunos archivos de localización llamados InfoPlist.strings
neowinston

8
En mi caso, tenía un info.plistarchivo en una de mis dependencias privadas de CocoaPods que se estaba recogiendo porque coincidía con la source_filespropiedad del podspec . No necesitaba el info.plistarchivo en mi módulo, así que lo eliminé.
aapierce

3
¡Gracias! Agregué algunos complementos para desarrolladores a mi código hace algún tiempo y también tenía un archivo info.plist que estaba en conflicto con la información info.plist de mi aplicación
Christopher Smit el

567

Encontré la solución para este error de compilación, para cualquier otra persona que tenga el mismo problema con el sistema de compilación Xcode 10, siga los siguientes pasos para solucionarlo:

  1. En Xcode, vaya a Archivo-> Proyecto / Configuración del espacio de trabajo.
  2. Cambie el sistema de compilación al sistema Legacy Build.

ingrese la descripción de la imagen aquí Resolverá el problema de compilación con el nuevo Xcode 10.

Si desea trabajar con el nuevo sistema de compilación, puede encontrar la ayuda para la resolución de problemas en esta página de ayuda de Apple Xcode .

¡Espero que esto ayude!


44
¿Puedes explicar por qué viene este problema y también cómo lo resuelve la elección de Legacy Build System? @Akshay Sunderwani
usuario832

142
No está solucionando el problema, solo los está ocultando.
Caio

44
Soluciona el error de compilación para proyectos nativos de reacción. Vea el problema aquí: github.com/facebook/react-native/issues/20492 Hay una posible solución si no desea cambiar al sistema de construcción heredado: github.com/facebook/react-native/issues/…
Eugen Timm

66
Esta no es una solución a largo plazo. Finalmente, el sistema de compilación heredado ya no será una opción.
Paul King

66
Bueno, voy a ocultar el problema al 100% en lugar de solucionarlo porque ninguna de estas soluciones funciona. Parece ser un problema conocido con Cocoapods; ver github.com/CocoaPods/CocoaPods/issues/7949 . Espero que de alguna manera se solucione cuando esta solución alternativa ya no sea una opción.
sudo

170

Vaya a Xcode -> Archivo -> Configuración del espacio de trabajo. Encontrará una ventana emergente como.

ingrese la descripción de la imagen aquí

Seleccione " Legacy Build System " de la etiqueta Build System. Presione " Listo "

Nota: - Asegúrese de borrar su proyecto con " cmd + shift + alt + k " y " Datos derivados "

Construye tu proyecto funcionará encanto :)


Según tengo entendido, nuestros proyectos existentes se realizan en swift y xcode antiguos, que son compatibles con la versión anterior de swift y xcode. Entonces, antes de lo que hicimos, fuimos a "Configuración de paquete-> Sistema de compilación heredado Swift" y seleccionamos la versión anterior.
Hardik1344

Originalmente lo tenía en "Swift Legacy Build System", pero había cambiado después de reiniciar mi computadora. Incluso si cree que tiene este conjunto correctamente, podría valer la pena volver a comprobarlo.
EndersJeesh

Esta solución no soluciona el problema, solo lo oculta.
Argus

También asegúrese de cambiar la configuración del espacio de trabajo por usuario a la misma;)
Wei Shen


114

Prueba esto también. Xcode-> File-> Project Settings-> Build System -> Legacy Build System.


38
En este caso, Xcode señala un problema en el proyecto, por lo que volver al sistema de compilación heredado lo ocultará por ahora. El informe de Xcode de este tipo de problemas es intencional y es mejor solucionar el problema.
Rick Ballard

2
Si el error está en el proyecto generado de CocoaPods, deshabilitaría el nuevo sistema de compilación hasta que una nueva versión de CocoaPods solucione el problema.
Rivera

@RickBallard tiene sentido, ahora, ¿cuál podría ser la solución correcta? parece haber una mezcla de respuestas
rolando

1
Hay múltiples causas de este tipo de error, pero puede leer más sobre lo que significa en help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0
Rick Ballard

75

Si obtiene esto del Dittocomando que crea varias instancias del mismo nombre (NO el 'copy files' build phase), puede que tenga que cambiar el Product Module Name.

  1. Haga clic en su Target (s) Xcode se queja
  2. Haga clic en Build Settings
  3. Buscar Product Module Name
  4. Cambia el nombre a algo único

Tenemos un objetivo de observación y algunos objetivos de notificación en nuestra aplicación, así que pongo cosas como Extensional final del nombre del módulo.

Encontré esta solución originalmente aquí: https://forums.developer.apple.com/thread/103913


1
Funcionó un poco bien, pero luego rompió con el archivo puente.
Mohamad Kaakati

55
En mi caso, tuve que seleccionar Alla la derecha de dónde buscas para Product Module Nameque se muestre esa configuración de compilación.
Hodson

56
Tengo el mismo problema en Xcode 10. El mismo proyecto funcionaba bien en Xcode 9.4.1. Entonces la solución es muy simple. Simplemente elimine todos los archivos info.plist del destino. Haga esto para todos los archivos info.plist. Paso 1. Seleccione el archivo info.plist. 2. En el inspector de archivos, desactive el proyecto en Membresía de destino. Luego ejecuta tu proyecto. Gracias !
Un kit del

12
Para mí, tuve que ir a [Nombre_proyecto]> Crear fases> Copiar recursos de paquete y eliminar las duplicaciones allí
user3322509

55
@Bharath No elimine los archivos info.plist de su proyecto. Necesita eliminar solo de Target como mencioné. No podemos eliminar info.plist, es muy importante para el proyecto.
Un kit del

69

Estaba experimentando con Core Data. Construí un modelo de datos para un simple programa de lista de verificación y generé los NSManagedObjects. Cuando compilé el proyecto recibí el siguiente error:

error: Multiple commands produce '/Users/myUSerName/Library/Developer/Xcode/DerivedData/myCoreDateExperiment-gzbslaqdwglkzxemijpdqmizgyzc/Build/Intermediates.noindex/ myCoreDateExperiment /Debug-iphonesimulator/ myCoreDateExperiment.build/Objects-normal/x86_64/CheckListItem+CoreDataProperties.o':
1) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files
2) Target ' myCoreDateExperiment ' (project ' myCoreDateExperiment ') has compile command for Swift source files

El problema era que el modelo de datos (CheckList.xcdatamodeld en mi caso) estaba en la lista "Compilar orígenes". El proyecto se compiló limpiamente cuando lo eliminé de la lista.

  1. Abra el navegador de proyectos y seleccione el proyecto (primera entrada en la parte superior)
  2. Seleccione su objetivo de compilación en Objetivos en el panel "Proyectos y objetivos"
  3. Seleccione la opción Crear fases cerca de la parte superior
  4. Expanda la entrada "Compilar orígenes" y busque el nombre del modelo de datos. Busque "xcdatamodeld" si tiene problemas para encontrarlo.
  5. Eliminar el modelo de la lista de compilación
  6. Asegúrese de que el modelo de datos esté incluido en la lista "Copiar recursos del paquete". Agréguelo si falta.

EDITAR

Como @WilliamT. explica en los comentarios, necesita el xcdatamodeld en la lista de compilación. En su lugar, vaya a sus entidades dentro del archivo xcdatamodeld. Seleccione los modelos con errores, expanda el panel izquierdo y cambie el campo de "Codegen" a "Manual / Ninguno".


36
El archivo xcdatamodeld debería estar en Compile Sources. Si está viendo este error en relación con los datos básicos, es probable que haya invocado "Crear subclase de NSManagedObject" pero tiene su entidad establecida en Codegen = "Definición de clase". Esto significa que está creando automáticamente estas clases para usted y las creó manualmente para que existan dos veces.
William T.

1
eres un salvavidas
user578386

1
@WilliamT. Entonces, ¿cuál debería ser el valor de Codegen si se invoca Crear subclase de objeto NSManaged?
Kaunteya

2
@Kaunteya Hay una opción para establecer el Codegen en "Manual" en cada atributo CoreData (tabla)
William T.

1
Sigue a @WilliamT. consejo y luego limpiar y construir.
PruitIgoe

40

Mientras revisaba el registro de compilación, noté una advertencia:

note: Using new build system
note: Planning build
note: Constructing build description
Build system information
warning: The Copy Bundle Resources build phase contains this target's Info.plist file '/Users/<redacted>/Repositories/Whitesmith/optimize-ios/Carthage/Checkouts/WSStatusBarNotification/Miscellaneous/Info.plist'. (in target 'JDStatusBarNotification')

Entonces, si ese es tu caso, entonces ve a tu objetivo:

  1. Fases de construcción
  2. Copiar recurso de paquete
  3. Remover info.plist.

32
info.plist archivo no está presente en los recursos de copia de paquete, que sigue recibiendo el mismo error
bunty Kumar

La eliminación de un exceso de Info.plist de la fase de compilación de recursos del paquete de copias lo resolvió para mí. Sin embargo, mi advertencia fue diferente porque accidentalmente se agregó un Info.plist de un objetivo diferente pero dentro del mismo proyecto a la fase de compilación de Copiar recursos del paquete. La advertencia fue: "advertencia: archivo de salida duplicado '... MyApp.app/Info.plist' en la tarea: ProcessInfoPlistFile". Y conduce al mismo error que en la pregunta original: "error: varios comandos producen '... MyApp.app/Info.plist'".
Martin Polak

en mi caso se trataba de archivo "LICENCIA" - una vez que me he quitado él, el problema se solucionó, así que supongo que el problema es más general que "plist", sólo parece ser sólo una más a menudo encontrado
vir nos

37

Si usa CocoaPods, puede intentar desintegrar los pods e instalarlos nuevamente. Esto funciona para mi.

pod deintegrate

pod install


Sí, mi problema fue causado por un paquete de pod y solo esto solucionó el problema. gracias
CodeBrew

@Ming Chu Gracias
N. Der

30

Prueba esto, está funcionando:

En Xcode, vaya a Archivo-> Proyecto / Configuración del espacio de trabajo.

Cambie el sistema de compilación al sistema Legacy Build.


2
En este caso, Xcode señala un problema en el proyecto, por lo que volver al sistema de compilación heredado lo ocultará por ahora. El informe de Xcode de este tipo de problemas es intencional y es mejor solucionar el problema. Para obtener más información, consulte help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard

27

Lea esta respuesta si el mensaje de error hace referencia a archivos de Core Data

Sinopsis: es posible que tenga archivos de clase de objeto administrado Core Data generados automáticamente y manualmente.

Esta respuesta se aplica si la primera línea del error se refiere a un archivo Foo + CoreDataProperties.o o Foo + CoreDataClass.o . Ejemplo:

error: Multiple commands produce '/Users/me/Library/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/ MyApp /Debug-iphonesimulator/ MyApp.build/Objects-normal/x86_64/Foo+CoreDataProperties.o':

1) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

2) Target ' MyApp ' (project ' MyApp ') has compile command for Swift source files

La causa raíz se puede ver al expandir la sección Compilar archivos de origen Swift de la Transcripción de compilación. Por ejemplo:

<unknown>:0: error: filename "Address+CoreDataClass.swift" used twice: '/Users/myUserName/Projects/Jnky/Foo+CoreDataProperties' and '/Users/jk/myUserName/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/MyApp.build/Debug/MyApp.build/DerivedSources/CoreDataGenerated/Jnky/Foo+CoreDataProperties.swift'

El primer archivo mencionado es un archivo fuente en el directorio de su proyecto, que alguien generó seleccionando su modelo de datos en el Navegador de proyectos y haciendo clic en el menú Editor > Crear subclase de objeto administrado . Esta característica se agregó en Xcode 7 más o menos.

El segundo archivo es un archivo con el mismo nombre pero que está enterrado en Xcode DerivedData. Xcode genera este archivo automáticamente durante cada compilación si el .xcdatamodeldarchivo del modelo de datos ( ) se incluye en la fase de compilación de fuentes de compilación del objetivo . Esta característica se agregó en Xcode 9 más o menos. Cero, se generan uno o dos archivos para cada entidad / clase, dependiendo de la configuración de la ventana emergente Codegen . Esa ventana emergente está en el Inspector del modelo de datos cuando selecciona una entidad mientras edita su modelo de datos ...

captura de pantalla de Data Model Inspector

Las configuraciones son:

  • Manual / Ninguno No se generan archivos
  • Categoría / Extensión Un archivo, Foo + CoreDataProperties.m o .swift genera , que contiene una categoría Objective-C o una extensión Swift.
  • Definición de clase Se genera el mismo archivo de Categoría / Extensión, y además se genera un Foo + CoreDataClass.m o .swift , que contiene la declaración y definición de clase.

Como puede ver, el problema ocurre cuando un desarrollador (como yo) que está acostumbrado al Xcode más antiguo comienza un proyecto en un Xcode más nuevo. Creemos que necesitamos usar el elemento de menú Crear subclase de objeto administrado , lo que hacemos, para crear los archivos que podemos ver en el Navegador de proyectos sin darnos cuenta de que nuestra configuración en la ventana emergente Codegen está causando que Xcode cree archivos duplicados, lo que Apple "inteligentemente" no se muestra en el Navegador de proyectos, porque no confían en los desarrolladores para leer y prestar atención al comentario en el encabezado // Este archivo se generó automáticamente y no debe editarse.

Solución 1 - Use la forma más antigua

Puede deshabilitar todos los Codegen automáticos para un modelo de datos con solo una configuración:

  • Abra el problema Fases de compilación del objetivo (en Project Navigator , seleccione el proyecto, luego en la lista de OBJETIVOS que aparece, seleccione el objetivo del problema, luego la pestaña Fases de compilación ).
  • Expanda la entrada Compilar orígenes y busque el modelo de datos del problema ( .xcdatamodeldarchivo).
  • Eliminarlo de la lista de compilación
  • Asegúrese de que el modelo de datos esté incluido en la lista Copiar recursos del paquete .

Solución 2 - Core Data Magic para principiantes

Aquí, entras en el camino más nuevo.

  • Deje su modelo de datos como está en las fuentes de compilación .
  • En cada Inspector de entidad en su modelo de datos, establezca Codegen en Definición de clase .
  • En el Navegador de proyectos, elimine y elimine los archivos Foo + CoreDataClass y cambie el nombre de cualquier archivo Foo + CoreDataProperties.m o .swift a algo como Foo + MyProperties .
  • En cada archivo Foo + MyProperties.m o .swift , si hay propiedades generadas por Xcode, elimine estas propiedades porque estarán en los archivos ocultos creados por Codegen .

Con esta solución, sus definiciones de clase se generan automáticamente a partir del modelo de datos en cada compilación. Ni siquiera puedes verlos. Es Core Data Magic , agradable y simple para principiantes.

Solución 3: para la mayoría de las aplicaciones del mundo real

Pero la Solución 2 no es buena si realmente desea agregar propiedades no administradas. (Objective-C no permite agregar propiedades en categorías, y Swift no permite agregar propiedades almacenadas en extensiones). Por lo tanto, en la mayoría de las aplicaciones del mundo real, es probable que desee ir a la mitad entre las soluciones 1 y 2 ...

  • Deje su modelo de datos en la lista de fuentes de compilación
  • En cada Inspector de entidad en su modelo de datos, establezca Codegen en Categoría / Extensión .
  • En el Navegador de proyectos, elimine y elimine los archivos Foo + CoreDataClass.m o .swift y, para reducir la confusión futura, cambie el nombre de los archivos Foo + CoreDataProperties.m o .swift a quizás solo Foo.m o .swift .
  • Asegúrese de que cada archivo Foo.m o .swift contenga la definición de clase, a la que puede agregar sus propias propiedades no administradas.

(Agradecimientos a la respuesta de Positron. Mi respuesta aquí explica por qué funciona la respuesta de Positron (mi Solución 1), y agrega la Solución 2 y la Solución 3.)


Esto funcionó para mí. ¡eres increíble!
Srujan Simha

Buena respuesta. Solo quería agregar que puede borrar los archivos ocultos duplicados usando 'Producto> Limpiar carpeta de compilación' después de corregir el Codegen en Manual / Ninguno tomado de un comentario de aquí .
indudablemente el

21

Una opción que resolvió mi problema es cambiar el sistema de compilación al sistema de compilación heredado. Siga los siguientes pasos en Xcode 10+.

Aquí he escrito un artículo detallado sobre el problema y su solución. Error de Xcode: múltiples comandos producen

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


1
Salvó mi vida. Funcionó a la perfección.
Reinaldo

2
Esta respuesta se ha solucionado por sí sola como 12 problemas que he tenido en Xcode con React Native. ¡Gracias!
Chris Gilardi

19

En mi caso, PDFGenerator estaba produciendo un archivo info.plist, simplemente lo eliminé.

ingrese la descripción de la imagen aquí


18

Tuve el mismo problema, tenía una aplicación auxiliar más en la aplicación principal y la copié en el recurso. En mi caso resuelto como: -

1) Objetivo -> 2) Fases de construcción 2) Copiar archivo (n elementos) 3) Eliminar archivo de copia.

La aplicación Helper se copió automáticamente en Xcode 10.0.

ingrese la descripción de la imagen aquí


3
Copiar archivos + Copiar la eliminación de recursos del paquete ayudó.
Oleksandr

Esto funcionó para mí con una ligera modificación: en mi caso, había varios archivos en el paso de copiar archivos, de alguna manera los mismos nombres de archivo se copiaron en el paquete varias veces / dos veces, lo que resultó en el error: eliminar una sola fila necesita resaltar la fila / filtre el nombre que se quejó en el error y elimine una fila con un signo menos (siempre está en la fila inferior) en lugar de eliminar todo el paso de copiar archivos.
AztecWarrior_25

16

Ninguna de las soluciones propuestas aquí funcionó para mí. Esto se debió particularmente a CocoaPods. Anteriormente estaba usando Cocoapods 1.3.1. Simplemente actualizar a 1.5.3 no resolvió el problema de inmediato.

Los pasos que seguí fueron:

  1. Eliminar Podfile.lock
  2. Eliminar directorio de Pods
  3. Eliminar datos derivados y limpiar
  4. Salir de Xcode
  5. Actualiza CocoaPods a 1.5.3
  6. correr pod install
  7. Abrir espacio de trabajo y construir

55
Actualizar CocoaPods a 1.5.3 (sudo gem install cocoapods) y ejecutar (instalación de pod) fue suficiente para que funcione. ¡Gracias!
mikemike396

Hice algunos de los recomendados anteriormente, pero este fue el único que me resolvió. Gracias
Almeida

Este también lo resolvió para mí. Creo que es mejor que la solución de compilación heredada porque en realidad se ocupa del problema.
MateusK

1
Esto funcionó para mí, pero también tuve que agregar install! 'cocoapods', :disable_input_output_paths => trueen la parte superior de mi archivo de pod. Además, si no desea actualizar sus pods, no elimine podfile.lock y todos los pods se instalarán en su versión actual.
DoesData

11

Antes de comenzar, tenga en cuenta que mi proyecto utiliza Carthage como administrador de dependencias.

Ninguna de las respuestas existentes aquí resolvió mi problema. Lo que resolvió el problema para mí fue lo siguiente.

Primero, noté que el error de compilación señalaba un marco en particular. Luego filtré App Target> Build Fases para ese marco. Me di cuenta de que ese marco estaba presente tanto en "Link Binary With Libraries" como en "Embed Frameworks". Teniendo en cuenta que ninguno de los marcos enumerados en "Embed Frameworks" eran gestionados por Carthage, eliminé el marco en cuestión de "Embed Frameworks". Luego reconstruí mi proyecto y todo funciona bien, incluida la funcionalidad habilitada por el marco en cuestión.


1
Yo usé PODS. Eliminar todo de Embed Frameworks funcionó. Limpio y reconstruido sin errores. La solución heredada también funciona pero no resuelve el problema en cuestión (para cualquiera que lea esto). Estoy en xcode 10.2, cocoapods-1.6.1.
Nadine Rose

1
¡Estoy usando Cartago y esto me lo arregló!
Devin B

También usé CocoaPods. Framework está conectado como pod de desarrollo. "Insertar marcos" está vacío y aún tiene este problema
Luten

11

Pasos:

  1. Ir al archivo Xcode
  2. Haga clic en Configuración de WorkSpace
  3. Sistema de compilación Seleccione como sistema de compilación heredado

44
En este caso, Xcode señala un problema en el proyecto, por lo que volver al sistema de compilación heredado lo ocultará por ahora. El informe de Xcode de este tipo de problemas es intencional y es mejor solucionar el problema. Para obtener más información, consulte help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard

Esto funciona para mi. Cambiar el nombre del producto no lo hace. Como mi producto está mezclado con medio código de Objective-C y código rápido. Mi problema es "Varios comandos producen swiftmodule"
wzhang84

10

Pruebe toda esta opción, cualquiera de estas 3 opciones funcionará para usted, seguro

Option 1: Remove all files from

Objetivo >> Fases de construcción >> Recopilar fuentes

Destino >> Fases de construcción >> Copiar recursos de paquete

Option 2: Change the build system

Xcode-> File-> Project Settings-> Build System -> Legacy Build System

Option 3: remove and update existing pod

pod cache clean PromisesObjC
pod cache clean PromisesSwift
cd [your_project_dir]
rm -rf Pods /
rm Podfile.lock
pod update

I hope this will help you, Happy coding :-)

-1. No, no funciona "a ciencia cierta". ¿Qué sentido tiene eliminar las fuentes de compilación y copiar los recursos del paquete? El proyecto no funcionará sin compilar código y recursos.
Luten

9

Entonces, el problema que tenía es que accidentalmente había incluido la lista de información en la configuración del proyecto -> Fases de construcción -> Copiar recursos de paquete para mi objetivo.


Esta fue precisamente la solución para mí también, ya que este error ocurrió al intentar ejecutar tflite_camera_example en Xcode 10
zai chang

9

Este problema surgió para mí después de agregar una segunda parte del conjunto de SDK de Fabric a la aplicación.

Lo que realmente sucedió fue que GoogleUtilies Framework se agregó dos veces al proyecto Pods

Dos entradas para GoogleUtilities.framework

Esto hubiera estado bien antes de Xcode 10, pero Xcode 10 se quejará si un archivo tiene dos acciones contra él (en este caso, una acción de copia).

Es seguro eliminar el segundo marco.


Lo mismo para mí, pero usando Cartago arrastrando todos los proyectos de la sección .frameworks a bibliotecas
Ronaldo Albertini

¿Has arreglado esto @Damo
Harikarthick K

Estoy enfrentando este problema, ¿podría decirme cómo solucionarlo, sin cambiar el legado?
Harikarthick K

9

Aquí hay otra solución de trabajo: (Si está utilizando Pods personalizados)

  • Seleccione "Pods" de la barra lateral como resaltados en la captura de pantalla.
  • Haga clic en Build Phase. Expanda la sección "Encabezados". Hay 3 opciones Public, Private, Project
  • Expanda Público y verifique que haya archivos duplicados. Quitarlo ¡¡HECHO!!

ingrese la descripción de la imagen aquí


¡esta respuesta también debe verse como una solución en caso de que el pod (personalizado) esté causando el problema!
MkaysWork

También puede eliminar cualquier archivo * .plist desde aquí. Parece funcionar para cápsulas personalizadas.
Amit Ahire

8

Tenía Multiple commands producemuchas advertencias, no limitadas a la duplicación de info.plist en un objetivo. Incluyendo recursos localizados y archivos de cadena, encabezados, etc.

Solución: elimine todas las duplicaciones en la membresía de destino.


Tuve este error porque tenía un objetivo de observación con su propio archivo infoplist.strings que se estaba copiando en el mismo directorio que el archivo infoplist.strings de la aplicación principal. Ambos terminarían en el mismo lugar cuando se construyeran.
Lyck

7

Tuve este problema cuando tenía un archivo con el mismo nombre en dos objetivos diferentes. Por alguna razón, uno de esos archivos tenía parte de ambos objetivos. Así que básicamente tenía dos archivos. Y ambos archivos pertenecían a un objetivo.

Tiene sentido que un objetivo solo pueda tener un nombre de archivo por objetivo, por lo que simplemente desmarcando la casilla del miembro objetivo para el archivo que no estaba relacionado con el objetivo principal se solucionó el problema.


7

Yo uso Cartago y Xcode 10.

Mi solución es -> Proyecto -> Destino -> General ->

Elimine los marcos agregados con Cartago de "Binarios incrustados"

por lo general, debe agregar un script en Build Phases para eliminar la arquitectura de la tienda de aplicaciones.

En Xcode 10, el script parece llamado siempre. Por lo tanto, copia los marcos en el lugar correcto y no tiene que agregarlos a la pestaña General.

Nota: si no está configurado -> en Configuración de compilación -> Rutas de búsqueda -> Rutas de búsqueda del marco -> configure la ruta al Marco que agregó con Cartago .... por ejemplo. "$ (PROJECT_DIR) / Carthage / Build / iOS"


7

Vale la pena señalar que este error puede producirse después de la generación automática de modelos CoreData donde Codegen no está configurado en Manual / Ninguno.

Para corregir esto en Xcode 10, haga doble clic en su archivo xcdatamodeId y seleccione cada una de sus entidades y configure Codegen en Manual / Ninguno en Clase en su Inspector de modelo de datos.


¡Si! Y también haga una "Carpeta de compilación limpia".
Dirk

6

Tuve un problema similar pero con archivos .swiftdoc.

Tengo extensiones y objetivos de prueba de unidad en el proyecto. Y tenían el mismo "Nombre del módulo del producto" (PRODUCT_MODULE_NAME en la Configuración de compilación) que la aplicación. Después de hacer que los nombres de tema único desaparecido.


6

Pasando a Xcode 10, errores como

error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':

se puede resolver de la siguiente manera:

Ir a Xcode->File->Workspace/Project Settings-> Build System -> Legacy Build System.


2
En este caso, Xcode señala un problema en el proyecto, por lo que volver al sistema de compilación heredado lo ocultará por ahora. El informe de Xcode de este tipo de problemas es intencional y es mejor solucionar el problema. Para obtener más información, consulte help.apple.com/xcode/mac/10.0/#/dev14a2fd0c0 .
Rick Ballard

este lo hizo por mí, señor, eres un genio
samouray

6

Vaya a Project Build Phase y elimine info.plist de las fuentes de compilación. Eliminará ese problema y el proyecto volverá a estar activo.

ingrese la descripción de la imagen aquí


6

Uno de mis CocoaPods estaba desactualizado y causó el problema. Hice una actualización de pods y funcionó bien.

Creo que pudo haber sido el SDK de LivePerson


para mí solo tenía que hacer 'pod install'
Pnar Sbi Wer

6

Mi problema fue que Xcode 10 se ejecutaba en Mojave y al intentar ejecutar pruebas unitarias que escribí antes de actualizar a XCode 10.

En mi caso, tuve este problema mientras ejecutaba mi TestTargetobjetivo. Para resolver, tuve que:

  • Eliminar una de las dependencias de destino (en TestTarget > build phases > Target Dependencies)

ya que tenía otros dos objetivos además de mi TestTargety ambos ejecutaban el mismo script y creaban / copiaban archivos en cierto punto.

Y eso entró en conflicto con lo que se mencionó en las Notas de versión de Build System para Xcode 10 aquí :

Es un error que cualquier archivo individual en la compilación sea producido por más de un comando de compilación. Por ejemplo, si dos objetivos declaran el mismo archivo de salida de una fase de script de shell, factorice la declaración del archivo de salida en un solo objetivo.

Nueva ACTUALIZACIÓN después de actualizar de Xcode 10.1 a 10.2

Un problema similar apareció nuevamente después de actualizar a Xcode 10.2. Tengo múltiples objetivos por proyecto: Target1y Target2resolví este problema de la siguiente manera:

  • navegando hacia Edit Scheme > Buildy
  • eliminar uno de los objetivos de la construcción: desmarque la casilla de verificación de Target1under Testdesde que sabía Target2importadoTarget1

También para tener en cuenta aquí, Target2la casilla de verificación debe permanecer marcada enTest


6
error: Multiple commands produce '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings':
1) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-demo-master/TildeskWidget/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'
2) Target 'chat21' (project 'chat21') has copy command from '/Users/KunshtechNew/Downloads/chat21-ios-sdk-master 2/Chat21Core/Base.lproj/Chat.strings' to '/Users/KunshtechNew/Library/Developer/Xcode/DerivedData/chat21-fgjaqebxysmggqfdnetggdbzfqih/Build/Products/Debug-iphonesimulator/Chat21.app/Base.lproj/Chat.strings'

Puede haber 2 soluciones diferentes para deshacerse de este problema:

Solución 1

Como podemos ver, estaba obteniendo el mismo error ... en mi caso había una copia adicional de la carpeta Chat21Core en la carpeta TildeskWidget ... Esto estaba creando un problema ... Entonces, una de las posibles soluciones también puede ser leer el error por completo y intente encontrar si hay alguna copia adicional referenciada del proyecto o no.

Solución 2

Otra solución simple que encontré cuando enfrento el mismo tipo de problema para un proyecto diferente. Esta vez tuve que aplicar una solución diferente.

  • pod deintegrate del proyecto
  • Elimine el archivo del espacio de trabajo y el archivo pod.lock de la carpeta del proyecto.
  • Nuevamente pod install e intente construir el proyecto.

Espero que esto funcione para ti ...

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.