Сбой сборки Xcode 10 с 'Command CompileSwift завершился неудачно с ненулевым кодом завершения
Я недавно обновил XCode до версии 10 и начал получать странную ошибку при попытке построить мой проект. Я в настоящее время на Swift 4.0, и я попытался обновить до версии 4.2 Swift. Но когда я это сделал, я получил эту же ошибку во многих моих фреймворках.
Сбой команды Compile Swift с ненулевым кодом завершения
Пока я удалил производную папку. Обновил все модули, также удалил все модули и переустановил их, используя команды терминала ниже.
sudo gem install cocoapods-deintegrate cocoapods-clean
pod deintegrate
pod clean
pod install
Это не сработало, чтобы исправить мою проблему. Тем не менее, я нашел то, что могло бы работать, что добавляло arm64
архитектура в Build Setting -> valid architectures
и включение автоматического кода Но, когда я проверил, он уже был там, и подписывание кода уже было включено.
Кроме того, у меня есть несколько других ошибок сборки, связанных с фреймворками.
SwiftMessages
Значение типа 'SwiftMessages.Config' не имеет члена 'presentationContext'
WhatsNewKit
Отсутствует аргумент для параметра 'backgroundColor' в вызове`
Я открыл проблемы с разработчиками каждой из этих платформ, чтобы обратиться за помощью в этих вопросах.
Проблема на GitHub SwiftMessage Проблема на GitHub WhatsNewKit
Когда я нажимаю presentationContext
это подводит меня к структуре внутри SwiftMessages
Фреймворк. Обычно, когда я получаю предупреждение "нет члена", я не могу щелкнуть, чтобы увидеть исходное место, где оно существует.
Я предполагаю, что это как-то связано с какао-бобами, но пока не удалось найти решение. Что я могу сделать, чтобы исправить эту проблему? Если бы кто-нибудь мог помочь, я был бы очень признателен, если бы я был застрял в этом на один день
Обновление: последние две сборки были для быстрой версии 4.2. Когда я изменил версию каждого фреймворка на тот, что был встроен в Swift 4.0, я получил проект для сборки.
19 ответов
Убедитесь, что ваш проект Swift Language Version находится в правильной версии. SwiftMessages 6.0.0 работает со Swift 4.2. Project-> Target-> Build Settings-> Swift Language Version">
Убедитесь, что в настройках вашего проекта Уровень оптимизации находится в Без оптимизации [-Onone].
Установите версию Swift на 4.2, затем pod deintegrate, pod install, исправьте эту проблему для меня. Спасибо @alejandro-iván
Я решил так:
- Прокомментируйте все пакеты в вашем файле .pod
- С вашего терминала запустите команду pod install --no-repo-update
- Откройте XCode выполнить чистую и перестроить проект
- Теперь откройте файл .pod и раскомментируйте первую библиотеку.
- С вашего терминала запустите команду pod install
Повторите шаги 2 - 3 - 4 -5 для каждой раскомментированной библиотеки в вашем файле .pod
Я надеюсь, что это может быть вашей помощи.
Для pod SwiftMessages, если ваше приложение не Swift 4.2, вам нужно использовать версию 5.01 pod 'SwiftMessages', '~> 5.0.1'
и это будет работать как шарм
Эта ошибка произошла со мной, когда я использовал одно и то же имя класса в двух разных группах. Затем я переименовал один из классов и проблема была решена
Доброе утро! Сделайте чистку. используя "commond + shift + k". Закройте Xcode. Перейдите в каталог проекта, в котором существует Podfile. Выполните обновление модуля / установку модуля. Откройте x.xcworkspace
У меня было несколько фреймворков (доморощенных) плюс мое приложение. Каким-то образом они оказались несинхронными до версии Swift. Убедитесь, что все рамки одинаковы. В моем случае все они должны были быть установлены на Swift 4.2. Если вы еще не выполнили переход на 4.2, помните, что Xcode помогает с этим: Правка -> Преобразовать -> В текущий синтаксис Swift.
Все ответы были полезны для меня. В моем случае я устанавливаю фреймворки только вручную, но такая проблема также возникает. Я попробовал все ответы и все еще получал эту проблему во время сборки. Любопытно, что во время кодирования я мог щелкнуть кнопкой мыши и разрешить все "отсутствующие" компоненты. Я также очистил и удалил производные данные, перезапустил Xcode и т. Д.
В конце концов я получил его, вызвав эти дополнительные шаги:
По каждому из рамочных проектов / целей (включая мою):
- Проверьте согласованную версию Swift (4.2 в моем случае)
- Установите для сборки только для активной архитектуры значение Нет
- Установите для Valid Architecture значение arm64, armv7 (для соответствия базовому проекту)
- Установите уровень оптимизации на Нет (для отладки)
- Установить режим компиляции на весь
В моем случае это была ошибка кода:
self.myDto.map{ (dto)} in
var stringValue = (dto.value(forKey: "name") as! String)
stringValue.append("c")
return stringValue
}
Просто удалил это stringValue
переменная исправила проблему.
Я наткнулся на эту проблему при обновлении до Xcode 10.2 и Swift 5. После того, как попробовал все, я нашел это в примечаниях к выпуску:
Компилятор Swift может дать сбой во время сборки, когда включен Thread Sanitizer. (48719789)
И, конечно же, после отключения Thread Sanitizer мой проект может быть скомпилирован без ошибок снова.
Так что, если вы получили эту ошибку и включили Thread Sanitizer - выключите его!
Та же проблема произошла со мной в Xcode 10.2, это была ошибка Xcode..! Итак, я открыл в более старой версии XCode (9.4), и он работал нормально. Затем я обновился до Xcode 10.2.1 после его выпуска -> Очистите и постройте свой проект, теперь моя проблема решена.
У меня та же проблема, у меня версия Xcode 10.2.1 (10E1001), версия Cocoapods 1.7.0.beta.2.
Я вернулся к Cocoapods 1.6.1, и проблема была решена. Конкретные шаги:
pod deintegrate
отменить интеграцию.Удалите все Cocoapods.
for i in $( gem list --local --no-version | grep cocoapods ); do gem uninstall $i; done
Установите стабильную версию Cocoapods. На данный момент это 1.6.1.
gem install cocoapods
Чистый проект и пустые DerivedData
pod install
- Перекомпилировать проект
I just had the same error message and none of the answers here and in the duplicates of this question were applicable to my project or helpful. I kept on reading through the error messages and came to a realisation that I had stupidly named two seperate swift files in different folders with the same name intending to change one, but before I got to change one, I tried to run my project and have been annoyed for the last hour.
Bottom line, don't accidentally name your files the same name and read your error codes thoroughly!
В моем случае я подключаю реальный iphone, а не симулятор и запускаю приложение на нем, это решило проблему. Но сначала подключите iphone, затем выберите его в этом меню и нажмите кнопку запуска. Проблема тоже решит.
target 'XYZ' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for xyz
pod 'SwiftyJSON'
pod 'Localize-Swift'
pod 'Alamofire'
pod 'Kingfisher'
pod 'Tabman'
pod 'RSSelectionMenu'
pod 'Pushbots'
pod 'ACProgressHUD-Swift', '~> 1.4'
pod 'SKPhotoBrowser'
pod 'ZoomableImageSlider'
pod 'RSSelectionMenu'
pod 'DropDown'
pod 'ImagePicker'
end
Я обновил платформу:ios, '10.0'до 11.0, и ошибка исчезла. Измените вашу платформу или версию ОС и проверьте. Надеюсь, это поможет.
Укажите, например, версию вашего модуля
pod 'RealmSwift', '~> 5.3.5'
или раскомментируйте
# platform :ios, '9.0'
в вашем подфиле
Я столкнулся с этой проблемой в Xcode 14. Добавьте это внизу подфайла.
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
# some older pods don't support some architectures, anything over iOS 11 resolves that
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
end
end
end