背景:
我在 App Store 上发布我的应用程序。现在有用户反映问题:安装App启动时,App在启动页面或者其他页面被屏蔽。
我感兴趣的是,如果有一些方法可以检测阻塞 UI 线程的正在运行的函数。
如果我有遇到问题的 iPhone,也许我可以使用 Instruments 附加到进程,并找到耗时的单元。
但我不能总是拥有真正的 iPhone。我可以提前写一些代码,当问题发生时,我可以将调用堆栈写到磁盘上的日志中吗?
非常感谢。
背景:
我在 App Store 上发布我的应用程序。现在有用户反映问题:安装App启动时,App在启动页面或者其他页面被屏蔽。
我感兴趣的是,如果有一些方法可以检测阻塞 UI 线程的正在运行的函数。
如果我有遇到问题的 iPhone,也许我可以使用 Instruments 附加到进程,并找到耗时的单元。
但我不能总是拥有真正的 iPhone。我可以提前写一些代码,当问题发生时,我可以将调用堆栈写到磁盘上的日志中吗?
非常感谢。
你想要的是某种方式来(近乎)实时地监控你的应用程序,不仅可以了解分析,还可以了解应用程序崩溃和其他问题。在这方面,有一些非常好的服务可以为您完成这项工作。
我已经尝试了所有这些,尽管它们的功能集有些相似,但它们略有不同。我更喜欢 NewRelic 移动监控。希望这可以帮助...
如果我理解正确,您的应用程序在启动时会做一些重量级的事情。基本上是一个坏习惯。应用程序在进行任何大量工作之前应该始终绕过启动阶段。这就是为什么您会看到许多应用程序在启动时显示“正在加载...”或“请稍候...”或带有轻动画等的图像。
解决方案:
尝试观看WWDC 2012的 Up and Running: Making a Great Impression with Every Launch (Session 225)。这是我在 WWDC 上见过的最有用的会议之一。尽量不要惹看门狗!创建您自己的日志记录机制。将时间范围和对每一行的引用写入 txt 文件。如果该文件存在,则在每次启动时,application:didFinishLaunchingWithOptions:
甚至main
获取该文件并使用其他解决方案中提到的报告解决方案之一并报告它。如果您确实拥有该设备,请尝试使用
NSLog(@"%@ happend", eventName)
控制台并查看事件日志。我也使用plcrashreporter,它是免费和开源的。希望这可以帮助