iOS:崩溃统计工具Crashlytics的使用
一、介绍
随着苹果在世界火热起来,移动端app的开发如火如荼,同时催生出了一批对app进行统计的开发工具,诸如:国内的友盟统计、国外的Flurry移动端统计、国外的Crashlytics统计等,Crashlytics已经被Twitter收购,就目前而言,很多开发者普通认为Crashlytics做的相当不错。其实,Crashlytics已经成为Fabric的一个功能子集,我们既可以使用Fabric客户端快速集成,也可以根据Fabric的官方文档去集成,集成体验非常友好,比较人性化。
官方文档集成方式链接:https://fabric.io/kits/ios/crashlytics/install
二、配置fabric-crashlytics基本教程(客户端方式集成)
1. 注册账户(首先需要注册一个帐号,Crashlytics是免费使用的。更准确的来说是申请,因为它的流程跟普通注册流程有些不一样,要求输入邮箱地址、密码、用户名、公司名称等,然后进入排队审核状态,审核通过才会收到注册邮件)
网站介绍:http://try.crashlytics.com
注意:一般而言审核通过时间为几个小时或者1到2天不等甚至更快,我注册后很快就收到邮件了。顺便提一下,收到的邮件的署名是Fabric,而非Crashlytics。邮件如图:
2、注册后登录进入可以看到一些信息
例如我已经添加过的测试项目如图所示:
3、下载并安装Fabric客户端,使用客户端集成Crashlytics框架
Fabric工具包地址(下载需要付出积分哟):http://download.csdn.net/detail/qq_29587351/9723788
例如安装成功后的截图:
4、用之前注册的账号登录开始集成之旅
5、登录客户端可以看到公司等信息(OCDemo是我按照官方文档集成的,使用客户端之前已经存在),点击New App会列出电脑里你之前创建过所有的工程选项。
6、 选择某个工程然后next后会显示插件供安装,根据自己需要去选择安装
7、因为是需要做app崩溃统计,所以我选择安装Crashlytics组件。
7.1 复制需要添加到项目中的编译脚本指令
7.2 打开xcode中对应的工程项目,添加New Run Script Build Phase
7.3 将复制的编译脚本指令粘贴进去
7.5 上面的步骤操作完了后编译一下,就出现了下图,其实这个就是你需要的框架,你接下来要做的就是将这个蓝色的文件包拖入到选择的工程下,即完成客户端集成
8、用鼠标点击这个蓝色的文件包,然后拖入到选择的工程下,拖拽后出现如下图,实质上就是将框架集成到了项目下
9、按照右边图的提示,将其提示的代码拷贝添加到自己的AppDelegate中
10、点击Next,出现如图,接着按照提示进行,此处在等待验证安装(等待下面的第11步操作)
11、先按Command+B进行Build编译,然后按Command+R运行项目,发现没有报错,集成成功,ok了,点击Done
此处plist文件中的设置是自动生成的,关联app的APIKey
测试崩溃时需要设置此处,调试信息格式是“带dSYM文件的DWARF”,用于调试和发布确保在崩溃后启动应用程序,以便可以上传崩溃
12、点击Done后,返回到了上一级,此处另外提供了两个功能,分别是:演示app崩溃(强制崩溃)和获取用户信息
13、下面如果选择Force Crash强制app崩溃,它会提供比较详细的演示步骤,其实也是代码的复制和粘贴。复制和粘贴完代码后,你只需要跟着提供的5个步骤走下去即可演示崩溃效果:
本人在模拟器编译运行后的log如下,如果你的也是这样就没问题,然后停止模拟器,再一次从模拟器的home screen点击app打开进行演示崩溃即可
三、注意:
1、run时候部署到device真机上,模拟器可能不行。模拟器需要设置: [Crashlytics sharedInstance].debugMode = YES;
2、在集成这个project时有个小插曲,本来这个项目中是有使用cocoapods的,但在一开始使用cocoapods方式集成时居然失败了,原因是没有引用到fabric和crashlytics相关的library,后来使用xcode framework的方式集成才成功了。后来用cocoapods的方式集成另外一个项目,倒是一次过通过了。猜测有可能是在pod update时不同dependence之间有冲突。
3、集成完之后在Fabric网站和客户端上就可以看到该项目的详细信息。
四、本人测试崩溃截图如下
本人原创,请尊重本人的辛苦,支持转载,转载时请注明出处:http://www.cnblogs.com/XYQ-208910/p/6230908.html,希望对大家有帮助。
其他可供参考的链接:
http://blog.csdn.net/erictan_tjh/article/details/47669527
http://www.cnblogs.com/lisa090818/p/4283267.html
iOS:崩溃统计工具Crashlytics的使用的更多相关文章
- iOS崩溃调试的使用和技巧总结
在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题.简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的. 现在网上有很多关于解 ...
- iOS开发工具篇-AppStore统计工具 (转载)
随着iOS开发的流行,针对iOS开发涉及的方方面面,早有一些公司提供了专门的解决方案或工具.这些解决方案或工具包括:用户行为统计工具(友盟,Flurry,Google Analytics等), App ...
- iOS开发工具篇-AppStore统计工具
本文转载至 http://mobile.51cto.com/hot-418183.htm 随着iOS开发的流行,针对iOS开发涉及的方方面面,早有一些公司提供了专门的解决方案或工具.这些解决方案或工具 ...
- iOS开发工具篇-AppStore统计工具
苹果官方的iTunes Connect提供的销售数据统计功能比较弱,例如只能保存最近30天的详细销售数据,界面丑陋, 无法查看App的排名历史变化情况等. 早有一些公司提供了专门的解决方案或工具.这些 ...
- [原创]App崩溃率统计工具推荐
[原创]App崩溃率统计工具推荐 1 友盟(推荐) 友盟是一款比较成熟的工具,同时也可以展示留存,日活,事件等. 2 Bugly 腾讯的bugly统计数据也算是比较早的,可惜后续维护比较弱,功能与 ...
- ios 75个工具
如果你去到一位熟练的木匠的工作室,你总是能发现他/她有一堆工具来完成不同的任务. 软件开发同样如此.你可以从软件开发者如何使用工具中看出他水准如何.有经验的开发者精于使用工具.对你目前所使用的工具 ...
- 转: iOS崩溃堆栈符号表使用与用途
转:http://bugly.qq.com/blog/?p=119 iOS崩溃堆栈符号化,定位问题分分钟搞定! 2015.3.16 腾讯Bugly 微信分享 最近一段时间,在跟开发者沟通过程中,萝 ...
- HotApp小程序统计,第一个专业的微信第三方小程序统计工具
1.什么是HotApp小程序统计 HotApp小程序统计是第一个微信第三方小程序统计工具,就像做android 和 ios开发的人知道友盟统计一样,小程序也需要有个统计工具. 通过这个工具,可以知道小 ...
- python 练习(一)代码统计工具的实现
最近部门成立了一个python学习小组,旨在让大家在做项目中开始成长起来,于是老大就给布置了第一个小任务:代码统计工具,具体的需求如下: 需求: . 能够统计指定目录下C++程序的代码行数. . C+ ...
随机推荐
- unity3d编辑器——检视面板部分(一)
最近在学习unity编辑器,so,记录总结一下. 以下介绍了一些简单的unity3d检视面板部分的使用技巧. using UnityEngine; using System.Collections; ...
- 如何在一个页面后面随机跳转到多个链接地址Math.floor()和Math.random()
点击一个标签随机跳转到多个链接地址,主要运用javascript中的Math.floor()和Math.random()方法 floor(x) 方法是向下去整数 参数为任意数值或表达式. floor( ...
- LeetCode——Balanced Binary Tree(判断是否平衡二叉树)
问题: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced bin ...
- 使用samba实现linux与windows共享(测试成功)
samba服务器搭建 实现linux与windows文件共享有很多种方法,诸如wpc,vmtools等,今天我来介绍我在rehat系统中实验成功并且现在在用的的方法,直接给出操作步骤: ...
- Js中caller和callee的区别
1 :caller 返回一个调用当前函数的引用 如果是由顶层调用的话 则返回null (举个栗子哈 caller给你打电话的人 谁给你打电话了 谁调用了你 很显然是下面a函数的执行 只有在打电话的时 ...
- TextSwitcher 简单用例
TextSwitcher 字面理解是文字交换器,是ViewSwitcher的子类,从ViewSwitcher来看,是View交换器,TextSwitcher继承自ViewSwitcher,显然是交换T ...
- BZOJ 3105 [CQOI2013]新Nim游戏 ——线性基
[题目分析] 神奇的题目,两人都可以第一次取走足够多堆的石子. nim游戏的规则是,如果异或和为0,那么就先手必输,否则先手有必胜策略. 所以只需要剩下一群异或和为0就可以了. 先排序,线性基扫一遍即 ...
- MVC 缓存实践(一)
为什么要讲缓存.缓存到底有什么作用? 下面我们来说一个场景我们有一个首页菜单的布局基本是不会经常发生的变化,如果动态生成的 Web 页被频繁请求并且构建时需要耗用大量的系统资源,那么,如何才能改进这种 ...
- IPV6入门篇
引言 由于互联网的快速发展与普及,原有的IPV4地址已不能满足网络用户的需求,虽然NAT可以缓解IPV4地址的耗尽,但NAT破坏了网络环境的开放.透明以及端到端的特性,因此IPV6地址协议应运而生.I ...
- ADT Ubuntu X64 下ia32-libs替换等【待编辑】
sudo apt-get install ia32-libs apt-get install libglib2.0-0:i386 libpng12-0:i386 libsm6:i386 libxren ...