如何找到并修复崩溃的原因

时间:2013-03-03 14:35:30

标签: ios objective-c memory-management asihttprequest xcode-instruments

我将应用程序提交到应用程序商店,但由于以下原因而被拒绝:

  

“我们发现您的应用程序在运行iOS 6.1.2的iPhone 5上崩溃,这不符合App Store审核指南。

     

我们的应用程序崩溃了:

     

当用户点击登录应用时,会产生崩溃。

     

使用您的应用时发生这种情况:

     
      
  • 在Wi-Fi上
  •   
  • 在移动网络上
  •   
     

如果您的应用使用了太多内存,则可能会遇到此问题。要了解有关iOS内存使用情况以及如何跟踪内存使用和泄漏的更多信息,请参阅内存使用性能指南。“

我无法再次触发坠机事故。我用分配工具分析了我的应用程序,发现我的活字节数从未超过12MB。使用泄漏仪器我发现我有一些泄漏(所有在第三方来源),但它们非常小,不应该导致应用程序崩溃..我不知道该怎么办..

  1. 由于使用了太多内存,应用程序真的崩溃了吗?
  2. 还有其他原因吗?
  3. 我应该如何解决这个问题并解决问题?
  4. 编辑 - 附上crash log

    查看this& that,似乎使用ASIHTTPRequest框架会导致崩溃的一些方法,但仅限于ad-hoc或分发版本,这使调试更令人头疼。 这真的是原因吗?我应该切换到AFNetworking吗?

2 个答案:

答案 0 :(得分:3)

是的,您应该切换到AFNetworking,因为不再支持ASIHTTPRequest。

要调试此问题,请尝试将优化级别设置为最快,Smalles [-Os] 。这通常是调试和发布代码行为不同的原因。

答案 1 :(得分:1)

由于使用了太多内存,应用程序真的崩溃了吗?

由于访问不当,您的应用无法崩溃。通常这意味着您尝试访问已释放的对象。

我应该如何解决这个问题并解决问题?

崩溃发生在Server.m的第132行(方法:registerWithUserProvider :)。你应该看看这个方法。也许一个简单的零检查可以解决你的问题,但没有代码很难说。