我有一个超级问题:
我在3.1.3 iPhone 3G上以Release作为活动配置运行我的应用程序时出现崩溃(EXC_BAD_ACCESS)。 (在调试配置或模拟器中运行良好,在运行iOS4的设备上运行良好)。
我的第一个猜测是发布配置中的一个设置是错误的/丢失的。为了测试它,我刚刚复制了我的调试配置,令人惊讶的是我得到了同样的错误(虽然配置只是一个工作的副本)。
我不明白为什么,配置应该是相同的,一个是工作而不是另一个。
如果有人想要启发我,我正撞在墙上。
谢谢
注意:基本SDK为4.0,部署目标为3.0
答案 0 :(得分:0)
也许你有一个未分配的局部变量。 Object-C遵循C的做法。所以在发布版本中你不能假设任何局部变量初始化为0,而在调试中你可以(在这种情况下我猜一个指针)。
编辑: 传递-Wuninitialized到编译器(或更好的-Wall),以便编译器警告这些Apple gcc man page注意仅在优化器打开时才有效。
答案 1 :(得分:0)
您应该检查内存泄漏和内存警告的处理。内存量可能是您引用的环境之间的最大差异。
在另一个场景中,我曾经发现模拟器速度更快,因此没有出现某种竞争条件,这种情况确实出现在设备上。这是你引用的环境的第二个区别:速度。
尝试查明崩溃并从那里进行调查。 NSLog都是didReceiveMemoryWarnings。寻找你做出假设的地方,即关于静态信息。
答案 2 :(得分:0)
我解决了这个问题。
这是三个库故障。我已经更新到支持iOS 4的主分支,但遗憾的是这打破了对3.1.3的支持。 (显然没有记录的东西)
无论如何,我发现this post帮助我发现了问题。我只需要应用this patch然后我就可以在3.1.3设备和iOS4上运行我的项目
奇怪的是:为什么在我初始化UIActionSheet时会崩溃(在与Three20 lib完全无关的代码行上)?
感谢您的帮助。