it-roy-ru.com

Команда не выполнена из-за сигнала: прерывание прерывания: 6

Начиная с Xcode 7 и Swift 2.0, я получаю ошибку выше, как на скриншоте, показанном здесь:

enter image description here

Я понятия не имею, откуда это происходит, чистка и удаление производных данных не сработало.

Кто-нибудь еще испытывает эту проблему?

проект:

enter image description here

цель:

enter image description here

32
swalkner

У меня та же проблема со всеми проектами Xcode 6.3, я открываю в Xcode 7.0. Я создал новый проект, скопировал все мои исходные файлы и ресурсы, и все работало без этой ошибки компилятора. Я думал, что это как-то связано с настройками проекта . Я выключил Оптимизацию компиляции Swift на «none» и Trap 6 пропал. Возможно, есть и другие настройки, которые также создают проблемы, но для меня это было.

5
j.s.com

Перейти к проекту Build settings -> Swift Compiler - code generation -> Optimization Level-> Для отладки и выпуска выберите параметр «Быстрая оптимизация одного файла [-O]

 enter image description here

4
S_iOS

В моем случае

Ошибка

override func observeValueForKeyPath(keyPath: (String!)?, ofObject object: (AnyObject!)?, change: ([NSObject : AnyObject]!)?, context: UnsafeMutablePointer<Void>)

Ok

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [NSObject : AnyObject]?, context: UnsafeMutablePointer<Void>)
2
hunjuly

Это сработало для меня, так что просто попробуйте. я получил эту ошибку при преобразовании кода из Swift 3 в Swift 4. 

Просто зайдите в Project> Target> Build Setting и найдите «Swift Compiler - Generation» и установите уровень оптимизации «No Optimaization [-Onone]».

1
Rupak Shakya

В моем случае,

Компилятор выдаст мне сообщение:

Incorrect number of arguments passed to called function!
%4 = call %Swift.type* @_T015SimplifiedCoder6StructVMa() #1, !dbg !3112
<unknown>:0: error: fatal error encountered during compilation; please
file a bug report with your project and the crash log
<unknown>:0: note: Broken function found, compilation aborted!

но я понял, что пропустил стандартный параметр по умолчанию:

class Class<K> {
    init<T: Protocol>(_ value: T) where T.Key == K {}
}

protocol Protocol {
    associatedtype Key
    static func getClass<NewKey>(_: NewKey.Type) -> Class<NewKey>
}

struct Struct<K>: Protocol {

    typealias Key = K

    static func getClass<NewKey>(_: NewKey.Type) -> Class<NewKey> {
        let _self = Struct<NewKey>()
        return Class(_self)
    }
}

protocol CanGetClass {
    associatedtype StructType: Protocol
}

extension CanGetClass {
    func getClass<Key>(_: Key.Type) -> Class<Key> {
        return StructType.getClass(Key.self)
    }
}

struct R: CanGetClass {
    typealias StructType = Struct
}

изменена: 

typealias StructType = Struct

чтобы: 

typealias StructType = Struct<Int>

расширение CanGetClass пыталось вызвать getClass по неполному типу.

1
BMH500

Убедитесь, что вы не внедрили частный протокол в расширение класса. Большую часть времени было бы довольно странно иметь закрытый протокол, но не обязательно, в зависимости от того, что вы хотите инкапсулировать.

Что-то вроде того же файла:

class C: ... {
}

extension C: P {
}

private protocol P: class {
}

Сделайте это, и вы обязательно получите Command failed due to signal: Abort trap: 6

Вместо этого удалите модификатор private из протокола, и ошибка будет исправлена.

1
Bogdan

Я также получил эту ошибку в XCode 7 Beta 5. После того, как я очистил сборку, я получил еще одну ошибку, сообщающую, что один из моих классов не соответствует протоколу, который я только что изменил. После того, как я исправлю проблему, он строит. Изменения протокола, которые я сделал, должны изменить два типа параметра метода с Int на Int32 

1
Zhao

Я получил это, когда сделал это:

protocol ProtocolA {
    associatedtype BType: ProtocolB
}

protocol ProtocolB {
    associatedtype AType: ProtocolA
}
1
Vova Kalinichenko

Я решил эту проблему с помощью этих шагов:

  1. побежал "стручок"

  2. Создайте подфайл так: платформа: ios, '8.0' use_frameworks!

  3. побежал "pod install"

1
QL M

Это то, что вызвало ошибку для меня.

До:

    for (key,value) in hash{
        count += value.count
    }

После:

    for (_,value) in hash{
        count += value.count
    }

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

0
boidkan

В Xcode 9.3 я переустановил конкретный модуль, в котором появлялись предупреждения, и снова очищал производные данные n. У меня это сработало :)

0
Deepa Suryawanshi

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

до (с ошибкой):

@objc protocol SomeDelegate:NSObjectProtocol{

    optional func someDelegateMethod()
}

class MySwiftClass{
    func notifyMyDelegate(){
        mydelegate?.someDelegateMethod?() //this line caused the error
    }
}

после:

@objc protocol SomeDelegate:NSObjectProtocol{

    func someDelegateMethod()
}

class MySwiftClass{
    func notifyMyDelegate(){
        mydelegate?.someDelegateMethod()
    }
}
0
Oleg Sherman

В моем случае private struct Constants был объявлен как в class A, так и в extension A.

Вероятно, это должно дать ошибку, но это не так.

0
Tung Fam

Я получил эту ошибку при попытке запустить тесты . Чтобы решить эту проблему, я поместил этот скрипт в терминал:

rm -rf ~/Library/Developer/Xcode/DerivedData

Удаление производных данных решило проблему

0
FullMetalFist

Я могу просто и последовательно воспроизвести это с помощью совершенно нового проекта, созданного в бета-версии Xcode 7.0 (7A120f). Обратите внимание, что проблема, вероятно, более широкая, чем в примере, но это на 100% воспроизводимо для меня, если добавить только одну строку в новый проект. Эта проблема также, по-видимому, относится исключительно к iOS, а не к OS X, по крайней мере, для этого примера. Отправили сообщение об ошибке # 21376523 в Apple.

  1. Создайте новый проект в Xcode 7.0 (7A120f). Тип "Game", язык "Swift", Game Technology "SceneKit".

  2. Сборка и запуск с настройками по умолчанию. Проект строится и отлично работает в симуляторе (вы увидите модель вращающегося трехмерного космического корабля по умолчанию).

  3. Добавьте одно свойство SCNVector3 в GameViewController.Swift, например:

    class GameViewController: UIViewController {  
      var p = SCNVector3Zero  
    

-> Производит "Abort trap: 6". Проект больше не будет компилироваться.

  1. Измените константу на пустой инициализатор.

    class GameViewController: UIViewController {  
      var p = SCNVector3()  
    

-> Та же проблема, «Отменить ловушку: 6»

  1. Удалите свойство, восстанавливая до чистого состояния проекта.

-> «Abort trap: 6» больше нет, проект снова компилируется и запускается.

  1. Измените «var» на «let».

    class GameViewController: UIViewController {  
      let p = SCNVector3Zero
    

-> Компилируется и запускается.

  1. Измените тип свойства на SCNVector4 вместо SCNVector3.

    class GameViewController: UIViewController {  
      var p = SCNVector4Zero
    

-> Компилируется и запускается.

Правка: Эта проблема исправлена ​​в Xcode 7.0 бета-2 (7A121l), если вы получаете «Abort trap: 6» из-за использования типа вектора с плавающей точкой 3 (например, SCNVector3). Из примечаний к выпуску:

• Сбой компилятора при вызове функций C или Objective-C, которые принимают Параметры SIMD float3 были исправлены. (21294916)

0
Ben Stahl

Я не пробовал другие решения. У меня есть эта проблема для этой установки: 

func speacialAdd(_ num1: Int, to num2: Int){
    func specialMultiply(_ digit1: Int, with digit2: Int = num2){ // SOURCE OF PROBLEM
        print(digit2)
        print(digit1)
    }

    specialMultiply(5)
}

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        print(speacialAdd(5, to: 6))
    }
}

Эта линия является источником проблемы. По умолчанию это аргумент не работает для вложенной функции

func specialMultiply(_ digit1: Int, with digit2: Int = num2) // ERROR

Решения:

func specialMultiply(_ digit1: Int, with digit2: Int) // OK
func specialMultiply(_ digit1: Int, with digit2: Int = 6) // OK

Я действительно впервые написал это на детской площадке и получил другую ошибку:

Не удалось выполнить игровую площадку:

ошибка: не удалось найти символы:
__T013__lldb_expr_111speacialAddySi_Si2totF4num2L_Sifau

0
Honey

Для меня причиной этой ошибки было: 

Я создал файл для создания расширений в UIView. Внутри этого файла я создал закрытый протокол с именем Foo.

Тогда я сделал: 

extension UIView: Foo

Удаление частного из протокола заставило ошибку исчезнуть. 

Я думаю, что это, вероятно, ошибка. Компилятор должен предупредить нас о проблеме. Точно так же, как он предупреждает нас, что мы не можем добавлять частные соответствия к типам, он должен сказать нам, что для соответствия следует использовать «открытый/внутренний» протокол.

0
Nuno Gonçalves

Я получил это сообщение при использовании do-try-catch в инициализаторе Failable:

public init?() {
    do {
        ...
        super.init(superParam: try getParamForSuper())
        ...
    } catch {
        ...
    }
}

Компиляция прошла успешно при перемещении вызова try в собственную локальную переменную:

public init?() {
    do {
        ...
        let superParam = try getParamForSuper()
        super.init(superParam: superParam)
        ...
    } catch {
        ...
    }
}
0
Joakim

В моем случае именно с установкой значения параметра в функции равным nil и возникла ошибка.

До:

public func comparableValidator<T: Comparable>(minValue : T? = nil, maxValue : T? = nil, value: T) -> Void {
    if let min = minValue {
        _assertFunc(min <= value, "\(value) must be at least \(min)")
    }

    if let max = maxValue {
        _assertFunc(max >= value, "\(value) must be at most \(max)")
    }
}

После:

public func comparableValidator<T: Comparable>(minValue : T?, maxValue : T?, value: T) -> Void {
    if let min = minValue {
        _assertFunc(min <= value, "\(value) must be at least \(min)")
    }

    if let max = maxValue {
        _assertFunc(max >= value, "\(value) must be at most \(max)")
    }
}
0
user3400012

для меня .. Я изменил содержимое функции @objc следующим образом:

до:

        @objc func didConnectWithSession() {
           context!.stream.disconnectAfterSending()
        }

после:

        @objc func didConnectWithSession() {
           //context!.stream.disconnectAfterSending()
        }

Это вызвало ошибку. Я решил, удалив всю функцию.

0
deLux_247

В моем случае, переименование нескольких параметров методов init, который является протоколом, не позволяет выполнить компиляцию. Я решаю это, делая это один за другим, компилирую снова после каждого изменения.

0
Bill Chan

У меня возникла та же проблема, и я обнаружил, что проблема в том, что я изменил систему сборки на «Новая система сборки» после прочтения статьи о том, «как ускорить сборку» (это статья между прочим здесь )

Итак, чтобы вернуться к стандартной системе сборки:

  1. Чтобы включить новую систему сборки, перейдите в Файл → Настройки проекта (или Настройки рабочего пространства).
  2. Измените систему сборки на Стандартная система сборки.

 enter image description here

Надеюсь, что это кому-то поможет и не тратьте часы, пытаясь выяснить, почему это не работает!

0
Andres

Мне удалось построить свой проект, установив уровень оптимизации «Нет» в меню «Быстрый компилятор - генерация кода» в настройках цели (не проекта). Смотрите скриншот ниже ...

enter image description here

Это не должно быть постоянным решением, потому что оно более чем удваивает размер IPA. Должна быть возможность снова включить оптимизацию, когда Xcode 7 выйдет из бета-версии.

0
PJeremyMalouf

Я исправил это, перейдя в Xcode -> Preferences -> Locations -> Установите параметр Relative в Derived Data.

 Setting Derived Data

0
jawad

Хорошо, в моем случае это было потому, что у меня было перечисление, вложенное в общий класс. Странно то, что когда я изолировал проблему (в BaseDao2), компилятор сообщил мне правильную ошибку, но в моей реальной реализации BaseDao (в которой есть больше вещей) он выдает «ловушку 6». 

Type 'DaoError2' nested in generic type 'BaseDao2' is not allowed

Когда у меня было это: 

class BaseDao2<T>: InjectRestSession{

    enum DaoError2: ErrorType{
        case FAILED_RESPONSE(String)
        case INVALID_RESULT(String)
        case FAIL_TO_LIST, FAIL_TO_GET
    }

    func get() -> T?{
        return nil
    }
}

Во всяком случае, в моем случае я перемещаю DaoError из BaseDao, и все скомпилировано. В любом случае, я чувствую, что «ловушка 6» - это то, что что-то не может скомпилировать, и компилятор запутался. Начиная с простого случая и добавляя обратно то, что, по вашему мнению, может вызывать проблему, может помочь определить проблему, получив правильную ошибку компиляции. Другими словами, вы должны быть осторожны с компилятором Swift. 

0
Jeremy Chone