最新在写推送时,点击获取推送传递的扩展字段,在程序激活状态下,可以通过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->前往文件夹,粘贴路径,这时就可以找到日志文件。