【问题标题】:how to find and fix the cause of the crash如何找到并修复崩溃的原因
【发布时间】:2013-03-03 14:35:29
【问题描述】:

我向应用商店提交了一个应用,但由于以下原因被拒绝:

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

当我们发生以下情况时,您的应用崩溃了:

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

这发生在您的应用被使用时:

  • 在 Wi-Fi 上
  • 在蜂窝网络上

如果您的应用使用过多内存,它可能会遇到此问题。要详细了解 iOS 内存使用情况以及如何跟踪内存使用和泄漏,请参阅内存使用性能指南。”

我无法再次触发我这边的崩溃。我使用分配工具分析了我的应用程序,发现我的实时字节从未超过 12MB。使用泄漏工具,我发现我有一些泄漏(全部来自 3rd 方来源),但它们非常轻微,不应该导致应用程序崩溃。我不知道该怎么做。。

  1. 应用程序真的因为使用了太多内存而崩溃了吗?
  2. 还有其他原因吗?
  3. 我应该如何解决这个问题?

编辑 - 附上crash log

查看this&that,似乎使用 ASIHTTPRequest 框架会以某种方式导致崩溃,但仅限于临时或分发版本,这使得调试更加令人头疼。 真的是这个原因吗?我应该改用 AFNetworking 吗?

【问题讨论】:

  • 如果没有更多数据,尤其是崩溃报告,答案将是假设性的。对于这个和未来的问题,请按照链接页面中的建议:emclstcd.tk
  • 我对崩溃日志进行了符号化,并在问题中附加了一个链接。 @HotLicks,我检查了副本,它帮助我象征了崩溃日志,但是 - 我找不到我提到的 1,2,3 问题的答案..

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


【解决方案1】:

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

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

【讨论】:

  • 将优化级别设置为最快,Smales [-Os] 帮助我触发了我这边的崩溃。该错误位于 ASIHTTPRequest 包中。我改用AFNetworking,一切都解决了。
【解决方案2】:

应用程序真的因为使用了太多内存而崩溃了吗?

没有您的应用因访问错误而崩溃。通常这意味着您试图访问已释放的对象。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 2021-12-16
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 2012-12-26
    相关资源
    最近更新 更多