ошибка: несколько команд создают '/Users/uesr/Library/Developer/Xcode/DerivedData/OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist': 1) Целевой объект OptimalLive имеет команду копирования из /Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist 'в' / Users / uesr / Library / Developer / Xcode / DerivedData / OptimalLive-fxatvygbofczeyhwxawteb /Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist ' 2) Целевой объект OptimalLive имеет команду копирования из /Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Server/Masonry/Info.plist 'в' / Users / uesr / Library / Developer / Xcode / DerivedData /OptimalLive-fxatvygbofczeyhjsawtebkimvwx/Build/Products/Debug-iphoneos/OptimalLive.app/Info.plist ' 3) Целевой объект OptimalLive имеет команду процесса с вводом '/Users/uesr/Desktop/workSpace/SEALIVE/SeaLive1.1/OptimalLive/Info.plist'

Запуск кода в Xcode9 работает, но есть ошибка в Xcode10.

make

Ответов: 81

Ответы (81)

Проблема может возникать из-за нескольких файлов Plist или других файлов в приложении-

Решение -> Открыть цель -> Фазы сборки> Скопировать ресурсы пакета и удалить оттуда info.plist.

enter image description here

Примечание: Если вы также разработали приложение для часов, вам также придется удалить plist из часов и расширение для часов.

У меня было несколько Несколько команд выдают предупреждений - не ограничиваясь дублированием info.plist в одной цели. Включая локализованные ресурсы и строковые файлы, заголовки и т. Д.

Решение: удалить все дубликаты в целевом членстве.

I had the same problem, I had a one more helper app in main App and copy this in resource. In my case solved as :-

1) Target -> 2)Build Phases 2) Copy File (n items) 3) Remove Copy File.

The Helper app automatically copied in Xcode 10.0.

enter image description here

В моем случае я импортировал файлы из другого проекта, и у меня был один и тот же класс в двух местах.

У меня было следующее сообщение об ошибке:enter image description here

Когда я скопировал ошибку, оказалось, что скопировано БОЛЬШЕ текстовой информации, а когда я прочитал дамп, я пришел к соответствующей строке:

: 0: ошибка: имя файла "EventNode.swift" используется дважды:

, за которым следовали местоположения, что позволило мне устранить проблему.

В процессе выяснил, что должно быть в «Копировать ресурсы пакета»:

  • Main.storyboard
  • Assets.xcassets
  • любые сцены SpriteKit (.sks), которые использует ваш проект

Для зависимых проектов, управляемых cocoapods, проблема решена путем предоставления локального podspec для исключения info.plist из источников. Возьмем для примера Годзиппу

подфайл pod 'Godzippa',: podspec => "venders / godzippa.podspec"

торговцы / godzippa.podspec s.source_files = 'Источники / *. {h, m}'

Если вы используете CocoaPods, вы можете попробовать деинтегрировать поды и установить их снова. У меня работает.

деинтеграция стручка

установка модуля

У меня было несколько копий одного и того же файла. Просто оставьте одну копию и удалите все остальные. Чистая сборка и сортировка проблем.

Проблема, с которой я столкнулся, заключалась в том, что я случайно включил Info.plist в настройки проекта -> Фазы сборки -> Копировать ресурсы пакета для моей цели.

Моя проблема заключалась в том, что Xcode 10 запускался в Mojave, и при попытке запустить модульные тесты, которые я написал перед обновлением до XCode 10.

В моем случае эта проблема возникла при запуске моей TestTarget target. Для разрешения пришлось:

  • Удалить одну из целевых зависимостей (в TestTarget> этапы сборки> Целевые зависимости)

, поскольку у меня были две другие цели помимо моего TestTarget, и обе они запускали один и тот же скрипт и создавали / копировали файлы в определенный момент.

И это противоречило тому, что было упомянуто в Примечания к выпуску системы сборки для Xcode 10 здесь:

Создание любого отдельного файла в сборке более чем одной командой сборки является ошибкой. Например, если каждая из двух целей объявляет один и тот же выходной файл из фазы сценария оболочки, исключите объявление выходного файла в одну цель.

Новое ОБНОВЛЕНИЕ после того, как я обновил Xcode 10.1 до 10.2

Подобная проблема снова появилась после того, как я обновился до Xcode 10.2. У меня есть несколько целей по проекту: Target1 и Target2, и я решил эту проблему с помощью:

  • переход к Edit Scheme> Build и
  • удаление одной из целей из создаваемой: снимите флажок Target1 под Test, так как я знал Target2 импортировано Target1

Также следует отметить, что флажок Target2должен оставаться установленным под Test

Шаги:

  1. Перейти к файлу Xcode
  2. Щелкните, чтобы открыть настройки WorkSpace
  3. Система сборки Выберите как устаревшую систему сборки

Один из моих CocoaPods устарел и вызвал проблему. Обновились стручки, и все заработало.

Я полагаю, это мог быть LivePerson SDK

OK so for anyone who hadn't found correct answer here because it has nothing to do with info.plist...

I ran into this problem while I was developing a macOS app without CocoaPods or Carthage, just with SPM packages, manually dragging xcodeprojs into workplace.

When I was using only one dependency (it was using Swift-NIO from within), everything was OK, but when I added one more one more dependency with overlapping subdeps, I got this nasty problem.

The solution is to try to compile all major dependencies separately (it would fail due to unexisting checkout folders within respective .build folders, and this is most probably happened because you put your pkgs in edit mode (swift package edit YourPkg ...).

You just unedit your pkgs, and force all dependencies to compile successfully. After that you must make sure that your linked binaries within main target aren't overlapped (I'm not sure it's really necessary, but just in case).

After that everything should be working just great :)

В моем случае ошибка сборки архива по сравнению с Xcode10

-1: несколько команд производят '/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_cardindex/ArchiveIntermediates/react_cardindex/ArchiveIntermediates/react_cardinmediate_application/react_cardindex_application / app / 1) Целевой объект «йога» имеет команду с выводом «/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_cardindex/ArchiveIntermediates/react_Cardindex/ArchiveIntermediates/react_card_Carday_Application/react_card_Carday_application/react_card 2) Целевой объект «йога» имеет команду с выводом «/Users/kk/Library/Developer/Xcode/DerivedData/react_carday_app-hjahojxsbvmmiyaklrhhuqljdfwv/Build/Intermediates.noindex/ArchiveIntermediates/react_Cardindex/ArchiveIntermediates/react_Cardindex/ArchiveIntermediates/react_card_CARDI 100003 *

В вашем подфиле должно быть что-то вроде этого

post_install do | установщик |
  installer.pods_project.targets.each do | target |
    если target.name == "React"
      target.remove_from_project
    конец

    если target.name == "йога"
      target.remove_from_project
    конец
  конец
конец

, а затем запустите pod install

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'

Есть 2 разных решения, чтобы избавиться от этой проблемы:

Решение 1

Как мы видим, я получал ту же ошибку .. в моем случае была дополнительная копия папки Chat21Core в TildeskWidget папке .. Это создавало проблему .. Таким образом, одним из возможных решений может быть просто полностью прочитать ошибку и попытаться выяснить, есть ли дополнительная копия, на которую ссылается проект, или нет.

Решение 2

Еще одно простое решение, которое я нашел, когда сталкиваюсь с проблемой одного и того же типа для другого проекта. На этот раз пришлось применить другое решение.

  • pod deintegrate из проекта.
  • Удалить файл рабочей области и файл pod.lock из папки проекта.
  • снова установка модуля и попробуйте собрать проект.

Надеюсь, это сработает для вас ..

Эта проблема возникла у меня после добавления в приложение второй части набора SDK Fabric.

На самом деле произошло то, что GoogleUtilies Framework был дважды добавлен в проект Pods

Two entries for GoogleUtilities.framework

Это было бы нормально до Xcode 10, но Xcode 10 будет жаловаться, если файл имеет два действия против него (в данном случае действие копирования).

Вторую структуру удалить безопасно.

Прочтите этот ответ, если сообщение об ошибке ссылается на файлы Core Data

Сводка: у вас могут быть как автоматически сгенерированные, так и созданные вручную файлы классов управляемых объектов Core Data.

Этот ответ применяется, если первая строка ошибки относится к файлу Foo + CoreDataProperties.o или Foo + CoreDataClass.o. Пример:

ошибка: несколько команд создают '/Users/me/Library/Developer/Xcode/DerivedData/MyApp-uebslaqdwgldkjemijpdqmizgyzc/Build/Intermediates.noindex/ MyApp / Debug-iphonesimulator / MyApp_Normal / MyApp_Normal / MyApp_Normal/Debug-iphonesimulator/ MyApp_Normal/ /Foo+CoreDataProperties.o':

1) Target 'MyApp' (проект 'MyApp') имеет команду компиляции для исходных файлов Swift

2) Target 'MyApp' (проект 'MyApp') имеет команду компиляции для исходных файлов Swift

Основную причину можно увидеть, развернув раздел Compile Swift Source Files в стенограмме сборки. Например:

<неизвестно>: 0: ошибка: имя файла "Address + CoreDataClass.swift" используется дважды: '/ Users / myUserName / Projects / Jnky / Foo + CoreDataProperties' и '/ Users / jk / myUserName / Developer / Xcode / DerivedData / MyApp-uebslaqdwgldkjemijpdqmizgyzc / Build / Intermediates.noindex / MyApp.build / Debug / MyApp.build / DerivedSources / CoreDataGenerated / Jnky / Foo + CoreDataProperties.swift '

Первый упомянутый файл - это исходный файл в каталоге вашего проекта, который кто-то сгенерировал, выбрав вашу модель данных в Project Navigator и щелкнув меню Editor> Create Managed Object Subclass. Эта функция была добавлена ​​примерно в Xcode 7.

Второй файл - это файл с тем же именем, но он похоронен в Xcode DerivedData. Этот файл автоматически генерируется Xcode во время каждой сборки, если файл модели данных (.xcdatamodeld) включен в целевую фазу сборки Compile Sources. Эта функция была добавлена ​​в Xcode 9 или около того. Для каждого объекта / класса создается ноль, один или два файла, в зависимости от настройки всплывающего окна Codegen. Это всплывающее окно находится в инспекторе модели данных, когда вы выбираете объект при редактировании модели данных…

screenshot of Data Model Inspector

Настройки:

  • Вручную / Нет Файлы не создаются
  • Категория / расширение Создается один файл, Foo + CoreDataProperties.m или .swift, содержащий категорию Objective-C или расширение Swift.
  • Определение класса Создается тот же файл категории / расширения, а также создается Foo + CoreDataClass.m или .swift, содержащий объявление класса и определение.

Итак, вы видите, что проблема возникает, когда разработчик (вроде меня), который привык к старому Xcode, начинает проект в более новом Xcode. Мы думаем, что нам нужно использовать пункт меню Create Managed Object Subclass, что мы и делаем, чтобы создавать файлы, которые мы можем видеть в Project Navigator, не осознавая, что наши настройки в Codegen всплывающие окна заставляют Xcode создавать дублирующиеся файлы, которые Apple «умно» не показывает в Project Navigator, потому что они не доверяют чтение разработчикам и вниманию комментарию в заголовке // Этот файл был создан автоматически и не подлежит редактированию.

Решение 1. Используйте старый способ

Вы можете отключить все автоматические Codegen для модели данных с помощью всего одной настройки:

  • Откройте проблему Target's Build PhasesProject Navigatorвыберите проект, затем в появившемся списке TARGETS выберите цель проблемы, затем вкладкуФазы сборки).
  • Разверните запись Compile Sources и найдите модель данных проблемы (файл.xcdatamodeld).
  • Удалить его из списка компиляции
  • Убедитесь, что модель данных включена в список Copy Bundle Resources.

Решение 2 - Магия основных данных для начинающих

Здесь вы идете ва-банк по-новому.

  • Оставьте вашу модель данных как есть Исходные коды компиляции.
  • В каждом Entity Inspector в вашей модели данных установите Codegen на Определение класса.
  • В навигаторе проекта удалите и удалите любые файлы Foo + CoreDataClass и переименуйте любые файлы Foo + CoreDataProperties.m или .swift во что-то вродеFoo + MyProperties.
  • В каждом файле Foo + MyProperties.m или .swift, если есть свойства, сгенерированные Xcode, удалите эти свойства, потому что они будут в скрытых файлах, созданных Codegen.

В этом решении определения ваших классов автоматически генерируются из модели данных при каждой сборке. Вы их даже не видите. Это Core Data Magic, приятно и просто для новичков.

Решение 3 - для большинства реальных приложений

Но Решение 2 бесполезно, если вы действительно хотите добавить неуправляемые свойства. (Objective-C не позволяет добавлять свойства в категории, а Swift не позволяет добавлять сохраненные свойства в расширения.) Таким образом, в большинстве реальных приложений вы, вероятно, захотите пойти посередине между решениями 1 и 2…

  • Оставьте свою модель данных в списке Источники компиляции
  • В каждом Entity Inspector в вашей модели данных установите Codegen на Category / Extension.
  • .
  • В навигаторе проекта удалите и удалите любые файлы Foo + CoreDataClass.m или .swift и, чтобы избежать путаницы в будущем, переименуйте любые Foo + CoreDataProperties. m или .swift до файлов Foo.m или .swift.
  • Убедитесь, что каждый файл Foo.m или .swift содержит определение класса, к которому вы можете добавить свои собственные неуправляемые свойства.

(Благодарность за ответ Позитрона. Мой ответ здесь объясняет, почему ответ Позитрона (мое Решение 1) работает, и добавляет Решение 2 и Решение 3.)

Проверьте поддерживаемые платформы!

Мы потратили несколько месяцев на изучение этой проблемы в нескольких наших дочерних проектах. Мы обнаружили, что для AVAILABLE_PLATFORMS было задано значение "appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator", что приводило к созданию нескольких платформ, что приводило к ошибке «Несколько команд вызывают ошибку». Например, платформа «Foo» создавалась как для iOS, так и для TVOS, и поэтому несколько команд сборки создавали файл Foo.framework.

Как только ставим

AVAILABLE_PLATFORMS = iphoneos iphonesimulator

в нашем корневом файле xcconfig, эта проблема исчезла во всех дочерних проектах.

Для проверки вашей конфигурации

Выполнить

xcodebuild -project FitbitMobile.xcodeproj -target "FitbitMobile" -showBuildSettings > BuildSettings.txt

Посмотрите, настроен ли вывод на то, что вы ожидаете. Если вы используете приложение для iOS и создаете для tvOS, вам нужно обновить конфигурацию.

В моем случае я дважды разочарованно добавил файл GoogleService-Info.plist в свой проект Firebase.

Удаляю первое добавленное GoogleService-Info.plist и проблема решена.

My error was:

duplicate output file

'/Users/home/Library/Developer/Xcode/DerivedData/myAppName-fawptgabysjowicvpeqydjniuovo/Build/Products/Debug-iphoneos/myAppName.app/GoogleMaps.bundle' on task: PhaseScriptExecution [CP] Copy Pods Resources /Users/home/Library/Developer/Xcode/DerivedData/myAppName-fawptgabysjowicvpeqydjniuovo/Build/Intermediates.noindex/myAppName.build/Debug-iphoneos/myAppName.build/Script-32CCC25BF727B592A1784900.sh

I focused on the problem file being GoogleMaps.bundle and the location of that file being in [CP] Copy Pods Resources, and the fact that it specified it’s a duplicate output file (I highlighted them in black above), it's the 4th step below

First create a copy of your project and make sure you first do the following steps on that copy

1- In the project navigator I went to the blue project icon

enter image description here

2- I choose Build phases

enter image description here

3- Under Build Phases I choose [CP] Copy Pods Resources

enter image description here

4- Under [CP] Copy Pods Resources I went to Output Files and underneath there I found the file that ended with GoogleMaps.bundle. I selected it and pressed the minus sign to delete it. Make sure you go to Output Files and NOT Input Files

enter image description here

5- I did a clean shift+cmmd+k and afterwards when I built the project the error was gone

The odd thing was even though the red error went away the yellow warning was still there but it worked :)

Моя проблема заключалась в дублировании имени модуля продукта как для созданного мной расширения действия, так и для основной цели. Решением было изменение имени модуля продукта (в настройках сборки) для расширения.

(XCode 11)

Убрать чертов файл Assets

Решение -> Открыть цель -> Фазы сборки> Копировать ресурсы пакета и удалить оттуда активы.

Здесь то же самое, но вот последнее решение, май 2020 г.

Похоже на ошибку или новую проблему с новой версией Xcode.

Ответ об ошибке:

Не удалось собрать проект iOS. Мы выполнили команду «xcodebuild», но она завершилась с кодом ошибки 65.

Подробный ответ:

Информация о системе сборки ошибка: несколько команд создают '/path/of/the/project/ios/build/NameOfTheProject/Build/Products/Debug-iphonesimulator/NameOfTheProject.app/Zocial.ttf':

1) Цель 'NameOfTheProject' (проект 'NameOfTheProject') имеет команду копирования из '/path/of/the/project/NameOfTheProject/node_modules/react-native-vector-icons/Fonts/Zocial.ttf' в '/ путь / к / проекту / NameOfTheProject / ios / build / NameOfTheProject / Build / Products / Debug-iphonesimulator / NameOfTheProject.app / Zocial.ttf '

2) Эта команда зависит от команды в Target 'NameOfTheProject' (проект 'NameOfTheProject'): этап сценария «[CP] Copy Pods Resources»

Информация о системе сборки ошибка: несколько команд создают '/path/of/the/project/ios/build/NameOfTheProject/Build/Products/Debug-iphonesimulator/NameOfTheProject.app/SimpleLineIcons.ttf':

1) Целевой объект 'NameOfTheProject' (проект 'NameOfTheProject') имеет команду копирования из '/path/of/the/project/NameOfTheProject/node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf' в '/ путь / к / проекту / NameOfTheProject / ios / build / NameOfTheProject / Build / Products / Debug-iphonesimulator / NameOfTheProject.app / SimpleLineIcons.ttf '

2) Эта команда зависит от команды в Target 'NameOfTheProject' (проект 'NameOfTheProject'): этап сценария «[CP] Copy Pods Resources»

...

Этот ответ повторяется для каждого файла .ttf, используемого библиотекой.

Мне пришлось временно response-native отсоединить response-native-vector-iconsи снова построить проект, но без значков.

Этот ответ устарел - XCode 12 устарел Legacy Build System, он будет удален в следующем выпуске

Я использую XCode 11.4 Невозможно собрать старый проект

Xcode => Файл => Настройки проекта => Система сборки => Устаревшая система сборки

enter image description here

enter image description here

1 - Удалить DerivedData для всех приложений 2- Открытый терминал 3- Обновить модуль Сделано все 😃

К сожалению, ни один из этих ответов у меня не сработал ... вот ошибка, которую я видел:

"Несколько команд создают '/Users/.../.../.../Frameworks/abcdef.framework"

  1. Эта команда зависит от команды ...: этап сценария ""
  2. Эта команда зависит от команды ...: фаза сценария ""

Добавление этой строки в Podfile и выполнение «Pod Install» было ЕДИНСТВЕННЫМ, что сработало.

install! 'cocoapods', :disable_input_output_paths => true

Очень надеюсь, что это кому-то поможет. Я часами пытался это исправить и наконец получил.

Иногда мне просто хочется, чтобы Xcode был таким же эффективным, как IntelliJ / Android Studio: (

Гудлак!

I am new to IOS development and I tried the above answers but they did not work for me.

My XCode version is 12.4, Swift 5

I was getting Multiple commands produce error while building

I tried to expand the error from the error list but double-clicking it did nothing so first it was difficult for me to know the full error.

So I right clicked the error and copied to clipboard, pasted it in text editor.

It showed the full error

It said which part has the problem

Multiple commands produce '/Users/userName/Library/Developer/Xcode/DerivedData/ProjectName-fbeqffupediuiedlrplqjyhgyqna/Build/Products/Production-iphoneos/XCFrameworkIntermediates/GoogleAppMeasurement':
1) That command depends on command in Target 'GoogleAppMeasurement-iOS12.3' (project 'Pods'): script phase “[CP] Copy XCFrameworks”
2) That command depends on command in Target 'GoogleAppMeasurement-iOS14.1' (project 'Pods'): script phase “[CP] Copy XCFrameworks”

(I am using Google Firebase)

I was surprised to see that the pods were being compiled for 2 different versions of iOS (12.3 and 14.1)

I found that, in the active target configuration, I set iOS 12.3 in the Deployment Info section and set 14.1 in Deployment Target in Project level Info tab

Setting both to same required version and then clean and build solved the issue.

Please let me know if setting 2 different versions is a mistake or not. If it was not a mistake, then what to do keeping following in mind:

  • I am not allowed to set build system to legacy
  • info.plist does not exist in the Copy Bundle Resources phase

Эта ошибка также может возникать при создании фреймворка.

В вашем фреймворк-проекте, если у вас есть целевые приложения и вы установили другую версию iOS в разделе «Информация о развертывании» для каждой цели приложения, при выполнении pod install будет создана новая цель для того же модуля с суффиксом версии ios. .

Вы можете проверить это, перейдя к цели pods. Если вы видите дублирование, то это ваша проблема. Xcode запутался из-за этого и выдает такую ​​ошибку.

Multiple commands produce '/Users/userName/Library/Developer/Xcode/DerivedData/ProjectName-fbeqffupediuiedlrplqjyhgyqna/Build/Products/Production-iphoneos/XCFrameworkIntermediates/SomePodFramework':
1) That command depends on command in Target 'SomePodFramework-iOS10.0' (project 'Pods'): script phase “[CP] Copy XCFrameworks”
2) That command depends on command in Target 'SomePodFramework-iOS13.0' (project 'Pods'): script phase “[CP] Copy XCFrameworks”

Вот что вам нужно сделать.

  1. Сделайте все минимальные версии iOS в разделе «Информация о развертывании» для всех целей одинаковыми. Это гарантирует, что при установке модуля cocoapods не будет создана новая цель для одного и того же модуля в зависимости от нескольких версий ios.
  2. Закройте ваше рабочее пространство. Удалите папку xcworkspace, Podfile.lock и Pods.
  3. Выполнить pod install.

Теперь, когда вы открываете рабочее место, вы можете снова проверить цель стручков. Вы увидите, что дублирования нет.

Теперь просто измените информацию о развертывании всех ваших целей на то, что было раньше.

Если вы вручную создаете CoreDataClass и CoreDataProperties своей сущности, убедитесь, что вы перешли на свою xcdatamodel и установили Codegen на вкладке инспектора на «Вручную / Нет». Xcode автоматически создаст для вас повторяющийся класс, если он установлен как «Определение класса».

Попробуйте, это работает:

В Xcode перейдите в File-> Project / Workspace settings.

Измените систему сборки на Legacy Build system.

В моем случае файл Info.plist был скопирован с одного из моих Cocoapods. Удалил и проблему решил.

Если проблема с вашей ошибкой - .app / (а не .app / Info.plist), см. Этот ответ здесь: ошибка xcode 10: несколько команд производят - реагируйте на родной

Если вы получаете эту ошибку с React Native, в частности с libyoga.a, посмотрите this Комментарий Github

My ProjectName.xcodeproj имел действительную и недопустимую ссылку на файл с тем же именем. То же имя файла в навигаторе проекта, одно имя файла было красным, другое нормально. Я избавился от недействительной ссылки (красной), проблема решена.

В моем случае у меня был одинаковый Путь к общедоступной папке заголовков для двух разных статических библиотек. Одно предназначалось для основного приложения, другое - для приложения для часов. Изменил путь к приложению часов и теперь все в порядке.

Это в основном означает, что у вас есть несколько файлов с именами Info.plist; Обычно это нормально, но случайно ваши файлы имеют такое же целевое членство. Итак, исправление: щелкните каждый файл и проверьте их целевое членство справа, убедитесь, что они не перекрываются.

Для меня проблема была связана с тем, что один и тот же файл был дважды включен в ресурсы пакета. Не знаю, как это произошло, но я удалил одну из них, и она отлично скомпилировалась с новой системой сборки.

Иногда причина этой проблемы заключается в том, что у вас есть несколько целей, которые имеют разные цели развертывания iOS. просто убедитесь, что ваши цели (например, основная цель приложения и ваши расширения) имеют одну и ту же цель развертывания iOS.

На самом деле вы можете использовать устаревшую систему сборки, но вы не получите быстрого времени сборки, т.е.) вы не получите новых функций системы сборки, которые были установлены по умолчанию в XCode10 Это просто обходной путь, чтобы не получить последнюю версию особенности сборки https://developer.apple.com/documentation/xcode_release_notes/xcode_10_release_notes/build_system_release_notes_for_xcode_10

Многократная ошибка производства была вызвана для меня скрытым файлом (.gitkeep) Внимательно посмотрите на свои источники компиляции, я считаю, что этот файл был в источниках компиляции, но он отображается как пустая строка. На самом деле в нем не указано имя скрытого файла, но я удалил пустую строку, и проблема была устранена, поэтому я подозреваю, что навигатор проекта не отображает скрытые файлы.

У меня была та же проблема, но я мог ее исправить, удалив связанные файлы .png и каталог ресурсов значков, а затем построив приложение. Это привело к ожидаемым ошибкам из-за отсутствия активов. После этого я добавил все снова и без проблем создал приложение.

Этот ответ для вас, если вы столкнулись с проблемой в основных данных. Перейдите к yourfilename.xcdatamodeld и убедитесь, что у всех сущностей есть manual / None Codegen. enter image description here

Была аналогичная проблема, но с файлами .swiftdoc.

У меня есть расширения и цели модульного тестирования в проекте. И у них было то же «Название модуля продукта» (PRODUCT_MODULE_NAME в настройках сборки), что и у приложения. После создания уникальных имен проблема исчезла.

В моем случае PDFGenerator создавал файл info.plist, я просто удалил его.

enter image description here

Этот ответ устарел - XCode 12 устарел Legacy Build System, он будет удален в следующем выпуске

Попробуйте и это. Xcode-> Файл-> Настройки проекта-> Система сборки -> Устаревшая система сборки.

Комментарий use_frameworks! в PodFile у меня работал.

#use_frameworks!

Примечание: это было сделано на XCode 10.1, версия модуля 1.8.4

Перейдите на этап сборки проекта и удалите info.plist из источников компиляции. Это устранит эту проблему, и проект снова станет активным.

enter image description here

В нашем случае мы просто убрали весь мусор из «Copy Bundle Resources», оставив только минимальные элементы.

enter image description here

У меня была эта проблема, когда у меня был файл с тем же именем в двух разных целях. По какой-то причине один из этих файлов у меня был частью обеих целей. Так что в основном у меня было два файла. И оба эти файла принадлежали одной цели.

Имеет смысл, что цель может иметь только одно имя файла для каждой цели, поэтому просто снятие флажка целевого элемента для файла, не связанного с основной целью, решило проблему.

Искать & Удалять повторяющиеся файлы, созданные несколькими командами.

Здесь нужно удалить лишний файл Info.plist (в моем случае это был Contents.json)

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

В моем случае мой файл GoogleService-info.plist многократно скопирован, так как он включен как в мое основное приложение, так и в проект расширения общего ресурса.

Решение состоит в том, чтобы исключить этот файл из проекта расширения (сняв его отметку с Target в его File Inspector виде бокового окна); поскольку мне не нравится возможность переключиться на Legacy Build System (которая также работает для меня).

Дублирование названия продукта также может вызвать ту же проблему, особенно когда вы создаете более одной цели расширения в одной рабочей области.

Убедитесь, что вы также отметили Product Module Name в соответствии с ответом @Lirik.

Стоит отметить, что эта ошибка может появиться после автоматического создания моделей CoreData, где Codegen не установлен на Manual / None.

Чтобы исправить это в Xcode 10, дважды щелкните файл xcdatamodeId, выберите каждую из своих сущностей и установите для Codegen значение «Вручную / Нет» в разделе «Класс» в инспекторе моделей данных.

В моем случае очистка лишенных данных и настроек сборки (в этом порядке), а также перезапуск Xcode и Simulator помогли.

Я попытался сделать Решение -> Открыть цель -> Фазы сборки> Копировать ресурсы пакета, но он снова там появился. Очистка лишенных данных помогла. в ошибке он показывает, где находится дубликат, в моем случае он сказал, что он был в моем пакете приложений и в лишенных данных.

Я экспериментировал с Core Data. Я построил модель данных для простой программы контрольного списка и сгенерировал NSManagedObjects. При компиляции проекта я получил следующую ошибку:

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

Проблема заключалась в том, что модель данных (CheckList.xcdatamodeld в моем случае) была в списке «Источники компиляции». Когда я удалил его из списка, проект скомпилировался чисто.

  1. Откройте навигатор проекта и выберите проект (самая первая запись вверху)
  2. Выберите цель сборки в разделе «Цели» на панели «Проекты и цели»
  3. Выберите опцию Build Phases в верхней части
  4. Разверните запись «Компиляция источников» и найдите имя своей модели данных. Поищите "xcdatamodeld", если не можете его найти.
  5. Удалить модель из списка компиляции
  6. Убедитесь, что модель данных включена в список «Копировать ресурсы пакета». Добавьте его, если он отсутствует.

ИЗМЕНИТЬ

Как @WilliamT. в комментариях объясняется, что вам нужен xcdatamodeld в списке компиляции. Вместо этого перейдите к своим объектам в файле xcdatamodeld. Выберите модели с ошибками, разверните левую панель и измените поле «Codegen» на «Manual / None».

В моем случае у меня был модифицированный проект часов, в котором приложение и расширение имели файлы info.plist (все названы с тем же именем), чтобы решить эту проблему, я переименовал файлы для ios, я оставил его как info.plist для часов, которые я назвал watch_info.plistи т. д. После этого я изменил «проект-> цель-> параметры сборки» в пакете info.pilst и соответствующим образом изменил имя файла plist, что решило эту проблему для меня

обратите внимание, что я видел в других местах, чтобы изменить систему сборки с новой на устаревшую в настройках проекта / рабочей области, хотя это работает - я не рекомендую это, поскольку это вызывает другие проблемы в будущем.

Моя ситуация была похожа на Дамо - некоторые Продукты добавлялись в проект Pods дважды. Структура моего подфайла была:

# platform :ios, '11.0' 

def shared_pods
  use_frameworks!
  pod 'SharedPod1'
end

target 'Target1' do
  pod 'SomePod1'
  shared_pods
end

target 'Target2' do
  shared_pods
end

и все общие поды были добавлены дважды. Раскомментирование первой строки и затем pod install решило проблему.

В моем случае проблема связана с подфайлом . Я должен добавить мой тест проект в подфайл :

target 'MyApp' do
    pod 'Firebase'
    target 'MyAppTests' do
        inherit! :search_paths
        pod 'Firebase'
    end
end

После этого мне нужно выполнить:

pod update

Нет устаревшей системы сборки Если у вас есть такой подфайл

def shared_pods
  pod 'X'
end

target 'A' do
  shared_pods
end

target 'B' do
  shared_pods
end

и B также зависит от A, тогда переместите B в A вот так

 target 'A' do

   shared_pods

   target 'B' do
     inherit! :search_paths
   end
 end

У меня была такая же проблема с plist. Оказывается, у меня было две его копии, одна была пустой, а другая была в моей папке локализованных ресурсов. Удаление одного из них (пустого) решило проблему.

Если вы проверите свою ошибку, строки 1) и 2) имеют разные пути. Вероятно, этот файл был определен дважды на этапе копирования.

Проверьте свои целевые свойства, Фазы сборки, Копирование ресурсов пакета и найдите дубликат info.plist. Выясните, какой путь неверен, и удалите его. (Возможно, вы захотите удалить его и из файловой системы.)

Выберите свою схему (верхний левый угол) -> Изменить схему ... -> Сборка (левая вкладка) -> снимите флажок «Найти неявные зависимости»

enter image description here

И после этого вам может потребоваться исправить любые зависимости, которые не были явно импортированы вашими целями.

В Xcode 10 он будет работать и с предыдущей версией

  1. Дважды щелкните по проекту
  2. Вы увидите изображение, как показано ниже
  3. выберите ЦЕЛЬ слева
  4. Развернуть Копировать ресурсы пакета (0 элементов)
  5. Удалить соответствующий файл, из-за которого возникает ошибка

enter image description here

Прежде чем я начну, обратите внимание, что мой проект использует Carthage в качестве менеджера зависимостей.

Ни один из существующих здесь ответов не решил мою проблему. Для меня проблема была решена следующим образом.

Во-первых, я заметил, что ошибка сборки указывала конкретно на один фреймворк. Затем я отфильтровал App Target> Build Phases для этой платформы. Я заметил, что этот фреймворк присутствует как в «Link Binary With Libraries», так и «Embed Frameworks». Заметив, что ни одна из фреймворков, перечисленных в разделе «Embed Frameworks», не управляется Carthage, я удалил рассматриваемый фреймворк из «Embed Frameworks». Затем я перестроил свой проект, и все работает нормально, включая функции, включенные в рассматриваемый фреймворк.

Переход на Xcode 10, ошибки типа

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

решается следующим образом:

Перейдите в Xcode-> File-> Workspace / Project Settings-> Build System -> Legacy Build System.

Для людей, которые полагаются на одинаковые имена при импорте заголовков Swift. (Пример: имя файла заголовка: # import "MyApp-Swift.h"):

Имя этого файла заголовка фактически определяется $ {SWIFT_MODULE_NAME} -Swift.h, где SWIFT_MODULE_NAME использует PRODUCT_MODULE_NAME в качестве значения по умолчанию.

Более того, существует параметр сборки, который называется для всего проекта: SWIFT_OBJC_INTERFACE_HEADER_NAME «Имя заголовка интерфейса, сгенерированного Objective-C», и его значение по умолчанию $ {SWIFT_MODULE_NAME} -Swift.h. Изменив это значение на MyApp-Swift.h, все цели в нашей совокупной сборке смогли использовать одно и то же имя заголовка, и из них мы смогли изменить значение PRODUCT_MODULE_NAME.

Если ваше приложение генерирует ошибку, связанную с несколькими файлами .app, удалите файлы .plist из «Копировать ресурсы пакета» НЕ БУДЕТ РАБОТАТЬ.

Если ошибка связана с файлом .app, выполните следующие действия

  1. Выберите цель.

  2. Перейдите на вкладку Фазы сборки.

  3. Удалите элементы, перечисленные в Выходные файлы
  4. Скомпилируйте код, если он компилируется успешно, не выполняйте следующие шаги.
  5. Если код не компилируется успешно, и Xcode может выдать вам ошибку, связанную с «Библиотека не найдена». Затем добавьте недостающую библиотеку в Общие Вкладка в Связанные платформы и библиотеки, которые Xcode упоминает в ошибке.
  6. Продолжайте добавлять эти библиотеки (которые Xcode запрашивает из-за ошибок компиляции) в Связанные платформы и библиотеки, пока код не скомпилируется успешно.

    Надеюсь, это поможет.

Если вы разрабатываете частный cocoapodи уже добавили его через Podfile,

удалить его из раздела Embedded Binaries:

Embedded Binaries in test app

Решение 1:
В Xcode перейдите в File ➼ Project / Workspace settings.
➼ Измените систему сборки на Legacy Build system.

Решение 2:
Откройте цель ➼ Фазы сборки ➼ Скопируйте ресурсы пакета ➼ удалите оттуда info.plist. ➼ вам придется удалить plist и из расширений (если есть).

Решение 3:
Если вы используете CocoaPods, вы можете попробовать деинтегрировать поды и установить снова. Команды:

1) pod deintegrate
2) pod install

Вот еще одно рабочее решение: (Если вы используете собственные модули)

  • Выберите «Pods» на боковой панели, как показано на скриншоте.
  • Щелкните по фазе сборки. Разверните раздел «Заголовки». Есть 3 варианта Public, Private, Project
  • Разверните Public и проверьте, есть ли повторяющиеся файлы. Убери это.ВЫПОЛНЕНО !!

enter image description here

Ни одно из предложенных здесь решений не помогло мне. В частности, это произошло из-за CocoaPods. Раньше я использовал Cocoapods 1.3.1. Простое обновление до 1.5.3 не сразу устранило проблему.

Я выполнил следующие шаги:

  1. Удалить Podfile.lock
  2. Удалить каталог подов
  3. Удалить производные данные и очистить
  4. Выйти из Xcode
  5. Обновление CocoaPods до версии 1.5.3
  6. Запуск установка модуля
  7. Открыть рабочее пространство и построить

Для тех, кто использует React Native и Cocoapods

Проблема была вызвана некоторыми libRN ... a файлами. Я исправил это, удалив некоторые из них, например libRNScreens.a и libRNGestureHandler.a из Build Phases -> Link Binary with Libraries, поскольку на них уже ссылались другие библиотеки. Остальные пришлось заменить их версией Pod, например libRNDeviceInfo.a:

enter image description here enter image description here

Проверяя журнал сборки, заметил предупреждение:

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//Repositories/Whitesmith/optimize-ios/Carthage/Checkouts/WSStatusBarNotification/Miscellaneous/Info.plist'. (in target 'JDStatusBarNotification')

Итак, если это ваш случай, просто перейдите к своей цели:

  1. Фазы сборки
  2. Копировать ресурс пакета
  3. Удалить info.plist.

У меня та же проблема, но с заголовочными файлами.

enter image description here

В этом случае решение - переместить заголовки из раздела «Public» в раздел «Project».

enter image description here

В моем случае (я использую Carthage) проблема с

error: Multiple commands produce 
1) Target *** has copy command from
2) That command depends on command in Target ***: script phase “Run Carthage Script” 

было вызвано импортом фреймворков как в встроенные фреймворки, так и Запуск скрипта carthage этапов в Фазы сборки конфигурация

Эти 2 фазы копируют фреймворки в производные данные, поэтому Xcode видит дублированные файлы и выводит эти ошибки с предупреждением:

ignoring duplicated output file: (in target ***)

После удаления дублированных фреймворков из Встроенный фреймворкэтап все работает правильно.

Если вы получаете это из команды Ditto, создавая несколько экземпляров с одним и тем же именем (НЕ этап сборки 'копировать файлы'), вам, возможно, придется изменить Название модуля продукта.

  1. Нажмите на свою цель (а) Xcode жалуется на
  2. Нажмите Настройки сборки
  3. Искать Название модуля продукта
  4. Измените имя на какое-нибудь уникальное

У нас есть цель наблюдения и несколько целей уведомлений в нашем приложении, поэтому я просто помещаю такие вещи, как Extension в конце имени модуля.

Первоначально я нашел это решение здесь: https://forums.developer.apple.com/thread/103913

[Обновлено] попробуйте проверить Project-> Targets -> (Ваше имя Project) -> Copy Bundle Resources и проверьте, есть ли какое-то дублированное имя файла, связанного с вашей ошибкой.

После того, как вы нашли повторяющееся имя, удалите один путь, который показан неверно.

enter image description here

изображение выше показывает, что я уже удалил не тот. Извините, я не сделал снимок экрана с изображениями ошибок. Обновится, если снова столкнется с этим.

Попробуйте все эти варианты, любой из этих 3 вариантов наверняка подойдет вам

Option 1: Remove all files from

Цель >> Фазы сборки >> Исходные коды компиляции

Цель >> Фазы сборки >> Копировать ресурсы пакета

Option 2: Change the build system

Xcode-> Файл-> Настройки проекта-> Система сборки -> Устаревшая система сборки

Option 3: remove and update existing pod

очистка кеша пода PromisesObjC
очистка кеша пода PromisesSwift
cd [каталог_вашего_проекта]
rm -rf Pods /
rm Podfile.lock
пакет обновления

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

Одним из вариантов решения моей проблемы является изменение системы сборки на устаревшую систему сборки. Пожалуйста, выполните следующие шаги в Xcode 10 +.

Здесь я написал подробную статью о проблеме и ее решении.Ошибка Xcode: несколько команд производят

enter image description here

enter image description here

Этот ответ устарел - Xcode 12 устарел Legacy Build System, он будет удален в следующем выпуске

Я нашел решение этой ошибки сборки, для всех, у кого есть такая же проблема с системой сборки Xcode 10, выполните следующие шаги, чтобы исправить это:

  1. В Xcode перейдите в File-> Project / Workspace settings.
  2. Измените систему сборки на Legacy Build system.

enter image description here Это решит проблему сборки с новым Xcode 10.

Если вы хотите работать с новой системой сборки, вы можете найти справку по устранению неполадок на этой странице справки Apple Xcode.

Перейдите в Xcode -> Файл -> Настройки рабочего пространства. Вы найдете одно всплывающее окно вроде.

enter image description here

Выберите «Legacy Build System» из тега Build System. Нажмите «Готово»

Примечание: - Убедитесь, что ваш проект очищен с помощью «cmd + shift + alt + k» и «Derived Data»

Создайте свой проект, он будет работать шарм :)

Я использую Carthage и Xcode 10.

Мое решение -> Проект -> Цель -> Общие ->

Удалите фреймворки, добавленные с Carthage, из «Встроенных двоичных файлов»

Обычно вам нужно добавить скрипт на этапах сборки, чтобы убрать архитектуру для магазина приложений.

В Xcode 10 скрипт вызывается всегда. Таким образом, он копирует фреймворки в нужное место, и вам не нужно добавлять их на вкладку «Общие».

Примечание: если не установлено -> в настройках сборки -> Пути поиска -> Пути поиска фреймворка -> установите путь к фреймворку u, добавленному с помощью Carthage .... например. «$ (PROJECT_DIR) / Carthage / Build / iOS»

Проблема: Обнаружена ошибка при создании архива xcodebuild для проекта Cocoapod в командной строке.

Ошибка в консоли: ошибка: несколько команд создают '/Users/xxxx/Library/Developer/Xcode/DerivedData/...':

Шаги, которые разрешили эту проблему:

  1. Открыть Xcode
  2. Выберите схему в верхней части редактора Xcode
  3. Выберите Edit Scheme
  4. Выберите «Сборка» в левом столбце всплывающего окна.
  5. Если была добавлена ​​какая-либо дополнительная цель, кроме цели, относящейся к отредактированной схеме.
  6. Выберите нерелевантную цель и удалите ее, нажав «значок минуса», и закройте всплывающее окно.
  7. Снова запустите команду xcodebuild в командной строке, чтобы решить проблему.

Описание с изображением:

Шаг 1:

Select Scheme

Шаг 3:

Select Edit Scheme

Шаг 4-6:

Remove Irrelevant Target and Save

2022 WebDevInsider