当发布的应用程序没有响应用户交互时获取有用信息的任何好方法?

时间:2013-05-11 03:50:39

标签: iphone ios objective-c xcode

背景

我在App Store上发布了我的应用程序。 现在,一些用户反映了这个问题:当他们安装应用程序并启动它时,应用程序在启动页面或其他一些页面被阻止。

我感兴趣的是,如果有一些方法可以检测阻止UI线程的运行函数。

如果我有满足该问题的iPhone,也许我可以使用仪器连接到该过程,并找到耗时的单元。

但我不能总是拥有真正的iPhone。 我可以提前编写一些代码,当问题发生时,我可以将调用堆栈写入磁盘上的日志吗?

非常感谢。

2 个答案:

答案 0 :(得分:2)

你想要的是一种在(近)实时监控应用程序的方法,不仅可以了解分析,还可以了解应用程序崩溃和其他问题。在这个领域,有一些非常好的服务可以帮助你。

  1. NewRelic - 移动监控
  2. chartbeat
  3. testflight
  4. Crashlytics - 正如@jszumski所述
  5. 虽然他们的功能设置有些相似但我们稍微有所不同,但我尝试了所有这些功能。我更喜欢NewRelic移动监控。希望这会有所帮助...

答案 1 :(得分:0)

如果我理解正确,你的应用程序在发布时会做一些重量级的事情。基本上是一个坏习惯。应用程序应始终绕过启动阶段,然后再进行大量工作。这就是为什么你看到许多应用程序在启动时有“正在加载...”或“请等待......”或带有轻微动画等的图像。 的解决方案: 尝试从WWDC 2012观看Up and Running: Making a Great Impression with Every Launch(会话225)。这是我从WWDC看到的最有用的会话之一。尽量不要看门狗! 创建自己的日志记录机制。将时间范围和每行的参考写入txt文件。然后在每次启动时,如果该文件存在,在application:didFinishLaunchingWithOptions:或甚至main抓取该文件并使用其他解决方案中提到的报告解决方案之一并进行报告。如果您确实让设备尝试使用 NSLog(@"%@ happend", eventName) 并观察事件日志的控制台。 我也使用plcrashreporter,它是免费和开源的。 希望这有帮助