2013-02-20 88 views
1

我的问题出现在iOS 6引入时,但现在似乎也影响5.1.1。iOS崩溃日志打印到控制台

当应用程序崩溃时,日志将打印到“控制台”并且不会保存“设备日志”。这是令人沮丧的在很多方面:

  • 控制台视图是太短了,所有我能看到的是日志的尾巴,
  • 复制/粘贴不工作,保存到文件...产生的垃圾,它是无法使用的,
  • 有没有办法保存日志,符号化,或做任何事情。

可能值得一提的是,我们使用附件并没有办法在同一时间连接调试器。

一个想法如何解决这将节省我的一天,但任何体面的解决方法也将是好的。

谢谢

编辑:“控制台”和“设备日志”都是我的组织者获得。

+1

按CMD + 7你会得到你所有建立的历史。在这里你可以看到你需要的日志消息。 – fibnochi 2013-02-20 08:47:09

+0

但只有在执行过程中调试器已连接。这对我没有任何帮助。 – lukasz 2013-02-20 09:01:39

+0

这有帮助吗? http://stackoverflow.com/questions/2691427/iphone-app-doesnt-build-crash-reports – trojanfoe 2013-02-20 09:48:36

回答

0

我知道的最简单的方法需要一点设置。设置完成后,即使重启时间过后,您也可以访问完整日志,并可以保存以备后用。

您需要越狱设备。从Cydia内安装名为syslogd to /var/log/syslogOpenSSH的软件包。按照Cydia开始页面上的OpenSSH教程(半路向下)。 syslogd -package没有教程,但安装过程相同。安装syslogd后重启设备。

日志写入/var/log/syslog。从您的开发mac上的终端使用ssh登录到设备并查看/结束日志。您可以将scp记录回您的开发机器,或者可以使用Cyber​​Duck或类似软件将它们从设备上取下。

日志会变大,我不确定是否有限制,所以请留意文件大小。这是一个友善

> /var/log/syslog

不时应该做的。

PS:Cydia上还有一个MobileTerminal包。它可以让你直接从设备查看日志,而不从第二计算机

+0

我想避免越狱公司的设备,但现在我看不到任何其他方式。由于没有更好的答案,我会接受这一个。谢谢。 – lukasz 2013-02-21 11:06:25

0

ssh'ing在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); 
    }