it-swarm.com.de

befehl kann nicht ausgeführt werden: Segmentierungsfehler: 11 Swift-Frontend-Befehl ist wegen Signal fehlgeschlagen (verwenden Sie -v, um den Aufruf zu sehen)

Ich habe ein iOS-Swift-Programm, das auf Xcode Beta2 kompiliert und gut läuft. Als ich Beta4 heruntergeladen habe, habe ich einige Syntaxfehler für die neue Swift-Sprache erhalten, die ich korrigiert habe. Ich bekomme jetzt diesen Fehler:

<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)

Das Problem ist, dass es mir nicht sagt, wo sich dieser Fehler befindet, sodass ich ihn weiter behandeln kann. Wo kann ich -v eingeben, um "den Aufruf zu sehen" und weitere Fehler zu beheben? Ohne dies gibt es keine Möglichkeit, das Problem zu lösen. Danke im Voraus.

30

So konnte ich herausfinden, was das Problem war:

  1. Klicken Sie auf das Problem im Ausgabenavigator (⌘ + 4, dann klicken Sie auf die Zeile mit dem roten! Am Anfang)
  2. Am unteren Rand der angezeigten Datei sollte eine Zeile stehen, in der Folgendes angezeigt wird:

1. While emitting IR SIL function @_TToZFC4Down8Resource12getInstancesfMS0_U__FTSS6paramsGVSs10DictionarySSPSs9AnyObject__9onSuccessGSqFGSaQ__T__7onErrorGSqFT5errorCSo7NSError8responseGSqCSo17NSHTTPURLResponse__T___T_ for 'getInstances' at /path/to/file.Swift:112:5

  1. Der Ort, an dem der Fehler aufgetreten ist, befindet sich am Ende dieser Zeile. (In diesem Fall in Zeile 112 von file.Swift in getInstances).
29
yndolok

Ich habe versucht, das Paypal-Framework zu meinem iOS-Projekt (Xcode 7.2 und Objective C) hinzuzufügen. Beim Bauen gab es keinen Fehler, aber als ich versuchte, das Projekt zu archivieren und den IPA zu erstellen, erhielt ich diesen Fehler

befehl kann nicht ausgeführt werden: Segmentierungsfehler: 11

Bildschirmfoto:

 enter image description here

Nach langem Mühen habe ich den Bitcode in Project's Target > Build Settings > Enable Bitcode deaktiviert. Jetzt kann das Projekt archiviert werden. Bitte überprüfen Sie den folgenden Screenshot.

 enter image description here

19
Manab Kumar Mal

Ich kann nicht wirklich eine direkte Lösung für dieses Problem geben (obwohl ich sicher bin, dass es sich um einen Apple-Fehler handelt), aber ich bin gerade auf dieselbe Fehlermeldung gestoßen und habe sie zufällig gelöst. Folgendes habe ich getan:

Im Algemeinen

  1. Kommentieren Sie kürzlich geänderten Swift-Code (check Commits), bis die App erneut kompiliert wird
  2. Klicken Sie mit der rechten Maustaste auf jede aufgerufene Methode in der fehlerhaften Zeile und prüfen Sie, ob Mehrdeutigkeiten vorliegen könnten

Mein Beispiel

In meinem Fall (ich habe das XMPPFramework in Objective-C geschrieben) sah der fehlerhafte Code folgendermaßen aus:

for roomMessage: XMPPRoomMessage in self.messages {
    let slices = split(roomMessage.nickname(), { $0 == "_" }, allowEmptySlices: false)
}

Nachdem ich roomMessage.nickname() durch "0_test" ersetzt habe, ist der Code nicht mehr fehlgeschlagen. Also habe ich mit dem Befehl auf die Methode nickname() geklickt (zweimal) und Folgendes habe ich gesehen:

enter image description here

Ich vermute, dass der Swift 1.1-Compiler Probleme hat, herauszufinden, welche Methode aufgerufen werden soll, wenn der genaue Typ eines Objekts nicht klar ist. Also machte ich den -Typ von roomMessage explizit und bekam einen weiteren Fehler, den ich durch Entfernen der Klammern hinter dem Aufruf der nickname()-Methode behoben habe. Dadurch wurde meine App erneut aufgebaut. Hier ist der Arbeitscode:

for roomMessage: XMPPRoomMessageCoreDataStorageObject in self.messages {
    let slices = split(roomMessage.nickname, { $0 == "_" }, allowEmptySlices: false)
}

Ich hoffe, das hilft jemandem, das Problem schneller zu untersuchen als ich.

8
Dschee

Ich hatte auch das gleiche Problem,

  1. als ich die abgeleiteten Daten bereinigte
  2. Entfernen Sie auch alle entfernten abgeleiteten Daten aus dem Papierkorb.
  3. Stoppen Sie Xcode, starten Sie ihn neu und bereinigen Sie den Build

Es sollte jetzt behoben werden.

4
Ebru Güngör

In meinem Fall dieser Fehler, weil ich Klassenname für Variable verwende

var MYClass : MYClass {
    get {
        return.....
    }
}

Und das behebt mein Problem

var myClass : MYClass {
    get {
        return.....
    }
}
4
aminhotob

Mein Problem war, dass ich versucht hatte, statische Variablen mit dem sogenannten Modul-Ansatz (dem Modul-Entwurfsmuster) nachzuahmen. Ich hatte also so etwas (nur einen einfachen statischen Verweis auf eine Operations-Warteschlange, die auf der Ebene einer Swift-Datei deklariert wurde):

let globalQueue: NSOperationQueue = {
    let queue = NSOperationQueue()
    queue.suspended = false
    queue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount
    return queue
}()

Das hat in Xcode 6.x.x gut funktioniert, aber in Xcode 7beta nicht mehr kompiliert. Ich möchte nur, dass Ihr es merkt .. Im Allgemeinen konnte ich , was falsch war, aus den logs herausfinden (siehe Screenshot). Ich hoffe, das erspart Ihnen etwas Zeit. enter image description here

3

Ich habe einen Segmentierungsfehler erhalten, als ich eine Protokollfunktion mit derselben Protokollerweiterung aufgerufen habe.

Ich hatte einen Code in der Zeile damit:

protocol Rotatable {
    func rotate() -> Self
}

extension Rotatable {
    func rotate(steps: Int) {
        for _ 0..<steps { self.rotate() }
    }
}

Als ich später ein Objekt anfertigte und erklärte, dass es dem Rotatable-Protokoll folgen würde, bekam ich den Segmentierungsfehler 11 und das Programm stürzte ab.

Bsp: Dies würde einen Segmentierungsfehler verursachen und Xcode abstürzen

struct SomeStruct : Rotatable {

}

Wenn ich jedoch zuerst die Funktion rotate () in SomeStruct implementiert habe und dann erklärt habe, dass sie sich dort als drehbar ergebe, war das kein Problem.

2
mammut

Ich bekomme diesen Fehler wegen eines dummen Fehlers !!

in einer Klasse, die ich definiert habe

var url: String!?

:)

Es scheint also, dass diese Beschreibung aus mehreren Gründen ein mehrfacher und allgemeiner Fehler ist !!

1
abanet

Ich hatte heute ein ähnliches Verfahren und versuchte die hier beschriebenen Schritte, einschließlich der Entfernung von Dateien, die ich kürzlich geändert hatte. Nichts schien zu funktionieren. Ich habe etwas ausprobiert, das vorgeschlagen wurde, als SourceKit in Xcode abstürzte. 

Ich wenn in das abgeleitete Datenverzeichnis und alles gelöscht. Der Speicherort wird unter "Einstellungen -> Speicherorte -> Abgeleitete Daten" aufgeführt. Direkt neben dem Pfad befindet sich ein Pfeilsymbol, das den Finder mit dem ausgewählten Verzeichnis öffnet. Wählen Sie alle darin enthaltenen Verzeichnisse aus und löschen Sie sie. Schließen Sie Xcode und öffnen Sie es erneut. Das hat das Problem für mich verschwunden.

Ich denke, dass einige Zwischendateien beschädigt werden und der Compiler nicht weiß, wie er damit umgehen soll.

1
George M

Für mich war es etwas Ähnliches wie das, was @ LuisCien in dieser Antwort beschrieben hat https://stackoverflow.com/a/42803582/4075379

Ich hatte keine Generika oder @objc Tags, aber es waren diese Codezeilen, die den Segmentierungsfehler verursachten:

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)
    }
}

d.h. eine Erweiterung eines primären Objective-C-Typs? Zum Glück konnte ich diese Zeilen löschen, da das Projekt nicht mehr verwendet wurde. Das hat das Problem behoben.

0
Roger Oba

In meinem Fall lag es an einem unangemessenen inout in den Funktionsparametern. Deshalb schlage ich Ihnen vor, auch danach zu suchen.

0
Gurkan Soykan

Für mich war das Problem das Mischen von Generics, Extensions und @objc.

Es stellt sich heraus, dass Xcode @objc nicht in Erweiterungen von generischen Klassen steht:

class FaultyClass<T: TypeValidator>: UIControl where T.ItemType == String {
}

extension FaultyClass: UITextFieldDelegate {
    func textFieldDidEndEditing(_ textField: UITextField) {
    }
}

Der obige Code gibt den Fehler @objc is not supported within extensions of generic classes aus. Also habe ich die Methode in die Klasse selbst verschoben, aber die leere Erweiterung nicht gelöscht. Damit wurde der Fehler behoben, aber als ich das Projekt kompilierte, bekam ich den Segmentierungsfehler .

Die Lösung bestand darin, UITextFieldDelegate in die Klassendeklaration zu verschieben.

class GoodClass: <T: TypeValidator>: UIControl, UITextFieldDelegate where T.ItemType == String {

// MARK: - TextFieldDelegate
    func textFieldDidEndEditing(_ textField: UITextField) {
    }
}
0
LuisCien

Ich habe in " Swift-Compiler-Segmentierungsfehler beim Erstellen von " geantwortet 

Ich hatte auch diesen Fehler, und ich habe folgendes behoben:

Überprüfen Sie Ihr Projekt und finden Sie heraus, welche Dateien zweimal verwendet werden, und entfernen Sie eine oder löschen Sie alle und fügen Sie sie erneut hinzu.

Fehler in meinem xCode

: 0: Fehler: Dateiname "AttributedString.Swift" wurde zweimal verwendet: '/Users/.../CNJOB/CNJOB/AttributedString.Swift' und '/Users/.../CNJOB/CNJOB/AttributedString.Swift'

: 0: note: Dateinamen werden verwendet, um private Deklarationen mit demselben Namen zu unterscheiden

: 0: Fehler: Dateiname "APIClient.Swift" zweimal verwendet: '/Users/.../CNJOB/CNJOB/APIClient.Swift' und '/Users/.../CNJOB/CNJOB/APIClient.Swift'

: 0: note: Dateinamen werden verwendet, um private Deklarationen mit demselben Namen zu unterscheiden

Befehl/Applications/Xcode 3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc ist mit Exitcode 1 fehlgeschlagen

0
JNYJ

Ich habe vergessen, einen @end hinter @implementation in einer .m-Datei hinzuzufügen, in der mehrere classes enthalten waren. So etwas wie:

@implementation Adjust

@end

@implementation Data //@end For this class was missing 


@implementation Create

@end
0
rptwsthi

Für mich liegt das daran, dass die Swift-Dateien verschiedenen Zielen hinzugefügt werden (in meinem Fall die Erweiterung heute). 

0
superarts.org

Mein Problem war in Methodensignaturen:

func setCategory(categoryId: Int?, subcategoryId: Int?) -> FilterSettings {

func changeCategory(categoryId: Int?, subcategoryId: Int?, handler: @escaping (Int) -> ()) {

Ich kann nicht verstehen, warum der Compiler solche Deklarationen nicht verarbeiten kann.

0

Ich habe diesen Fehler wegen der Leitung bekommen

self.textView.inputAccessoryView = self.toolbarItems;

Wenn Sie es löschen, ist der Fehler verschwunden.

Meine Schritte: 1) 

  1. Gelöschte Daten wurden gelöscht 
  2. Bauordner gelöscht Hat nicht geholfen 
  3. Klassendateien als Sicherungskopie in einen anderen Ordner kopiert und alles in dieser Klasse kommentiert. Fehler gegangen 
  4. Kommentierte Code-Blöcke nacheinander, bisbuild war erfolgreich.

 enter image description here

0
Nik Kov