查看 ios 真机调试log,导出log

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

此函数要在

-    (BOOL)application:(UIApplication *)application    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

中调用,这个函数在AppDelegate.m中实现的。

// 将NSlog打印信息保存到Document目录下的文件中

- (void)redirectNSlogToDocumentFolder

{

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

NSString *documentDirectory    = [paths objectAtIndex:0];

NSString *fileName = [NSString    stringWithFormat:@"dr.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);

}

/*******************************************************************************/

// 当真机连接Mac调试的时候把这些注释掉,否则log只会输入到文件中,而不能从xcode的监视器中看到。

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

UIDevice *device = [UIDevice    currentDevice];

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

// 开始保存日志文件

[self    redirectNSlogToDocumentFolder];

}

/*******************************************************************************/

修改AppDelegate.m

,添加如上,这样设置log的输出位置,或在xcode的监视器,或者在真机上的文件中

修改配置文件

修改项目下的Info.plist ,

添加UIFileSharingEnabled键,并将键值设置为YES,添加之后,

添加之后会变成 Application supports

iTunes file sharing YES

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

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

可以参考:

http://www.cnblogs.com/ThankForYou/archive/2012/09/12/2681739.html

http://www.open-open.com/lib/view/open1409822153338.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容