代码编织梦想

iOS上获取崩溃日志的N+1种方法


正常情况下,程序崩溃之后都会有崩溃日志保存在我们的手机里面,当崩溃的时候,我们可以通过如下几种方式找到我们的崩溃日志。


 方法一:从本机隐私设置里面的里面导出来


      当本机发生崩溃的时候,你可以从系统设置->隐私->分析与改进里面找到你当时的崩溃日志,通常,你的崩溃日志格式包含程序包名,时间以及后缀ips或者beta.点击进去,右上角点击分享可以各种方式分享出去

1

2

 

 

方法二:使用Xcode导出崩溃日志


 1.电脑连接手机,打开xcode,选择顶部菜单栏Windows,选中`Devices and Simulators`打开。
 

1

 2.在弹出的弹框中选中Devices下你的设备,右边选中View Devices Logs,打开日志窗口
 

3

3.选中你想要导出的日志,点击右键可以导出和解析哦

3

 

 方法三:使用Xcode导出线上已发布APP的崩溃日志

 

 1.电脑连接手机,打开xcode,选择顶部菜单栏Windows,选中`Organizer`
3
 2.选择Crash,APP名字以及版本等,就可以查看各种崩溃日志了
 

3

 

方法四:在Apple Connets里面查看TF版本用户同意上报的崩溃日志(TF,iOS13版本以上)

1.登录App Store Connects,选中你的APP,选中TestFlight选项,就能看到TF版本用户上报的崩溃了
2
2.点击具体的崩溃日志,弹框右上角选择下载

4


方法五:使用App Store Connects API从苹果后台后去崩溃日志;

苹果在WWDC 20扩展了200多个App Store Connect API,其中就包括了崩溃日志的获取API的增加。因条件所限,没有权限是不能获取的,想要学习和了解的同学可以看WWDC的session,里面有更详细的信息和API说明。

WWDC20 Expanding automation with the App Store Connect API:https://developer.apple.com/videos/play/wwdc2020/10004/

方法六:集成Bugly,firebase, 友盟,听云等众所周知的性能/崩溃抓取组件


1.Bugly:https://bugly.qq.com/

2.firebase]:https://firebase.google.cn/products/crashlytic

3.友盟:https://developer.umeng.com/docs/119267/detail/119477

4.听云:https://www.tingyun.com/


方法七:集成KSCrash,PLCrashReport等开源组件来收集崩溃日志


1.KSCrash:https://github.com/kstenerud/KSCrash

2.PLCrashReport:https://github.com/microsoft/plcrashreporter

 

方法八。。。没有了 😁,即使有,我也不知道。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/a2025131311/article/details/111069352

iOS底层探索--内存管理(上)-爱代码爱编程

兄弟们,最近实在是太忙了。不过~我又回来继续探索了。 内存管理这个名词,我相信所有的iOS工程师都听说过,也是大多数兄弟们,面试最头疼的,今天!小谷带大家走一波源码。希望对大家有所帮助。 关于内存管理,大家都会想到,ARC/MRC、retain、release、dealloc、autorelease。今天就浅谈一波。不对的地方,我在查源码找找,哈哈~

iOS 边学边记 Weak的实现(二)-爱代码爱编程

正文 接 Weak的实现(一) 2 生成新的weak_entry_t插入到weak_entries中 /** * Registers a new (object, weak pointer) pair. Creates a new weak * object entry if it does not exist. * * @param we

开发也可以改变下,RxSwift-让你的开发变得简洁高效。-爱代码爱编程

RxSwift到底是什么? RxSwift是一种函数式响应式编程。那什么是函数式编程呢,函数式编程最重要的概念就是“无状态(immutable)”,看到这有些小伙伴可能会很开心,无状态(知名LOL职业选手)嘛,我是他的粉丝!言归正传,到底什么是“无状态(immutable)”呢?我看了很多文章,但是都被他们专业的描述整的一头雾水,我来说说我的看法:有丰富

如何使用VIPER构建iOS应用-爱代码爱编程

用VIPER构建iOS应用 为避免撕逼,提前声明:本文纯属翻译,仅仅是为了学习,加上水平有限,见谅! 【原文】https://www.objc.io/issues/13-architecture/singletons/ 用VIPER构建iOS应用 ——by Jeff Gilbert and Conrad Stoll 众所周知,在建筑领域,我们塑造我

AssociatedObject 的源码解析分析底层实现原理-爱代码爱编程

C++ 的析构函数应该理解为内存释放前的清理工作,而不是内存释放,内存释放是使用的 free 函数,还有 OC 的 dealloc 也是,最终真正的释放内存函数是 free,dealloc 也可以理解为是 free 函数调用前做清理工作的。 前言 使用 Category 为已经存在的类添加方法是我们很熟悉的常规操作,但是如果在 Categor

iOS 边学边记 Weak的实现(三)-爱代码爱编程

正文 接 Weak的实现(二) 3 设置弱引用标志位 inline void objc_object::setWeaklyReferenced_nolock() { retry: //去对象的isa指针 isa_t oldisa = LoadExclusive(&isa.bits); isa_t newisa = ol

iOS多线程的锁,你知道多少?-爱代码爱编程

前言 iOS开发中由于各种第三方库的高度封装,对锁的使用很少,刚好之前面试中被问到的关于并发编程锁的问题,都是一知半解,于是决定整理一下关于iOS中锁的知识,为大家查缺补漏。 目录 第一部分: 什么是锁 第二部分: 锁的分类 第三部分: 性能对比 第四部分: 常见的死锁 第五部分: 总结(附Demo) 正文 一、什么是锁 在过去几十年并

开发也可以改变下,RxSwift-让你的开发变得简洁高效。-爱代码爱编程

RxSwift到底是什么? RxSwift是一种函数式响应式编程。那什么是函数式编程呢,函数式编程最重要的概念就是“无状态(immutable)”,看到这有些小伙伴可能会很开心,无状态(知名LOL职业选手)嘛,我是他的粉丝!言归正传,到底什么是“无状态(immutable)”呢?我看了很多文章,但是都被他们专业的描述整的一头雾水,我来说说我的看法:有丰富

常见多线程实现,iOS开发程序猿进阶-爱代码爱编程

一 常见多线程实现 (一)pthread (1)特点 1)一套通用的多线程API2)适用于Unix/Linux/Windows等系统3)跨平台可移植4)使用难度大(2)使用语言 C语言 (3)使用频率 几乎不用 (4)线程生命周期 由程序员进行管理 (5)概念、属性与方法 略 (二)NSThread (1)特点 1)使用更加面向对

关于iOS系统你知道多少???-爱代码爱编程

首先来说下ios的历史吧!!! iOS系统诞生于2007年1月1日的Macworld上,当天公布了IOS的初代系统,当时它的名字是iPhone OS X,同时颠覆手机行业的iPhone也横空出世了,它创新的多点触控操作以及极简的用户体验都让全球消费者为之疯狂,3.5英寸的480X320分辨率的大屏幕也远远超过当时手机行业的平均配置,单Home键让 当时标配

Swift 如何生成随机数-爱代码爱编程

1.生成Int类型随机数 var numberOne: Int = Int(arc4random()) print(numberOne) 结果: 3628967563 说明:arc4random()直接返回UInt32类型数据 2.生成Double类型随机数 var numberFour: Double = drand48() print(

iOS CALayer CABasicAnimation以及CATransaction-爱代码爱编程

1. 概述 上文简单讲述了CALayer的概念以及一些属性,针对于Layer,除了其展示样式,我们更注重它的动画,本篇文章及本专栏的后续文章将围绕Layer的核心动画进行探究。 本文首先看一下CALayer的基础动画类CABasicAnimation以及CATransaction的使用。 2.  CALayer基础动画 CALayer基础动画类为C