Не удалось выполнить команду: Ошибка сегментации: 11 команда swift frontend завершилась неудачно из-за сигнала (используйте -v для вызова вызова)
У меня есть быстродействующая программа iOS, которая компилируется и работает отлично на Xcode Beta2. Когда я загрузил beta4, я получил несколько синтаксических ошибок для нового быстрого языка, который я исправил. Теперь я получаю эту ошибку:
<unknown>:0: error: unable to execute command: Segmentation fault: 11
<unknown>:0: error: swift frontend command failed due to signal (use -v to see invocation)
Проблема в том, что она не говорит мне, где эта ошибка, чтобы я мог ее устранить. Где я могу напечатать -v, чтобы "увидеть вызов" и устранить проблему дальше? Без этого нет абсолютно никакого способа выяснить проблему. Спасибо заранее.
Ответы
Ответ 1
Вот как мне удалось выяснить, в чем проблема:
- Нажмите на проблему в навигаторе проблем (⌘ + 4, затем нажмите на строку с красным! в начале)
- В нижней части появившегося файла должна быть строка с надписью:
1. While emitting IR SIL function @_TToZFC4Down8Resource12getInstancesfMS0_U__FTSS6paramsGVSs10DictionarySSPSs9AnyObject__9onSuccessGSqFGSaQ__T__7onErrorGSqFT5errorCSo7NSError8responseGSqCSo17NSHTTPURLResponse__T___T_ for 'getInstances' at /path/to/file.swift:112:5
- Место, где произошла ваша ошибка, находится в конце этой строки. (В этом случае в строке 112 файла .swift в
getInstances
).
Ответ 2
Я пытался добавить инфраструктуру PayPal в свой проект iOS (Xcode 7.2 и Objective C). При построении он не выдавал никаких ошибок, но когда я попытался архивировать проект и сделать IPA, я получал эту ошибку
не удалось выполнить команду: Ошибка сегментации: 11
Скриншот:
![введите описание изображения здесь]()
После долгой работы я отключил биткод в Project Target > Build Settings > Enable Bitcode
. Теперь проект может быть архивирован. Проверьте следующий снимок экрана.
![введите описание изображения здесь]()
Ответ 3
Невозможно дать прямое решение по этому вопросу (хотя я уверен, что это ошибка Apple), но я просто натолкнулся на то же сообщение об ошибке и решил его решить. Вот что я сделал:
В целом
- Комментарий недавно изменен код Swift (проверка коммитов) до тех пор, пока приложение не будет компилироваться снова
- Командный щелчок каждого вызываемого метода в строке сбоя и проверка, может ли быть неопределенность
Мой пример
В моем случае (я использовал XMPPFramework, записанный в Objective-C), код ошибки выглядел следующим образом:
for roomMessage: XMPPRoomMessage in self.messages {
let slices = split(roomMessage.nickname(), { $0 == "_" }, allowEmptySlices: false)
}
Как только я заменил roomMessage.nickname()
на "0_test"
, код больше не терпел неудачу. Поэтому я нажал кнопку nickname()
(дважды), и вот что я увидел:
![enter image description here]()
Мое предположение заключалось в том, что компилятор Swift 1.1 имеет проблемы с выяснением, какой метод вызывать, если точный тип объекта не ясен. Поэтому я сделал тип roomMessage
явного и получил еще одну ошибку, которую я исправил, удалив фигурные скобки за вызовом метода nickname()
. Это снова запустило мое приложение. Здесь рабочий код:
for roomMessage: XMPPRoomMessageCoreDataStorageObject in self.messages {
let slices = split(roomMessage.nickname, { $0 == "_" }, allowEmptySlices: false)
}
Я надеюсь, что это поможет кому-то, чтобы исследовать проблему быстрее, чем я.
Ответ 4
В моем случае эта ошибка, потому что я использую имя класса для переменной
var MYClass : MYClass {
get {
return.....
}
}
И это исправляет мою проблему
var MYClass : MYClass {
get {
return.....
}
}
Ответ 5
У меня тоже была такая же проблема,
- когда я почистил полученные данные
- Удалите все удаленные производные данные из корзины.
- Остановите
Xcode
, перезапустите его и очистите сборку
Это должно быть исправлено сейчас.
Ответ 6
Моя проблема заключалась в том, что я пытался имитировать статические переменные с так называемым модульным подходом (шаблон проектирования модуля). Итак, у меня было что-то вроде этого (просто статическая ссылка на операционную очередь, объявленную на уровне быстрого файла):
let globalQueue: NSOperationQueue = {
let queue = NSOperationQueue()
queue.suspended = false
queue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount
return queue
}()
Итак, это отлично работало в Xcode 6.x.x, но перестало компилироваться в Xcode 7beta. Просто хочу, чтобы вы, ребята, знали об этом.
Постскриптум В общем, мне удалось обнаружить , что было не так. из журналов (см. Скриншот прилагается). Надеюсь, это сэкономит вам время.
![введите описание изображения здесь]()
Ответ 7
У меня возникла ошибка сегментации, когда я назвал функцию протокола тем же самым расширением протоколов.
У меня был код что-то в строке с этим:
protocol Rotatable {
func rotate() -> Self
}
extension Rotatable {
func rotate(steps: Int) {
for _ 0..<steps { self.rotate() }
}
}
Когда я позже сделал объект и объявил, что он будет следовать по протоколу Rotatable, я получил ошибку сегментации 11 и программа потерпела крах.
Ex: это приведет к сбою сегментации и сбою Xcode
struct SomeStruct : Rotatable {
}
Если раньше я реализовал функцию rotate() в SomeStruct, а затем объявил, что он соответствует Rotatable там, где нет проблемы.
Ответ 8
Сегодня у меня было подобное, и я попытался выполнить описанные здесь шаги, включая удаление файлов, которые я недавно изменил. Ничто, казалось, не сработало. Я попробовал что-то, что было предложено, когда SourceKit потерпит крах в Xcode.
I, когда в производный каталог данных и удалил все. Местоположение указано в разделе "Предпочтения → Местоположение → Производные данные". Рядом с путём открывается значок стрелки, который открывает искатель с выбранным каталогом. Выберите все каталоги внутри и удалите их. Закройте Xcode и откройте его. Это заставило проблему исчезнуть для меня.
Я думаю, что некоторый промежуточный файл поврежден, и компилятор не знает, как его обрабатывать.
Ответ 9
Я получаю эту ошибку, потому что глупая ошибка!
в классе I, определенном
var url: String!?
:)
Итак, похоже, что это описание является множественной и общей ошибкой по многим причинам!
Ответ 10
Я ответил в разделе Ошибка сегментации компилятора при создании.
У меня тоже была эта ошибка, и я зафиксировал это следующим образом:
проверьте свой проект и выясните, какие файлы дважды используются, удалите его или удалите все и повторно добавьте.
Ошибки в моем xCode
: 0: ошибка: имя файла "AttributedString.swift" используется дважды: '/Users/.../CNJOB/CNJOB/AttributedString.swift' и '/Users/.../CNJOB/CNJOB/AttributedString.swift'
: 0: note: имена файлов используются для различения частных объявлений с тем же именем
: 0: ошибка: имя файла "APIClient.swift" используется дважды: '/Users/.../CNJOB/CNJOB/APIClient.swift' и '/Users/.../CNJOB/CNJOB/APIClient.swift'
: 0: note: имена файлов используются для различения частных объявлений с тем же именем
Команда/Приложения/Xcode 3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc не удалось с кодом выхода 1
Ответ 11
Для меня это связано с добавлением быстрых файлов к различным целям (сегодня это расширение в моем случае).
Ответ 12
Я забыл добавить один @end
после @implementation
в файл .m
, в котором было несколько classes
. Что-то вроде:
@implementation Adjust
@end
@implementation Data //@end For this class was missing
@implementation Create
@end
Ответ 13
Я получил эту ошибку из-за строки
self.textView.inputAccessoryView = self.toolbarItems;
Если вы удалите его, ошибка исчезнет.
Мои шаги:
1)
- Удаленные производные данные
- Отправленная папка сборки Не помогла
- Скопировал файлы классов в другую папку в качестве резервной копии и прокомментировал все в этом классе. Ошибка исчезла.
- Комментированный код блокируется один за другим, пока
сборка была успешной.
![введите описание изображения здесь]()
Ответ 14
Для меня проблема заключалась в смешивании Generics
, Extensions
и @objc
.
Оказывается, Xcode не любит иметь @objc
внутри расширений родовых классов:
class FaultyClass<T: TypeValidator>: UIControl where T.ItemType == String {
}
extension FaultyClass: UITextFieldDelegate {
func textFieldDidEndEditing(_ textField: UITextField) {
}
}
Приведенный выше код дает ошибку @objc is not supported within extensions of generic classes
. Поэтому я переместил метод к самому классу, но не удалял пустое расширение. Это избавилось от ошибки, но когда я скомпилировал проект, я получил segmentation fault.
Решением было перемещение UITextFieldDelegate
в объявление класса.
class GoodClass: <T: TypeValidator>: UIControl, UITextFieldDelegate where T.ItemType == String {
// MARK: - TextFieldDelegate
func textFieldDidEndEditing(_ textField: UITextField) {
}
}
Ответ 15
Моя проблема была в методах подписей:
func setCategory(categoryId: Int?, subcategoryId: Int?) -> FilterSettings {
func changeCategory(categoryId: Int?, subcategoryId: Int?, handler: @escaping (Int) -> ()) {
Я не понимаю, почему компилятор не может обрабатывать такие объявления.
Ответ 16
В моем случае это было из-за неулокального inout
в параметры функции. Поэтому я предлагаю вам посмотреть и на это.
Ответ 17
Для меня это было что-то похожее на то, что @LuisCien описал в этом ответе fooobar.com/questions/182376/...
У меня не было обобщений или тегов @objc
, но именно эти строки кода вызывали ошибку сегментации:
public extension CGFloat {
/// Whether this number is between 'other - tolerance' and 'other + tolerance'
func isEqual(to other: CGFloat, tolerance: CGFloat) -> Bool {
return (other - tolerance...other + tolerance).contains(self)
}
}
то есть расширение на первичном типе Objective-C? К счастью, я смог удалить эти строки, потому что проект больше не использовался. Это решило проблему.
Ответ 18
У меня возникла аналогичная проблема при переходе с бета2 на бета4. Я надеюсь, что эти инструкции помогут.
Clean
затем
Строить