Erreur Xcode 10: plusieurs commandes produisent
error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':
1) Target 'OptimalLive' has copy command from '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist' to '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
2) Target 'OptimalLive' has copy command from '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist' to '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
3) Target 'OptimalLive' has process command with input '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'
exécuter le code dans Xcode9 fonctionne, mais entraîne une erreur dans Xcode10.
30 réponses
si vous obtenez ceci à partir de la commande Ditto
créant plusieurs instances du même nom (pas le 'copy files' build phase
), vous pourriez avoir à changer le Product Module Name
.
- Cliquez sur votre Cible(s) Xcode est de se plaindre à propos de
- cliquez sur
Build Settings
- recherche de
Product Module Name
- changer le nom en quelque chose d'unique
Nous avons une montre cible et quelques cibles de notification dans notre application, donc j'ai juste mis des choses comme Extension
à la fin du nom du module.
j'ai trouvé cette solution à l'origine ici: https://forums.developer.apple.com/thread/103913
ce problème pourrait se produire simplement en raison de plusieurs fichiers de listes dans App -
Solution -> Ouvrir la cible -> phases de construction > Copier le Bundle de Ressources et de supprimer info.plist
à partir de là.
Note: bien.
j'ai trouvé la solution pour cette erreur de construction, pour quiconque ayant le même problème avec le système de construction Xcode 10, suivez les étapes suivantes pour la corriger:
- dans Xcode, allez au fichier->paramètres du projet/de l'espace de travail.
- Changer le système de construction pour de l'Héritage du système de construction.
il résoudra le problème de construction avec le nouveau Xcode 10.
Si vous voulez travaillez avec le nouveau système de construction, alors vous pouvez trouver l'aide de dépannage à partir de cette page d'aide Xcode d'apple .
Espérons que cette aide!
allez à Xcode -> File ->Workspace Settings. Vous trouverez un pop up comme.
Sélectionner", l'Héritage du Système de construction " à partir de Construire le Système de tag. Appuyez sur la touche " Fait "
Remarque:- , assurez-vous de vider votre projet avec " cmd+maj+alt+k " et " Données Dérivées
de Construire votre projet, il va travailler charme :)
essayez ça aussi. Xcode->Fichier->Paramètres-> Système De Build -> Héritage Système De Construction.
en vérifiant le journal de construction, j'ai remarqué un avertissement:
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')
donc, si c'est votre cas, allez juste à votre cible:
- Phases De Construction
- Copie Bundle De Ressources
- Supprimer
info.plist
.
dans Xcode, allez au fichier->paramètres du projet/de L'espace de travail.
Changer le système de construction pour de l'Héritage du système de construction.
si vous utilisez des CocoaPods, vous pouvez essayer de les désintégrer et de les installer à nouveau. Il fonctionne pour moi.
pod deintegrate
pod install
j'ai eu le même problème, j'ai eu une application d'aide de plus dans L'application principale et copiez ceci dans la ressource. Dans mon cas résolu comme: -
1) de la Cible -> 2)Phases de construction 2) Copier le Fichier (n) 3) Supprimer la Copie du Fichier.
l'application Helper copiée automatiquement dans Xcode 10.0.
avant de commencer, notez que mon projet utilise Carthage comme gestionnaire de dépendances.
Aucune des réponses ici résolu mon problème. Ce n'résoudre le problème pour moi était le suivant.
tout d'abord, j'ai remarqué que l'erreur de construction indiquait un cadre en particulier. Ensuite, j'ai filtré la cible App > construire les Phases pour ce cadre. J'ai remarqué que ce framework était présent à la fois dans "Link Binary With Libraries" et "embed Frameworks". Notant qu'aucun des cadres énumérés sous "cadres Embed" n'était géré par Carthage, J'ai retiré le cadre en question des "cadres Embed". J'ai alors reconstruit mon projet et tout fonctionne très bien, y compris la fonctionnalité activée par le cadre en question.
j'ai eu des tas de Multiple commands produce
mises en garde - ne pas limité aux informations.duplication de plist sur une cible. Y compris les ressources localisées et les fichiers de chaîne de caractères, les en-têtes, etc.
Solution: supprimer toutes les duplications dans target membership.
essayez toutes ces options n'importe lequel de ces 3 options fonctionnera pour vous, c'est sûr
Option 1: Remove all files from
Target >> Phases De Construction >> Compiler Les Sources
Target >> Phases De Construction >> Copie Bundle De Ressources
Option 2: Change the build system
Xcode->Fichier->Paramètres-> Système De Build -> Héritage Système De Construction
Option 3: remove and update existing pod
pod cache clean PromisesObjC
pod cache clean PromisesSwift
cd [your_project_dir]
rm-rf Gousses/
rm Podfile.serrure
pod mise à jour
I hope this will help you, Happy coding :-)
Donc, le problème que j'ai c'est que j'avais accidentellement inclus l'Info.plist dans les paramètres du projet -> Phases de construction -> Copier Ressources de module, pour ma cible.
j'ai eu ce problème quand j'avais un fichier avec le même nom dans les deux cibles différentes. Pour une raison ou une autre, un de ces fichiers faisait partie des deux cibles. Donc en gros, j'ai eu deux fichiers. Et ces deux fichiers appartenait à une cible.
il est logique qu'une cible ne puisse avoir qu'un nom de fichier par cible, alors il suffit de décocher la case membre cible pour le fichier qui n'était pas lié à la cible principale pour corriger le problème.
100% de travail
supprimer tous les fichiers de:
Target >> Phases De Construction >> Compiler Les Sources
Target >> Phases De Construction >> Copie Bundle De Ressources
déplacement vers le Xcode 10, erreurs comme
error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist':
peut être résolu comme suit:
passez à Xcode->File->Workspace/Project Settings-> Build System -> Legacy Build System
.
avait un problème similaire, mais avec .fichiers swiftdoc.
j'ai des extensions et des cibles de test d'unité dans le projet. Et ils avaient le même "nom de Module produit" (PRODUCT_MODULE_NAME dans les paramètres de construction) que l'application. Après avoir fait des noms unique question disparu.
Recherche & Supprimer les fichiers en double ceux qui sont produites à partir de plusieurs commandes.
ici, un fichier supplémentaire Info.plist
devrait être supprimé (dans mon cas, c'était Contents.json
)
error: Multiple commands produce '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist'
cela signifie que vous avez plusieurs fichiers nommés Info.plist
;
D'habitude, c'est très bien, mais accidentellement vos fichiers sont mis sur le même abonnement cible. Donc la solution est: cliquez sur chaque fichier et vérifiez l'appartenance de leur cible sur la droite, assurez-vous qu'ils ne se chevauchent pas.
j'ai eu le même problème avec un plist. Il s'avère que j'en avais deux copies, Une était vide et l'autre était dans mon dossier de ressources localisées. Retrait de l'un d'eux (le vide) a résolu le problème.
si vous cochez votre erreur, les lignes 1) et 2) ont des chemins différents. Vous avez probablement ce fichier défini deux fois dans votre phase de copie.
Vérifiez vos propriétés cibles, les Phases de construction, Copiez les ressources du paquet, et cherchez une information dupliquée.plist. La Figure qui chemin d'accès est incorrect et le retirer. (Vous voudrez probablement le supprimer du système de fichiers aussi.)
dans mon cas une Info.le fichier plist a été récupéré d'un de mes Cocoapods. Il supprimé et résolu le problème.
aucune des solutions proposées ici n'a fonctionné pour moi. Cela était particulièrement dû aux CocoaPods. J'utilisais précédemment Cocoapods 1.3.1. Le simple fait de passer à la version 1.5.3 n'a pas résolu le problème tout de suite.
les étapes que j'ai suivies étaient:
- Supprimer Podfile.serrure
- Supprimer pods directory
- Supprimer Les Données Dérivées & Clean
- Exit Xcode
- mise à jour CocoaPods à 1.5.3
- Exécuter
pod install
- Ouvrir l'espace de travail et de construire
Voici une autre solution de travail: (si vous utilisez des gousses)
- sélectionnez" Pods " dans la barre latérale comme sur les highlights dans screenshot.
- cliquez sur Phase de construction. Développez les "en-Têtes". Il y a 3 options Public, Privé, projet 151940920"
- Élargissez le Public et vérifiez qu'il y a des fichiers en double. Le supprimer. fait!!
Aller dans le Projet de la Phase de construction et de Supprimer les info.plist à partir de la Compilation des Sources. Cela supprimera ce problème et le projet sera de nouveau Actif.
dans mon cas, j'avais importé des dossiers d'un autre projet et j'avais la même classe à deux endroits.
j'ai eu le message d'erreur suivant:
quand j'ai copié l'erreur, il s'est avéré pour copier beaucoup plus d'informations textuelles, et quand j'ai lu à travers le dump, je suis venu à la ligne pertinente:
:0: erreur: le nom de fichier "EventNode.swift "utilisé deux fois:
qui a été suivi par les lieux et m'a permis d'éliminer le problème.
dans le processus, j'ai découvert ce qui doit être dans 'Copy Bundle Resources':
- Main.storyboard
- des Biens.xcassets
- tout SpriteKit scènes (.sks) votre projet utilise
j'ai eu le même problème, mais avec les fichiers d'en-tête.
dans ce cas, la solution consiste à déplacer les en-têtes de la section" Public "à la section" Projet".
pour moi, le problème était lié au fait que le même fichier soit inclus deux fois dans les ressources du bundle. Je ne sais pas comment c'est arrivé, mais j'en ai enlevé un et ça s'est bien passé avec le nouveau système de construction.
pour les projets de dépendance gérés par cocoapods, résolu le problème en fournissant un podspec local pour exclure l'information.plist à partir des sources. Prenez godzippa comme exemple
Podfile
pod 'Godzippa', :podspec => "venders/godzippa.podspec"
vendeurs/godzippa.podspec
s.source_files = 'Sources/*.{h,m}'
Mon ProjectName.xcodeproj
avait un valide et non valide référence à un fichier avec le même nom. Même nom de fichier dans le navigateur de projet, un nom de fichier était rouge, l'autre OK. Je me suis débarrassé de la référence non valide (le rouge), problème résolu.
dans mon cas, j'avais la même coutume Public Header Folder Path pour deux libs statiques différentes. Une était pour une application principale une autre pour une application de montre. Changé le chemin pour l'application de montre et maintenant tout va bien.