最开始想iOS和Android都做了,后面尝试了下android上面的崩溃收集,困难程度超出我的想象,也可以说几乎不可能实现像iOS下面一样实用且方便的崩溃收集系统(1.有堆栈等信息,不会产生卡死等副作用。 2.专指jni崩溃,java的崩溃很容易处理)。 这个有一点要反思一下,在困难的地方浪费时间不如把简单的东西做好,那么多赚大钱的游戏也是各种不完美,但是玩家不会在意程序是否牛x,技术是否高明,只要玩家想玩的核心点做到极致就可以了。
1、在崩溃的时候使用 (这里)提到的方式来获取堆栈直接上传到服务器。 这个可以进行粗略定位,并且是明文的,不需要额外工具转换格式。 缺点是,不能定位到具体行。但是很多情况下这个也是足够使用的。
2、使用plcrashreporter 获取到崩溃日志文件。 在游戏下一次开始运行的时候上传这个崩溃文件到服务器。 我们获取到这个文件后具体分析过程:
a、将发布版本时备份的dSYM符号文件和崩溃信息文件(xx.plcrash) 放到一个文件夹
b、需要用到的工具 plcrashutil (这个在plcrashreporter发布包的Tools文件夹下) symbolicatecrash(这个在xcode程序文件夹下 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/)
c、运行命令
./plcrashutil convert --format=iphone live_report.plcrash > test.crash
export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
./symbolicatecrash test.crash DemoCrash-iOS-Device.app.dSYM > crash_readable.log
第一个命令将plcrash转换为苹果标准崩溃格式,第二个命令可以根据dSYM符号文件解析出崩溃信息,可以定位到具体行,例如:
Thread 0 Crashed:
0 DemoCrash-iOS-Device 0x00002780 stackFrame (main.m:41)
Thread 1:
0 libsystem_kernel.dylib 0x368ad3a8 kevent + 24
1 libdispatch.dylib 0x376dabc9 _dispatch_mgr_wakeup + 1
分享到:
相关推荐
一套 iOS7 iOS8的启动图片,测试用。
ios一套成,bios练习工具.exe BIOS中英文对照.doc BIOS设置教程.ppt
APP性能检测,Crash方案,无痕埋点方案,APP性能检测,Crash方案,无痕埋点方案
Swift编程实战 iOS应用开发实例及完整解决方案 pdf 清晰版本
如何利用iOS架构企业解决方案,非常实用
对iOS9新特性介绍及解决方案!iOS 9 新特性 1.网络适配-Https HTTP请求失败 解决了编译问题后,程序跑起来了,却发现很多网络请求失败。这是因为iOS9默认不支持HTTP请求,需要改用更安全的HTTPS(默认用TLS 1.2)...
iOS最新审核被拒及解决方案(包括2.1大礼包).docx
iOS14增长支持方案:iOS14后的移动营销解决方案及洞见.pdf
WOCrashProtector是一个无侵入的 iOS crash 防护框架,基于 Swizzle Method 的 Crash 防护。能有效的防止代码潜在的crash,自动在app运行时实时捕获导致app崩溃的破环因子,使app避免崩溃,照样可以继续正常运行。
iOS逆向开发常见问题的解决方案.docx
iOS14隐私适配及部分解决方案.docx
资源名称:Swift编程实战 iOS应用开发实例及完整解决方案资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
iOS苹果审核2.1解决方案审核机制.docx
Swift-编-程-实-战-iOS应用开发实例及完整解决方案.pdf 完整版,希望对你有帮助。
iOS开发中奔溃是非常恶心,但是我们如何能够做到Crash分析以及收集处理,恰恰体现了一个高质量iOS开发人员的能力!今晚Cooci老师从原理探索分析Crash的收集和处理,让APP起死回生!知识点:1-常见奔溃简析 2-...
iOS14增长支持方案:iOS14后的移动营销解决方案及洞见2021.5(20页).pdf
野火IM是一套跨平台,核心功能开源的即时通讯解决方案,主要包含以下内容。 仓库 说明 备注 野火IM Android SDK原始码和应用原始码 可以很方便地进行二次开发,或集成到现有应用当中 野火IM iOS SDK原始码和App原始...
OC 键盘遮挡输入框万能解决方案(多个输入框),适用于多个局部变量输入框
iOS之presentViewController模态全屏适配解决方案.docx
iOS系统Crash文件分析方法参考.pdf