Подтвердить что ты не робот

Не удалось выполнить команду: Ошибка сегментации: 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, чтобы "увидеть вызов" и устранить проблему дальше? Без этого нет абсолютно никакого способа выяснить проблему. Спасибо заранее.

4b9b3361

Ответ 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

  1. Место, где произошла ваша ошибка, находится в конце этой строки. (В этом случае в строке 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

У меня тоже была такая же проблема,

  1. когда я почистил полученные данные
  2. Удалите все удаленные производные данные из корзины.
  3. Остановите 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

затем

Строить