2017-02-20 4 views
4

iOSアプリケーションをXcode 8.2.1のSwift 2で作成しました。これはiOS 10.2用に作られたものです。fatalErrorメッセージをiOSクラッシュログに保存するにはどうすればよいですか?

私はTestFlightから数多くのクラッシュレポートを取得していますが、シンボルにもかかわらず、スタックトレース(引数値なし、ローカル、ヒープオブジェクトなしなど)以外のプログラム状態は表示されません。

...これらの機能の中では、失敗する可能性が高いコード(強制的なアンラップなど)が表示されますが、クラッシュログではどこに障害が発生したのかがわかりません。 Xcodeでデバッグする場合

、私はTestFlightまたはApp StoreのfatalErrorがヒットされ、プログラムが終了を使用して展開する場合を除き、"functionFoo returned nil"または"variable bar == \"" + bar + "\""のように自分のメッセージを入れることができますどこでfatalError(message: String)を使用することができますが、message値ではありませんクラッシュログに保存され、無意味になります。

C#/ .NETやJavaのような他の環境では、私は単純にthrow new SomeExceptionType("my message")とすることができ、すべての情報はグローバルなcatch(Exception)ハンドラで利用できます。

iOS/Swiftで同じ目標を達成するにはどうすればよいですか?残念ながら、この解決策はキャッチサードパーティの致命的なエラーをカバーしていない

public func internalCriticalError(_ message: String = "") -> Never { 
    // Save the message in a crash log here 
    // ... 

    fatalError(message) 
} 

:あなたは、次のようなカスタムメソッドの呼び出しにすべてfatalErrorの呼び出しを変更することができ、内部エラーメッセージを格納する

+0

あなたは方法を見つけましたか? –

答えて

0

関連する問題