it-swarm.com.ru

Команда CompileSwift потерпела неудачу с ненулевым кодом выхода в Xcode 10

Добрый день,

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

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

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

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

С уважением.

52
Jordi Gámez

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

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

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

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

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

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

Я надеюсь, что это может помочь,

С уважением.

24
Jordi Gámez

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

23
Mahgol Fa

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

 enter image description here

11
Werner Altewischer

Очистите приложение и попробуйте собрать его заново, используя ShiftOptionCommandK затем CommandB,.

10
Mohamad

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

7
Omid Ariyan

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

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

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

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

6
cdeerinck

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

 enter image description here

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

5
Samy

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

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

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

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

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

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

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

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

2
Gurunathan

в моем случае проблема была в том, что расширение watchkit было установлено на Swift 3, а основной проект был установлен на Swift 4.2

2
Itay Bianco

Я пытался

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

и все это еще не решило проблему. Перезагрузка Mac сделала свое дело

2
codeherk

ERROR = Команда CompileSwiftSources завершилась с ненулевым кодом завершения

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

1
Harsh Vyas

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

1
Roshan lamichhane

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

Так":

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

1
sajede Nouri

В моем случае была повторяющаяся запись для фреймворка в разделе Input Files of Carthage framework в Build Phases

1
niks

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

1
RickS

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

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

1
Ankit Saini

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

Всегда сначала проверяйте флажок «глупый я», прежде чем искать в другом месте. :)

1
PruitIgoe

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

1
mef27

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

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

1
Alexander

Я также столкнулся с той же проблемой, и я сделал то, что предложил @cdeerinck, и перешел к следующему link , в котором предлагалось добавить пользовательскую переменную в Build Settings, чтобы отключить пакетный режим, т.е. добавить нового пользователя. определив переменную с именем Swift_ENABLE_BATCH_MODE и установив для нее значение NO, я смог получить более полное представление об этой проблеме, и я узнал, что ошибка была в структуре, использующей CommonCrypto, которая была добавлен в него (мной), но, поскольку Xcode 10 он изначально представлен как часть Swift (только для платформ Apple), и его добавление (или его существование в предыдущей версии) вызывало конфликт имен и, следовательно, выкидывал ошибку. Чтобы узнать больше, обратитесь к эта ссылка , которая объясняет проблему более подробно.

1
Sudhanshu Vohra

У меня та же проблема, и мое решение - изменить мелочь в настройках сборки

Swift_COMPILATION_MODE = singlefile;
Swift_OPTIMIZATION_LEVEL = "-O";
1
Daniel Le

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

1
fl034

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

Используя 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

конец

0
Tyler Kuntz