【发布时间】:2013-10-16 01:59:27
【问题描述】:
我们公司有一个基本上是电子书阅读器的应用程序。
我们使用RMSDK 进行图书下载和阅读。
现在,iOS7 设备中发生了一些非常奇怪的事情(不是在模拟器中):
- 我使用 RMSDK 中的实现方法下载了一本书
- 我正在等待这本书完成下载。这本书保存在 NSCachesDirectory 中(出于 App Store 指南的原因) - 到目前为止,一切正常
- 我点击主页按钮,应用程序移至后台
- 我点击了应用按钮以恢复应用,这时问题发生了:
应用程序完全卡住了。点击主页按钮没有任何作用,点击电源按钮关闭屏幕,但再次点击电源按钮没有任何作用。 设备本身实际上已经崩溃了。
几分钟后,Apple 徽标出现在设备上,设备在重新启动后恢复生机。
我不知道我的代码中的什么可能导致设备以这种方式运行。 iOS7 沙盒不应该阻止我让整个设备崩溃吗?
任何关于为什么会发生这种情况以及我可以做些什么来防止它的想法将不胜感激。
编辑: 我在 AppDelegate 中的 -(void)applicationDidBecomeAcvive: 方法上放置了一个断点,并且在崩溃前的最后一个阶段单击应用程序图标时不会调用它。
编辑: RMSDK 使用 libcurl 下载书籍。这可能是导致这种行为的原因吗?
编辑: 如果我在单击主页按钮后单击 ANY 应用程序,而不仅仅是在同一个应用程序上,则会出现问题。例如,我点击主页按钮,然后尝试打开Fruit Ninja,然后设备崩溃了。
【问题讨论】:
-
如果您的应用程序崩溃了 iOS,那是一个 iOS 错误,无一例外。沙盒不会阻止操作系统级别的错误导致崩溃。提交错误并希望最好。
-
我们已经这样做了,但我希望获得一些关于我可能正在做的事情的信息。我们已经有几个使用这个应用程序的主要客户,现在等待 Apple 的回应还不够好:/
-
你有没有实现任何关于多任务处理的事情?
-
有,但我已经尝试删除它们,看看是否有任何区别,但没有
-
巨大的瞬时内存消耗可以使跳板重新启动,或者冻结。尝试使用内存分配和 vm 跟踪器进行分析。