您的位置:首页 > 移动开发 > IOS开发

ios 开发之crash定位追踪

2015-08-20 18:06 399 查看
前言:说到crash追踪,之前有用过testIn,但是那个收费的,郁闷死了。安卓支持部分机型是免费的。但是ios却是要钱,很郁闷。找了一下,发现腾讯有个bugly平台,还不错,代码也很简洁。

一、bugly的下载地址

http://bugly.qq.com/

二、如何注册移动应用

1、使用QQ登录,注册app,会动态分配个APPid



2、得到appid



3、注意:这边的appid不同于我们的appstore的appid,appkey暂时没还没有用到。这个appid只要是注册后你没移除在什么情况下都可以生效,无论产品上线与否。

4、SDK下载地址

http://bugly.qq.com/whitebook

二、开发注意事项

1、下载并解压 iOS SDK

拖拽 Bugly_libc++ ⺫⽬目录下的 Bugly.framework ⽂文件到 Xcode ⼯工程内 (请勾 选 Copy items if needed 选项)

添加依赖库

SystemConfiguration.framework

Security.framework

libz.dylib

libc++.dylib

如果你的 Xcode ⼯工程⾥里的 C++ Standard Library 配置为 libstdc++ 1. 请选择 Bugly_libstdc++ ⺫⽬目录下的 Bugly.framework

2、并将上述依赖库中的 libc++.dylib 替换为 libstdc++.dylib

3、在程序入口初始化bugly的sdk

4、在不是调试模式下,测试crash上报导bugly后台。何为调试模式呢?简单来说,就是设备连接电脑;非调试模式?就是工程再设备上运行成功后,点击终止运行,点击window->device,重新运行一次,查看后台打印。





5、查看后台



这里有一些值得注意的地方:

就是已经捕获异常的,但是没成功上报到bugly后台,仔细检查流程,还是没出错,问题就出现在,可能工程里有一些第三方也有捕获异常,被截断了。我之前遇到的就是荣联云即时通讯。

就加上一行代码,解决了。

//bugly 追踪

NSSetUncaughtExceptionHandler(NULL);

[[CrashReporter sharedInstance] enableLog:YES];

[[CrashReporter sharedInstance] enableSignalHandlerCheckable:YES];

[[CrashReporter sharedInstance] installWithAppId:@”900007161”];

三、bugly高级运用—符号表

http://bugly.qq.com/iossymbol

官网讲的很详细,我这里主要补充一些细节

1、符号表的上传支持(最好用)自动配置: 自动配置,每次编译都会自动上传符号表到bugly平台。

2、手动配置: 只要代码一变化,都要重新运行shell脚本生成.zip文件,手动上传到bugly平台。

3、配置run Script 时,需要填写 appkey,appid,build id 三个值,并去掉前面的”#”号。自定义配置也是如此。

4、测试符号表不能再调试模式下

5、开发阶段,没编译一次,有肯能上传多个符号表,但是真正用的是最后一次编译上传的符号表。

6、issue详情: 蓝色代表的是你代码里面的源函数 其他的是系统原文件。能定位到你的app中出现crash的位置。但是如果是你使用的第三方出现crash的话 ,不能获取到它的符号表文件的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: