1

Xcode に接続しているときにアプリがクラッシュすると、問題をデバッグして修正するために必要なすべての情報を取得できます。しかし、Xcode に接続されていないときにアプリがクラッシュしたときではなく、nil アンラップなのか、アサーションの失敗なのか、例外なのかわかりません。

後者の 2 つのケースでは、アサーションまたは例外メッセージも欠落しています。

Xcode でこの情報をクラッシュ ログに含めるにはどうすればよいですか?

「コピー中にデバッグ シンボルを削除する」と「リンクされた製品を削除する」を NO に設定し、デバッグ ビルドのデバッグ情報形式を dSYM 付きの DWARF に設定しています。はい、携帯電話にデバッグ ビルドをインストールしています。シンボル化されたスタック トレースを取得しますが、上記の情報は取得しません。


ケース 1: nilのアンラップ: 「致命的なエラー: オプション値のアンラップ中に予期せず nil が見つかりました」という行がクラッシュ ログにありません。

ケース 2: アサーションの失敗: 次の場合:

assert(level > 2, "Level should've been at least 2")

「レベルは少なくとも 2 にする必要がありました」がクラッシュ ログに表示されません。場合によっては、アサーションの失敗が原因でクラッシュしたとさえ言わないことがあります (他の理由とは対照的に)。

ケース 3: 例外: 次のような例外メッセージがありません。

キャッチされていない例外 'NSGenericException' が原因でアプリを終了しています。

場合によっては、例外が原因でクラッシュしたとさえ言わないことがあります (他の理由とは対照的に)。

Xcode に接続していないときにクラッシュを取得して、Xcode に接続したときにクラッシュで取得したすべての情報を取得するにはどうすればよいですか?

4

1 に答える 1

0

最良のアプローチは、分析ツールを使用することです。ファブリックをご覧ください

于 2017-05-02T06:44:23.137 に答える