Ошибка команды CompileSwift с ненулевым кодом выхода в Xcode 10

После обновления до последней версии Xcode на данный момент (версия 10.0) проект не может быть собран, потому что он обнаружил некоторые ошибки, связанные с ошибкой «Команда CompileSwift завершилась неудачно с ненулевым кодом выхода».

Как мне решить эту ошибку? Они появляются в большинстве модулей (я использую CocoaPods), которые я использую в своем проекте.

Я попытался обновить версию модуля и модули до последней доступной версии, но проблема все еще существует.

Я много искал в Интернете, и информации по этому поводу очень мало.

pod install --repo-update, затем в папке чистой сборки xCode удалите производные данные, попробуйте построить снова после этого.
inokey 18.09.2018 15:15

Не сработало @inokey

Jordi Gámez 18.09.2018 15:20

Проверьте цель развертывания в настройках проекта.

inokey 18.09.2018 15:23

Целевое значение развертывания iOS установлено на 9.0, это проблема? Еще раз спасибо @inokey

Jordi Gámez 18.09.2018 15:26

Хорошо, теперь я не уверен на 100%, но вам лучше проверить свои репозитории подов. У них может быть версия, подходящая для iOS 9.0, и с обновлением вашего модуля вы можете случайно перезаписать его новейшей версией, которая выпускается прямо сейчас, когда новая iOS является общедоступной.

inokey 18.09.2018 15:30

@inokey Я произвел быстрый поиск в проекте и обнаружил, что #import <CommonCrypto / CommonCrypto.h> вызывается внутри CocoaPod, который я использую в проекте. Может в этом проблема?

Jordi Gámez 20.09.2018 08:11

Это вполне могло быть проблемой. Раньше при обновлении системы у меня были проблемы с обычным шифрованием Swift. Единственным решением этой проблемы было удаление папки pod'ов и выполнение чистой установки pod'ов.

inokey 20.09.2018 08:40

Спасибо @inokey, я написал свои шаги, и я надеюсь, что это может помочь другим людям, но это очень странно, потому что внезапно это начало работать ...!

Jordi Gámez 20.09.2018 09:23

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

inokey 20.09.2018 09:40

Другое возможное решение (которое сработало для меня) находится здесь: stackoverflow.com/a/52481653/96153

yo.ian.g 05.10.2018 05:06
stackoverflow.com/a/52722094/822420 может вам поможет
ram 09.10.2018 15:27

Чистая сборка, удаление производных данных - обычное решение для этого.

Solid Soft 14.11.2018 09:31

После обновления Xcode, такого как Xcode 10.3, следует перезапустить Mac

onmyway133 30.07.2019 12:47

Я знаю, что вы уже пытались перезапустить и перестроить все, единственное рабочее решение - переустановить Xcode !!!!

Kampai 23.03.2020 14:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
153
14
174 344
23
Перейти к ответу Данный вопрос помечен как решенный

Ответы 23

Моя проблема заключалась в том, что у меня не было собственного Swift CommonCrypto, использовался заголовок моста и цель, которая с немного магии включала его в сборку. Поскольку CommonCrypto теперь является родным, я решил проблему, удалив цель и #import, и вместо этого добавил import CommonCrypto там, где я его использовал.

Да! У меня тоже было это (никаких коконоподов или чего-то в этом роде, только CommonCrypto) Спасибо, что спасли мой день

Orion Edwards 25.09.2018 13:47

@OmidAriyan Привет, ребята, эта проблема помешала мне работать последние две недели: s, я перепробовал почти все решения, найденные на этом веб-сайте, но он просто не работает. Что касается вашего ответа, я на самом деле не понял сути. Не могли бы вы подробнее пояснить свой ответ? В чем проблема и что мне делать по шагам, пожалуйста :( :(

mojtaba al moussawi 20.11.2018 17:21

@mojtabaalmoussawi Я в основном следовал stackoverflow.com/a/42852743/1038245, чтобы использовать CommonCrypto в моем проекте до того, как был выпущен Xcode 10. Я просто попытался отменить это, чтобы исправить ошибку, о которой идет речь в этом вопросе.

Omid Ariyan 21.11.2018 17:12
Ответ принят как подходящий

В настоящее время моя сборка работает. Вот шаги, которые я пробовал, пока они, наконец, не сработали:

  1. Искать во всем проекте слово CommonCrypto.
  2. Если у вас есть Pod, содержащий этот импорт заголовка, удалите этот Pod из Podfile и выполните установку модуля.
  3. Очистите и соберите проект.
  4. Снова добавьте Pod в Podfile и выполните установку Pod.
  5. Очистите и заново соберите проект, используя реальное устройство, если это возможно.

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

Добавлена ​​информация: также. Если у вас есть ошибка кода внутри модуля, сначала вам нужно решить эту проблему с кодом, а затем снова попытаться скомпилировать проект.

Я собираюсь скопировать изменения, внесенные в мой project.pbxproj. Я знаю, что это не очень полезно, но это единственное, что изменилось в коммите git difference:

Removed: BDC9821B1E9BD1B600ADE0EF /* (null) in Sources */ = {isa = PBXBuildFile; };
Added:   BDC9821B1E9BD1B600ADE0EF /* BuildFile in Sources */ = {isa = PBXBuildFile; };

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

С Уважением.

Блестящий подход

Lepidopteron 20.09.2018 15:32

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

Abdulrahman Masoud 25.09.2018 10:42

Вы нашли какую-нибудь другую ошибку? Или только CompileSwift?

Jordi Gámez 25.09.2018 10:47

Если бы эта проблема была со стручком Kingfisher, ваш подход помог, спасибо!

algrid 10.10.2018 18:07

Отличный ответ, сработал и для меня.

Hasya 25.10.2018 15:29

Работал у меня. Та.

Calvedos 15.02.2019 09:55

Устранение других проблем с кодом, а затем выполнение этих шагов решило проблему для меня.

Adam Smaka 07.04.2019 09:54

Почему это должно работать?

Miroslav Kuťák 19.10.2019 00:11

Я бы, наверное, попробовал сначала просто очистить папку сборки ... если это поможет, вы справитесь без особых проблем. (По крайней мере, это то, что случилось со мной)

mikey 21.10.2019 02:04

Столкнулся с проблемой в Xcode 11.3. Сделано все, что связано с очисткой производных данных, удалением модуля и всем, что доступно в Интернете, но не повезло, и приложение не отлаживалось на реальном устройстве. Затем подумал, что это может быть проблема сбоя Xcode, просто удалил Xcode в корзину и очистил корзину, а затем переустановил новую копию Xcode 11.3. Благодаря моему предположению, у меня это сработало.

Syed Faizan Ahmed 21.05.2020 22:02

Я обыскал всю сеть, но не нашел решения этой проблемы. Удалось УДАЛИТЬ путь "Common Crypto" в разделе: IMPORT Paths в настройках сборки. Проблема, похоже, в том, что «обычная криптовалюта» теперь существует в основе в SDK для iOS 12.

Так":

Просто удалите путь к файлу «common crypto» в настройках сборки, и проект будет построен как шарм! :)

Не могли бы вы уточнить, где это находится в настройках вашей сборки? Это путь поиска?

yo.ian.g 05.10.2018 04:55

да. Перейдите в настройки сборки, выберите вкладку «Все» вместо «Основные» или «Индивидуальные». Теперь ищите: «Swift Compiler - Search Paths» Здесь, если существует путь для общего шифрования, удалите его.

sajede Nouri 05.10.2018 07:54

Просто добавляю к этому вопросу. Моя проблема не связана с CommonCrypto. Он создал новое приложение для одного приложения и протестировал его для запуска. Компилятор жаловался на использование Swift 4.2

Изменение языка Swift до версии 4.0 в настройках сборки устранило проблему. Не уверен, что это ошибка.

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

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

CMash 30.10.2018 09:53

Есть подсказки, где найти эту настройку? Я просмотрел настройки сборки для своих целей и настройки сборки для проекта и не могу найти его (путем поиска), возможно, потому, что я нахожусь в проекте objective-c, который довольно старый?

Fonix 20.11.2018 08:39

Это под Swift Compiler -> Code Generation. В качестве альтернативы он иногда может быть указан в разделе Пользовательский -> SWIFT_COMPILATION_MODE

Werner Altewischer 20.11.2018 09:31

Для меня это не решило проблему, ничего не сделало.

Van Du Tran 26.11.2018 17:55

Спасибо за совет, и он устранил мою проблему. В моем случае проект миграции на Xcode 10.2 и Swift 5. Подробное объяснение я написал в своем блоге: davidchuprogramming.blogspot.com/2019/03/…

David.Chu.ca 29.03.2019 19:21

Для меня это решает проблему, которая, похоже, вызвана регулярной ошибкой компилятора в выражении, которое требует много времени для вычисления, а также установленным флагом компилятора -Xfrontend -warn-long-expression-type-checking=100.

Aderstedt 12.06.2019 20:14

Нет настройки сборки Compilation Mode.

Iulian Onofrei 30.10.2019 09:29

Я сделал следующее, и это работает как шарм:

  • Откройте настройки Xcode (Command,)
  • Переходим во вкладку Locations
  • Нажмите на маленькую серую стрелку, которая показывает URL-путь для Derived Data.
  • Откроется окно искателя, в котором будут показаны следующие папки:

    • DerivedData
    • Archives
    • iOS DeviceSupport
    • UserData
    • DocumentationCache
    • iOS Device Logs
  • Выйти из Xcode

  • Удалите папку DerivedData (она просто содержит кеш от предыдущих сборок)
  • Перезапустить Xcode

Для меня это не решило проблему, ничего не сделало.

Van Du Tran 26.11.2018 18:01

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

Всегда нужно ставить галочку в поле «Я дурак», прежде чем искать где-нибудь еще. :)

Позвольте мне поделиться своим опытом по исправлению этой проблемы.

Откройте цель -> Этапы сборки -> Копировать ресурсы пакета и удалите info.plist.

Примечание. Если вы используете какие-либо расширения, удалите info.plist этого расширения из Targets.

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

Для меня это не решило проблему, ничего не сделало.

Van Du Tran 26.11.2018 18:00

Это известная проблема в Swift 4.2 и Xcode 10. Я нашел здесь статью, в которой она исправлена ​​для меня: https://github.com/Yummypets/YPImagePicker/issues/236

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

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

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

Для меня это не решило проблему, ничего не сделало.

Van Du Tran 26.11.2018 17:57

Однако вместо этого я получаю это сообщение об ошибке: Команда PrecompileSwiftBridgingHeader завершилась неудачно с ненулевым кодом выхода.

Van Du Tran 26.11.2018 18:02

я не работал, снова получил ту же ошибку.

Arshad Shaik 19.02.2019 06:57

Это сработало для меня; выявил основную ошибку.

o037 22.09.2020 18:38

Вот решение: - Зайдите в настройки сборки - Искать в SWIFT_COMPILATION_MODE - Если это «Целый модуль» для конфигурации выпуска, измените его на «Инкрементальный». - Архив сейчас.

Когда вы меняете настройку на «Инкрементальный», процесс завершается успешно.

Получил это случайно с Xcode 10. Думаю, это происходит, когда я что-то меняю в коде, когда начинается сборка. Следующая сборка работает каждый раз.

Для меня просто проект очистки работает с использованием ShiftCommandK и OptionShiftCommandK.

Это работает и для меня.

Henry Gao 01.11.2018 13:19

Для меня это не решило проблему, ничего не сделало.

Van Du Tran 26.11.2018 17:55

@VanDuTran закройте свой xcode и снова откройте его

Mahgol Fa 27.12.2018 12:11

Это будет работать только в определенных случаях. Не жизнеспособное решение.

Samy 09.04.2019 22:09

Да, это тоже сработало для меня Xcode 10.2.1, iOS 2.3.1, iPhone XS Max. Слава богу, он не собирался искать иголку в стоге сена. Я не сильно изменился между последней компиляцией и тем, где я получил эту ошибку.

clearlight 15.06.2019 08:50

Этот ответ эквивалентен ИТ, когда людям предлагается попробовать выключить и снова включить. Что, конечно, решило для меня.

C. Skjerdal 26.08.2019 23:56

хахаха, чувак, спасибо, у меня это работает :) Ты классный,

Clinton Canarias 07.10.2019 23:45

Я не только проголосовал за то, что это правильный ответ, но и добавил кнопки быстрого доступа для людей. Shift + Command + K - это мой переход к вопросу «Почему это не компилируется?» решение.

Trapp 05.01.2020 19:56

Спасибо!!!!!!!

Mofawaw 24.09.2020 14:43

Вау, это уже третий раз ...

Mofawaw 18.10.2020 11:34

может тебе тоже стоит почистить ~/Library/Developer/Xcode/DerivedData

Mahgol Fa 01.08.2021 21:37
pod install --repo-update
Tlzdeveloper786 17.08.2021 15:55

Я также столкнулся с той же проблемой, и я сделал то, что предложил @cdeerinck, и получил следующий ссылка, который предлагал добавить определяемую пользователем переменную в Настройки сборки, чтобы отключить пакетный режим, т.е. добавить новую определяемую пользователем переменную с именем SWIFT_ENABLE_BATCH_MODE и установить ее на НЕТ, I смог получить больше информации об этой проблеме, и я узнал, что ошибка была в структуре, использующей CommonCrypto, который был добавлен к нему (мной), но поскольку Xcode 10 изначально доступен как часть Swift (только для платформ Apple), и добавление его (или его существования из предыдущей версии) приводило к конфликту имен и, следовательно, вызывало ошибку. Чтобы узнать больше, обратитесь к эта ссылка, в котором проблема объясняется более подробно.

У меня такая же проблема, и я решил немного изменить настройки сборки.

SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";

В моем случае в Входные файлы раздела Карфагенские рамки в Фазы сборки была дублирующаяся запись для фреймворка.

Скорее всего, вы не читаете все сообщение об ошибке. Если вы посмотрите выше сообщение «Команда CompileSwift завершилась неудачно с ненулевым кодом выхода», вы должны найти такую ​​спецификацию:

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

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

CristianMoisei 29.06.2019 01:19

Привет, @Samy. Что именно ты сделал?

Andrew Terex 03.03.2020 17:54

В моем примере 2 файла имели одинаковое имя, поэтому я изменил один из них.

Samy 04.03.2020 19:51

Повторное объявление класса будет проблемой. проверьте повторяющийся класс и сборку.

Запуск pod install --repo-update, закрытие и повторное открытие x-кода устранили эту проблему на всех моих модулях, в которых была эта ошибка.

ОШИБКА = сбой команды CompileSwiftSources с ненулевым кодом выхода

В моем случае. Когда я обнаружил эту ошибку, мне стало тесно с компиляцией. Но когда я вижу ответы на некоторые связанные проблемы. Я нашел дубликат файла в своем проекте. Где тот же viewController был там как файл класса. Так что да, когда я это понял, я сменил название на новое. И да, все изменилось !!!

Я пытался

  • Закрытие и повторное открытие Xcode
  • Очистка папки сборки
  • Запуск pod install --repo-update

и все это по-прежнему не устранило проблему.

Перезагрузка Mac сделала свое дело!

Я обновил свой xcode до 10.3 и столкнулся с аналогичными проблемами. Я попробовал все уловки, ничего не помогло, но, как указано здесь жирным шрифтом, «Перезагрузка Mac сделала свое дело», у меня это сработало.

Yoku 23.07.2019 13:29

Ненавижу это говорить, но перезапуск моего Mac решил проблему для меня. Кстати, я получил эту ошибку после обновления Xcode до 10.3.

luin 24.07.2019 08:39

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

codeherk 24.07.2019 08:44

Прежде чем что-либо делать, «перезагрузите Mac». Это должен быть главный ответ.

Rammohan Raja 09.08.2019 23:23

Перезагрузка Mac сработала для меня

Alejandro Luengo 16.08.2019 11:09

Папка чистой сборки у меня отлично работала (только чистая, без перезагрузки Mac).

DaniChi 03.09.2019 18:22

Дело с перезагрузкой Mac может показаться забавным, но это верный момент! В моем случае я модифицировал .bash_profile, затем быстро загрузил его в терминал: source .bash_profile и приступил к работе. Итак, через несколько дней, когда я вернулся, у меня снова возникли проблемы, потому что .bash_profile не был загружен ... Тогда перезапуск действительно помогает :)

Andy Res 21.07.2020 15:48

@DaniChi Это тоже сработало для меня. Я попытался перезапустить XCode и готовился перезапустить Mac, когда увидел ваш комментарий.

Manngo 26.10.2020 04:19

Похоже, это довольно расплывчатая ошибка, поэтому я расскажу, что я сделал, чтобы исправить ее, когда столкнулся с этим:

Используя Xcode 10.1 и Swift 4.2, я испробовал почти все предложения здесь, но ни одно из них не помогло мне, затем я понял, что зависимость, которую я использовал, несовместима со Swift 4.2, и из-за этого я получал эту ошибку на других модулях. Чтобы исправить это, мне просто пришлось заставить этот модуль использовать Swift 4.0, поместив это в конец моего Podfile:

post_install do |installer|
    installer.pods_project.targets.each do |target|
        if ['TKRadarChart'].include? target.name
            target.build_configurations.each do |config|
                config.build_settings['SWIFT_VERSION'] = '4.0'
            end
        end
    end
end

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

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

Nagarjun 01.05.2019 01:40

в моем случае проблема была связана с тем, что для расширения watchkit было установлено значение swift 3, в то время как цель основного проекта была установлена ​​на swift 4,2

Это прямо здесь! Это меня так долго беспокоило! Когда вы добавляете фреймворки / расширения в свои библиотеки, убедитесь, что и расширение, и библиотека используют одну и ту же языковую версию Swift! Спасибо @Itay

Zez3 21.08.2019 14:59

Другие вопросы по теме