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的话 ,不能获取到它的符号表文件的。
一、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的话 ,不能获取到它的符号表文件的。
相关文章推荐
- Ios项目中添加ZipArchive框架遇到的错误
- iOS应用本地化-文本信息本地化
- 虚拟化--062 vsphere workstation bios启动
- IOS 宏NSDictionaryOfVariableBindings中的#
- IOS之TextView属性设置
- 关于IOS searchbar更改背景
- iOS开发-63】Unknown type name "CGRect",did you mean "Rect"?的解决方案
- ios开发 加急审核
- iOS的Bitcode是什么?怎么配置?
- iOS 给collectionView增加Header
- iOS博客地址,很多资料
- IOS-tableview编辑
- iOS高级-QuartzCore框架-2D绘图
- iOS开发-使用Storyboard进行界面跳转及传值
- iOS开发——多线程篇——快速生成沙盒目录的路径,多图片下载的原理、SDWebImage框架的简单介绍
- iOS开发日记7-字符编码(UTF8转码)
- iOS 聊天界面
- iOS下nil 、NULL、 Nil 、NSNull的区别你造吗
- iOS7上 使用autolayout让Cell自动调整高度
- 虚拟化--007 workstation 进入bios办法