iOS 真机Log日志

使用Xcode 在模拟器运行的时候,可以直接通过xcode 查看log,但是真机测试的时候,xcode 却无法获取到,对于日志输出,可以先保存到真机上,之后通过iTunes 导出即可


- (void)redirectNSlogToDocumentFolder

{

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentDirectory = [paths objectAtIndex:0];

    NSString *fileName = [NSString stringWithFormat:@"iphone6s.log"];// 注意不是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);

}


1.  上面的函数在你需要打印日志的页面调用就可。当真机连接Mac调试的时候把这些注释掉,否则log只会输入到文件中,而不能从xcode的监视器中看到。

// 如果是真机就保存到Document目录下的iphone6s.log文件中

    UIDevice *device = [UIDevice currentDevice];

    if (![[device model] isEqualToString:@"iPad Simulator"]) {

        // 开始保存日志文件

        [self redirectNSlogToDocumentFolder];

    }


2. 修改配置文件

修改项目下的Info.plist , 添加UIFileSharingEnabled键,并将键值设置为YES,添加之后,

添加之后会变成 Application supports iTunes file sharing YES


3.连接真机设备,连接iTunes,导出log 即可

连接真机设备之后,从应用程序里面找到dr.log 然后导出就可以了

你可能感兴趣的:(iOS 真机Log日志)