【发布时间】:2011-05-08 17:18:33
【问题描述】:
我的应用程序的更新刚刚获得 Apple 批准,用户现在抱怨该应用程序不再启动。它也发生在一些新用户身上。
我完全不知道问题出在哪里,也无法重现问题。在提交更新之前,我已经在各种设备(和模拟器)上测试了更新:运行 3.1.3 的 iPhone 2G、运行 4.3 的 iPod Touch 2G、运行 4.3.1 的 iPhone 3G 和 iPhone 4。他们都按预期工作。该更新有一些新功能,例如使用 AssetsLibrary 框架从用户的照片库中随机挑选照片,我已将该框架弱链接以支持 iOS 3,并且该功能在用户选择之前不会加载,因此应该不是问题。毕竟,更新已经过 Apple 的测试和批准。
我很难从有问题的用户那里收集崩溃信息,但我知道其中一位使用 iPhone 4 和 iOS 4.3.2。快速谷歌搜索显示 iOS 4.3.2 在启动第三方应用程序时出现问题,我怀疑我的问题与此有关,但我无法确认。我打算将我的开发 iPhone 4 降级到 iOS 4.3.2 来测试它。
这里有人遇到过类似的问题吗?由于负面评价,我的应用排名已大幅下降,因此我需要尽快解决此问题。
编辑:
应该没有任何看门狗问题,我在上面提到的带有和不带有 Xcode/调试器的设备上测试了更新。
内存管理。我无法重现该问题(我非常努力)所以我无法确认它是否是 EXC_BAD_ACCESS,我确实检查了引用计数并在适用时检查了 nil 释放对象(安全释放),我绝对不是内存管理方面的专家,所以我接受它说真的,我用仪器检查了泄漏和分配,压力测试并做了内存警告模拟,没有发现问题。
我在
-loadview中有UIApplicationWillEnterForegroundNotification,它只在iOS 4.0 之后可用,所以我用&运算符检查它是否存在,因为我使用它。除了在
NSUserDefaults中保存 facebook 连接令牌和到期日期 (NSDate) 之外,我不会保留数据,因为新用户也会遇到此问题,所以我认为这是其他问题
【问题讨论】:
-
我今天也有同样的痛苦经历,真的很难找到。我找到了我的问题的答案,并且正在努力修复。我建议您发布导致崩溃的视图控制器的代码。如果你真的不能这样做,那么检查刚刚声明但没有指向 nil 的对象。例如更改“NSError *error;”到“NSError *error = nil”。
-
我确实有一个在声明时不指向 nil 的对象,它是一个新功能的一部分,它有问题且不重要,所以我完全删除了它。由于我无法重现该问题,我无法确认是否是这样。不过,感谢您的意见!
-
您的代码或库中是否存在使用块、Grand Central Dispatch 或
weak引用的地方?在为 iOS 3.x 和 iOS 4.x 构建时,这些都不支持。