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->前往文件夹,粘贴路径,这时就可以找到日志文件。

你可能感兴趣的:(iOS调试小技巧,在杀死程序怎么查看NSLog信息)