iOS调试小技巧,在杀死程序怎么查看NSLog信息

最新在写推送时,点击获取推送传递的扩展字段,在程序激活状态下,可以通过xcode控制台查看NSLog信息,但是在程序退出状态下,想获取推送通知传递的字段,这时就是头疼的问题。

【1】真机调试

在程序杀死时,失去xcode链接,没有办法获取打印信息,这时可以在 AppDelegate中 的声明如下方法,用来把NSLog的信息打印到手机磁盘文件中

- (void)redirectNSlogToDocumentFolder
{
    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    
    NSString *documentDirectory = [paths objectAtIndex:0];
    
    NSString *fileName = [NSString stringWithFormat:@"dr.txt"];// 注意不是NSData!
    
    NSString *logFilePath = [documentDirectory stringByAppendingPathComponent:fileName];
    
    // 先删除已经存在的文件
    
    NSFileManager *defaultManager = [NSFileManager defaultManager];
    
    [defaultManager removeItemAtPath:logFilePath error:nil];
    
    // 将log输入到文件
    
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);
    
    freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);
    
}

didFinishLaunchingWithOptions方法中调用上面方法,同时在Info.plist文件中添加一行UIFileSharingEnabled设置为YES,允许app同坐iTunes链接时,设置改app问共享性,这时就能获取到该app所在磁盘文件夹的文件,点击存储,到Mac桌面双击即可查看(示例中保存的txt格式文件),这时就能查看,程序的NSLog信息和xcode控制台打印的一样。

【2】模拟器调试

方法如果真机调试一样,声明方法,然后调用,在链接xcode时打印paths路径,复制,然后在Mac中右键Finder->前往文件夹,粘贴路径,这时就可以找到日志文件。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容