1

私の問題はiOS6が導入されたときに現れましたが、今では5.1.1にも影響しているようです。

アプリがクラッシュすると、ログは「コンソール」に出力され、「デバイスログ」は保存されません。これは非常に多くの点でイライラします:

  • コンソールビューが短すぎて、ログの末尾だけが表示されます。
  • コピー/貼り付けが機能しない、ファイルに保存...ゴミが発生する、使用できない、
  • ログを保存したり、象徴したり、何かをしたりする方法はありません。

言及する価値があるかもしれませんが、私たちはアクセサリを使用しており、同時にデバッガを接続する方法がありません。

これを修正する方法のアイデアは私の一日を節約しますが、適切な回避策も良いでしょう。

ありがとうございました

編集:「コンソール」と「デバイスログ」は、オーガナイザーで取得するものです。

4

2 に答える 2

0

iOSの最新バージョンでは、次のことがうまくいきました...

//This method will be invoked before crash occurs
 void onUncaughtException(NSException* exception)
 {
      //Print whatever you want to print before, I have print the info from exception
      MDDDebugLog(@"Reason for crash : %@", [exception reason]);
      MDDDebugLog(@"Name of the crash : %@", [exception name]);
      MDDDebugLog(@"Stack trace of the crash: %@", [exception   callStackSymbols]); 
 }

//Print crash log in file

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    //Assign a method which will be invoked before crash occurs
      NSSetUncaughtExceptionHandler(&onUncaughtException); 
  }
于 2016-06-15T07:21:46.030 に答える
0

私が知っている最も簡単な方法は、少し設定が必要です。セットアップが完了すると、再起動後も完全なログにアクセスできるようになり、後で保存することができます。

ジェイルブレイクされたデバイスが必要です。Cydia 内から、syslogd to /var/log/syslogおよびというパッケージをインストールしますOpenSSH。Cydia スタート ページ (半分下) の OpenSSH チュートリアルに従ってください。-packagesyslogdにはチュートリアルはありませんが、インストール手順は同じです。インストール後syslogd、デバイスを再起動します。

ログは に書き込まれ/var/log/syslogます。開発用 mac のターミナルから使用sshして、デバイスにログインし、ログを表示/追跡します。ログをscp開発マシンに戻すか、Cyber​​Duck などを使用してデバイスから取得することができます。

ログのサイズは大きくなり、何か制限があるかどうかはわかりません。そのため、ファイル サイズに注意してください。フレンドリー

> /var/log/syslog

時々行う必要があります。

PS: MobileTerminalCydia にもパッケージがあります。2 台目のコンピューターから SSH 接続することなく、デバイスから直接ログを表示できます。

于 2013-02-20T09:53:01.863 に答える