iOS 上如何查看日志信息
App开发中难免会遇到各种各样的问题,特别是有些信息不能在Debug 状态下重现,所以不得不记录日志信息到文件中,方便以后分析问题。
但是因为苹果系统的封闭型,日志信息除了上传服务器就只能保存在App的沙箱里面,查看很不方便。
后来出现了一些第三方App,可以查看App的沙箱文件。这类应用有iTool、iExplore等。
iOS8.3出来以后,这些工具的查看沙箱的功能统统失效了。
现在我们需要一些其他方法来查看日志文件内容了。
以下是常见的方法:
在APP中提供查看日志内容的接口。
在用户的UI界面上增加一个查看日志的入口,譬如在“关于”菜单下面。
可以定义一个宏来控制入口的开启和管理:1
#define ENABLE_SHOW_LOG_VIEW 1
共享App的沙箱目录,在Itune中查看文件。
通过在app的info.plist文件中增加UIFileSharingEnabled键,
并把值设置为TRUE。这样,在iTune中就可以操作App的Document目录了。开发时把日志保存在Document目录中,就可以用iTune把日志拷贝到电脑上查看了。通过发送邮件的方式把日志文件发送给开发者。
有时候,测试人员在现场测试,手头没有PC,不能把日志文件转移到PC上,而同时有需要开发人员快速定位解决问题时,就可以通过把日志文件发送邮件给开发者来分析问题。
这样同方案一一样,需要在App中增加一个发邮件的入口。
发邮件的代码:
a. 引入发送邮件的框架1
#import <MessageUI/MFMailComposeViewController.h>
b. 实现MFMailComposeViewControllerDelegate协议@interface ViewController ()<MFMailComposeViewControllerDelegate>c. 发送邮件
1 | if([MFMailComposeViewController canSendMail]){ |
1 | 需要用户在设备上配备了邮件账号。 |
d. 处理邮件发送结果
1 | -(void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error{ |
三种方法介绍完毕。
第一种方法适合开发者可以接触到测试设备的场景。
第二种需要设备连接电脑使用。
第三种需要有网络,但是不受设备和地域的限制,非常适合现场解决bug。