web-dev-qa-db-ja.com

コマンドを実行できません:セグメンテーションフォールト:11 Swiftシグナルによりフロントエンドコマンドが失敗しました(呼び出しを表示するには-vを使用)

Xcode Beta2でコンパイルして正常に動作するiOS Swiftプログラムがあります。beta4をダウンロードすると、新しいSwift言語の構文エラーが発生しました修正しましたが、今このエラーが出ます:

<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と入力できますか?これがなければ、問題を解決する方法は絶対にありません。前もって感謝します。

34

問題が何であるかを知ることができた方法は次のとおりです。

  1. 課題ナビゲーターで課題をクリックします(⌘+ 4、次に先頭に赤色の!が付いた行をクリックします)
  2. 表示されるファイルの下部に、次のような行があるはずです。

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

  1. エラーが発生した場所は、その行の終わりです。 (この場合、getInstancesのfile.Swiftの112行目)。
34
yndolok

IOSプロジェクト(Xcode 7.2およびObjective C言語)にPaypalフレームワークを追加しようとしていました。ビルド時にエラーはスローされませんでしたが、プロジェクトをアーカイブしてIPAを作成しようとすると、そのエラーが発生していました

コマンドを実行できません:セグメンテーション違反:11

スクリーンショット:

enter image description here

長い間苦労した後、Project's Target > Build Settings > Enable Bitcodeのビットコードを無効にしました。これで、プロジェクトをアーカイブできます。次のスクリーンショットを確認してください。

enter image description here

20
Manab Kumar Mal

これについて実際に直接的な解決策を提供することはできません(Appleバグ)と確信していますが、ちょうど同じエラーメッセージに遭遇し、たまたま解決しました。した:

一般的に

  1. 最近変更されたSwiftコード(コミットの確認))をコメントアウトし、アプリが再度コンパイルされるまで
  2. コマンドキーを押しながら、失敗した行の呼び出された各メソッドをクリックして、あいまいさがあるかどうかを確認します

私の例

私の場合(Objective-Cで記述された XMPPFramework を使用していました)、失敗したコードは次のようになりました。

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

roomMessage.nickname()を_"0_test"_に置き換えたら、コードはもう失敗しませんでした。そこで、コマンドnickname()(2回)をクリックしましたが、次のようになりました。

enter image description here

私の推測では、Swift 1.1コンパイラーは、オブジェクトの正確なタイプが明確でない場合にどのメソッドを呼び出すかを判断するのに問題があるため、roomMessage明示的なタイプで、nickname()メソッド呼び出しの後ろにある中括弧を削除することで修正した別のエラーが発生しましたこれにより、アプリが再びビルドされました。動作するコードは次のとおりです。

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

これにより、私よりも迅速に問題を調査できるようになることを願っています。

8
Dschee

私も同じ問題を抱えていました

  1. 派生データをクリーンアップしたとき
  2. 削除された派生データもすべてゴミ箱から削除します。
  3. Xcodeを停止し、再起動してビルドをクリーンにします

今すぐ修正する必要があります。

4
Ebru Güngör

私の場合、変数にクラス名を使用しているため、このエラー

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

そして、これは私の問題を修正します

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

私の問題は、いわゆるモジュールアプローチ(モジュールデザインパターン)で静的変数を模倣しようとしたことです。だから、私はそのようなものを持っていました(Swiftファイル)のレベルで宣言された操作キューへの単純な静的参照のみ:

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

そのため、Xcode 6.x.xでは正常に機能しましたが、Xcode 7betaでのコンパイルは終了しました。皆さんに知ってもらいたいだけです。追伸一般に、logsから何が間違っていたかを見つけることができました(添付のスクリーンショットを参照)。 これで時間を節約できることを願っています。enter image description here

3

プロトコル機能を同じプロトコル拡張と呼んだときにセグメンテーション違反が発生しました。

私はこれと一緒に何かのコードを持っていました:

protocol Rotatable {
    func rotate() -> Self
}

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

後でオブジェクトを作成し、それが回転可能なプロトコルに従うと宣言したとき、セグメンテーションフォールト11が発生し、プログラムがクラッシュしました。

例:これにより、セグメンテーションエラーが発生し、Xcodeがクラッシュします

struct SomeStruct : Rotatable {

}

ただし、SomeStructで関数rotate()を最初に実装し、その後、問題のない場所でRotatableに準拠していると宣言した場合。

2
mammut

愚かな間違いのため、このエラーが発生します!!

私が定義したクラスで

var url: String!?

:)

だから、この説明は多くの理由で複数の一般的なエラーだと思われます!!

1
abanet

今日も同様のことがあり、最近変更したファイルの削除など、ここで説明する手順を試しました。何も機能していないようです。 SourcecodeがXcodeでクラッシュするときに提案されたものを試しました。

派生データディレクトリに移動し、すべてを削除したとき。場所は「設定->場所->派生データ」の下にリストされています。パスのすぐ横に矢印アイコンがあり、そのディレクトリが選択された状態でFinderが開きます。内部のすべてのディレクトリを選択して削除します。 Xcodeを閉じて再度開きます。それは私にとって問題をなくしました。

中間ファイルの一部が破損しており、コンパイラがその処理方法を認識していないと思います。

1
George M

私にとっては、@ LuisCienがこの回答で説明したものと似ていました https://stackoverflow.com/a/42803582/4075379

ジェネリックまたは@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プライマリタイプの拡張機能ですか?幸運なことに、プロジェクトがもう使用していないため、これらの行を削除できました。これで問題が修正されました。

0
Roger Oba

私の場合、それは関数パラメーターの不適切なinoutが原因でした。そのため、同様にそれを探すことをお勧めします。

0
Gurkan Soykan

私にとっては、問題はGenericsExtensions、および@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。そのため、メソッドをクラス自体に移動しましたが、空の拡張機能は削除しませんでした。これはエラーを取り除きましたが、プロジェクトをコンパイルしたときにセグメンテーションエラーが発生しました。

解決策は、UITextFieldDelegateをクラス宣言に移動することでした。

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

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

構築時のSwiftコンパイラセグメンテーションフォールト 」で答えました

私もこのエラーがありました、私はこのように修正しました:

プロジェクトをチェックして、どのファイルが2回使用されているかを調べて1つを削除するか、すべて削除してから再度追加します。

XCodeのエラー

:0:エラー:ファイル名 "AttributedString.Swift"が2回使用されています: '/Users/.../CNJOB/CNJOB/AttributedString.Swift'および '/Users/.../CNJOB/CNJOB/AttributedString.Swift'

:0:注:ファイル名は、同じ名前のプライベート宣言を区別するために使用されます

:0:エラー:ファイル名「APIClient.Swift」が2回使用されています:「/Users/.../CNJOB/CNJOB/APIClient.Swift」および「/Users/.../CNJOB/CNJOB/APIClient.Swift」

:0:注:ファイル名は、同じ名前のプライベート宣言を区別するために使用されます

コマンド/ Applications/Xcode 3.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftcは、終了コード1で失敗しました

0
JNYJ

1つ追加するのを忘れた@endの後@implementation.m複数のclassesを含むファイル。何かのようなもの:

@implementation Adjust

@end

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


@implementation Create

@end
0
rptwsthi

私にとっては、Swiftファイルを別のターゲット(私の場合は今日の拡張子)に追加することによって引き起こされます。

0
superarts.org

私の問題はメソッド署名にありました:

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

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

コンパイラがそのような宣言を処理できない理由はわかりません。

0

回線が原因でこのバグが発生しました

self.textView.inputAccessoryView = self.toolbarItems;

削除するとエラーは消えます。

私の手順:1)

  1. 削除された派生データ
  2. ビルドフォルダーをクリアした
  3. バックアップとしてクラスファイルを別のフォルダーにコピーし、このクラスのすべてにコメントしました。エラーがなくなりました。
  4. ビルドが成功するまで、コメント付きのコードブロックが1つずつブロックされます。

enter image description here

0
Nik Kov