1

我的问题在引入 iOS 6 时出现,但现在似乎也影响了 5.1.1。

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

  • 控制台视图太短,我只能看到日志的尾部,
  • 复制/粘贴不起作用,保存到文件...产生垃圾,无法使用,
  • 没有办法保存日志、对其进行符号化或做任何事情。

值得一提的是,我们使用配件,无法同时连接调试器。

一个如何解决这个问题的想法可以节省我的时间,但任何体面的解决方法也会很好。

谢谢

编辑:“控制台”和“设备日志”是我在管理器中得到的。

4

2 回答 2

0

我知道的最简单的方法需要一些设置。设置完成后,您将可以访问完整的日志,即使在重新启动时也是如此,您可以将其保存以备后用。

你需要一个越狱的设备。在 Cydia 中安装名为syslogd to /var/log/syslog和的软件包OpenSSH。遵循 Cydia 起始页上的 OpenSSH 教程(下半部分)。-packagesyslogd没有教程,但安装过程是一样的。安装后syslogd重启设备。

日志被写入/var/log/syslog. 从开发 Mac 上的终端使用ssh登录设备并查看/跟踪日志。您可以scp将日志返回到您的开发机器,或者可以使用 Cyber​​Duck 或类似工具将它们从设备中删除。

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

> /var/log/syslog

时不时应该做的。

PS:Cydia 上也有一个MobileTerminal包。它将允许您直接从设备查看日志,而无需从第二台计算机 ssh'ing

于 2013-02-20T09:53:01.863 回答
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 回答