Сбой команды CompileSwift с ненулевым кодом выхода в Xcode 10
Добрый день,
После обновления до последней версии Xcode на данный момент (версия 10.0) проект не может построить, потому что он обнаружил некоторые ошибки в отношении ошибки "Command CompileSwift с ошибкой с ненулевым кодом выхода".
Как решить эти ошибки? Они появляются в большинстве Pods (я использую CocoaPods), которые я использую в своем проекте.
Я попробовал обновить версию pod и контейнеры до последней версии, но проблема все еще там.
Я много искал в Интернете и очень мало информации об этой проблеме.
С уважением.
Ответы
Ответ 1
В настоящее время работает мой сборщик. Здесь вы делаете шаги, которые я пробовал, пока он, наконец, не работал:
- Искать во всем проекте слово CommonCrypto.
- Если у вас есть Pod, содержащий этот заголовок, удалите этот Pod из подфайла и выполните установку pod.
- Очистите и создайте проект.
- Добавьте снова Pod в подфайл и выполните установку pod.
- Очистите и снова создайте проект, используя, по возможности, реальное устройство.
И если у вас нет этого Pod, возможно, вы можете попробовать, выполнив те же шаги с некоторым старым Pod, с которым вы можете столкнуться в своем проекте.
Добавленная информация: также Если у вас есть некоторая ошибка кода внутри Pod, сначала вам нужно решить эту проблему с кодом, а затем попытаться снова скомпилировать проект.
Я собираюсь скопировать изменения, внесенные в проект project.pbxproj. Я знаю, что это не очень полезно, но это единственное, что изменилось в git-разнице:
Removed: BDC9821B1E9BD1B600ADE0EF /* (null) in Sources */ = {isa = PBXBuildFile; };
Added: BDC9821B1E9BD1B600ADE0EF /* BuildFile in Sources */ = {isa = PBXBuildFile; };
Надеюсь, это поможет,
С уважением.
Ответ 2
Для меня просто проект очистки работает с использованием Shift Command K и Option Shift Command K.
Ответ 3
У меня была эта проблема, и для меня изменился параметр "Режим компиляции" для проекта от "Инкрементный к целому модулю".
![enter image description here]()
Ответ 4
Скорее всего, вы не читаете полное сообщение об ошибке. Если вы посмотрите выше сообщения "Сбой команды CompileSwift с ненулевым кодом выхода", вы должны найти некоторую спецификацию, подобную этой:
![enter image description here]()
В этом примере у меня было два файла с одинаковым именем. Как только я это исправил, все заработало как надо.
Ответ 5
Я пытался
- Закрытие и повторное открытие Xcode
- Очистка сборки папки
- Запуск
pod install --repo-update
и все это еще не решило проблему.
Перезагрузка Mac сделала свое дело !
Ответ 6
Очистите приложение и попытайтесь его снова создать, используя Shift Option Command K, затем Command B.
Ответ 7
У меня возникла проблема из-за отсутствия собственного Swift CommonCrypto, использовавшего соединительный заголовок и цель, которая с помощью некоторой магии включила его в сборку. Поскольку CommonCrypto теперь является нативным, я решил эту проблему, удалив цель и #import
, и вместо этого добавил import CommonCrypto
, где я его использовал.
Ответ 8
Это известная проблема с Swift 4.2 и Xcode 10. Я нашел здесь статью, которая исправила ее для меня: https://github.com/Yummypets/YPImagePicker/issues/236
Короче говоря, перейдите к настройкам сборки ваших проектов, добавьте пользовательский параметр с именем SWIFT_ENABLE_BATCH_MODE и установите для него значение NO.
Ранее я пробовал каждый из следующих методов, предложенных в другом месте (перестроить, выйти из Xcode, очистить и перестроить, очистить файлы производных данных). Никто из них не работал.
После того, как я добавил пользовательскую настройку сборки в соответствии со статьей, Swift сообщил мне об истинной ошибке. В моем случае это было пропущено}, но это может быть любым количеством проблем.
Ответ 9
Вот решение: - Перейти к настройкам сборки - Поиск SWIFT_COMPILATION_MODE - Если это "Целый модуль" для конфигурации Release, измените его на "Incremental". - Архив сейчас.
Когда вы меняете настройку на "Incremental", процесс преуспевает.
Ответ 10
Я сделал следующее, и это работает как шарм:
Ответ 11
Позвольте мне поделиться своим опытом по устранению этой проблемы.
Открыть цель → Сроки сборки → Скопировать ресурсы Bundle и удалить info.plist.
Примечание. Если вы используете какие-либо расширения, удалите info.plist этого расширения из целевых объектов.
Надеюсь, поможет.
Ответ 12
Запуск pod install --repo-update
закрытие и повторное открытие x-кода исправили эту проблему на всех моих модулях, в которых была эта ошибка.
Ответ 13
в моем случае проблема была в том, что расширение watchkit было установлено на swift 3, а основная цель проекта была установлена на swift 4.2
Ответ 14
Моя проблема была связана с именами. У меня было два файла с тем же именем. Просто переименовал их и решил.
Всегда нужно сначала проверить "тупую меня", прежде чем искать в другом месте. :)
Ответ 15
Повторное объявление класса будет проблемой. проверить дубликат класса и построить.
Ответ 16
Я искал всю сеть, но я не мог найти решение этой проблемы. Мне удалось удалить путь "Common Crypto" в разделе "Параметры пути IMPORT в настройках сборки". Проблема заключается в том, что "общий крипто" теперь существует в фундаменте в ios 12 sdk.
Так":
Просто удалите путь для файла "common crypto" в настройках сборки, и проект будет построен как шарм! :)
Ответ 17
Просто добавив к этому вопросу. Моя проблема не имела ничего общего с CommonCrypto. Он создал новое приложение для одного приложения и протестирован для запуска. Компилятор жаловался на использование Swift 4.2
Исправлена проблема с изменением языка Swift до версии 4.0 в настройках сборки. Не уверен, что это ошибка.
Ответ 18
Я получил это случайно после Xcode 10. Я думаю, что это происходит, когда я что-то меняю в коде при запуске здания. Следующая сборка работает каждый раз.
Ответ 19
Я также столкнулся с той же проблемой, и я сделал то, что предложил @cdeerinck, и получил следующую ссылку, которая предложила добавить пользовательскую переменную в настройки сборки, чтобы отключить пакетный режим, т.е. добавить новую пользовательскую переменную с именем SWIFT_ENABLE_BATCH_MODE и установить ее в НЕТ, Я смог получить больше информации о проблеме, и я узнал, что ошибка была в каркасе с использованием CommonCrypto, который был добавлен к нему (мной), но так как Xcode 10 экспонируется изначально как часть Swift (только для платформ Apple), и добавление его (или его существование из предыдущей версии) вызывало столкновение имен и, следовательно, оно вызывало ошибку. Чтобы узнать больше, обратитесь к этой ссылке, которая объясняет проблему более подробно.
Ответ 20
У меня та же проблема, и мое решение изменить мелочь в настройках сборки
SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";
Ответ 21
ERROR = Команда CompileSwiftSources завершилась с ненулевым кодом завершения
В моем случае, когда я обнаружил эту ошибку, я столкнулся с проблемой компиляции. Но когда я вижу ответы на некоторые проблемы. Я нашел файл дублирования в моем проекте. Где тот же viewController был там, как файл класса. Так что да, когда я понял это, я изменил название на новое. И да, все изменилось !!!
Ответ 22
Кажется, что это довольно расплывчатая ошибка, поэтому я поделюсь, что я сделал, чтобы исправить это, когда столкнулся с этим:
Используя 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
Ответ 23
Для меня в сообщении об ошибке говорилось, что у меня слишком много файлов симулятора, открытых для сборки Swift. Когда я вышел из симулятора и собрал заново, все заработало.
Ответ 24
В моем случае в разделе " Входные файлы карфагенского фреймворка " в фазах сборки была дублирующаяся запись для каркаса.