从应用程序内部解析iOS设备日志

时间:2018-07-16 18:18:33

标签: ios objective-c nslog

我正在使用Gamemaker Studio 2,并创建了一个扩展程序以读取解释器生成的错误。在Android中,它们已登录到logcat,我能够解析它们。我正在尝试在iOS中做同样的事情,但是Gamemaker似乎没有按照我的预期写入设备日志。我可以通过使用以下命令将设备重定向到文件来获取设备日志:

freopen([pathForLog cStringUsingEncoding:NSASCIIStringEncoding],"a+",stderr);

使用NSLog记录的内容正在显示,我可以阅读。尽管我可以在Xcode控制台中看到它们,但Gamemaker异常并未出现:

2018-07-16 13:57:39.760274-0400 MyGame[34572:12880605] TIC Read Status [6:0x0]: 1:57
2018-07-16 13:57:39.760313-0400 MyGame[34572:12880605] TIC Read Status [6:0x0]: 1:57
2018-07-16 13:57:40.284416-0400 MyGame[34572:12880192] *** objDebugger created!
2018-07-16 13:57:43.301102-0400 MyGame[34572:12880192] GameMaker: 

___________________________________________



############################################################################################

FATAL ERROR in

action number 1

of Alarm Event for alarm 0

for object objHowToPlayButton:

控制台中还有其他未在重定向的stderr中显示的内容。我猜这是一个权限问题,在我的重定向可以读取之后,应用记录的某些内容可以读取,但是其他内容(也许在其他链接库中)无法访问?

任何人对这里可能发生的事情有任何指示?我是Xcode和Objective C的新手,所以请保持谦虚! :-)

谢谢!

1 个答案:

答案 0 :(得分:0)

有时只需要写出来即可。我意识到,似乎只有控制台输出的开始出现在重定向的文件中。应用程序启动后,我不得不再次重定向,然后它正在访问设备日志的其余部分(该日志是从我的应用程序编写的)。似乎其他一些代码取消了重定向。