2010-07-14 114 views
0

我有一个问题superweird:的XCode建设:相同配置的行为不同

运行在我的3.1.3的iPhone 3G我的版本作为当前配置的应用程序时,我得到一个崩溃(EXC_BAD_ACCESS)。 (在调试配置或模拟器中运行良好,在运行iOS4的设备上完美运行)。

我的第一个猜测是发布配置中的一个设置错误/缺失。为了测试它,我只是复制了我的调试配置,然后出乎意料地得到了同样的错误(虽然配置只是一个工作的副本)。

我不明白为什么,配置应该是相同的,一个工作,而不是另一个。

如果有人想开导我,我就把头撞在墙上。

谢谢

注:基地SDK为4.0和部署目标为3.0

+0

不要问我启用NSZombie,它没有帮助。 Thx – Thomas 2010-07-14 17:58:27

回答

0

我修复了这个问题。

这是三20库故障。我已更新到支持iOS 4的主分支,但不幸的是这打破了对3.1.3的支持。 (显然没有记录的东西)

无论如何,我发现this post,这帮助我发现问题。我只需要申请this patch,然后我就可以在3.1.3设备和iOS4上运行我的项目

奇怪的事情:为什么当我初始化UIActionSheet时崩溃了(在一行代码中并不相关与Three20库)?

谢谢你的帮助。

0

也许你有一个未分配的局部变量。 Object-C遵循C如何做到这一点。所以在一个发行版本中,你不能假设任何局部变量在调试时都被初始化为0(在这种情况下,我猜测一个指针)。

编辑: 通过 - 初始化为编译器(或更好的-Wall)编译器在这些上发出警告Apple gcc man page注意只有在优化器打开时才有效。

+0

Thx。我已经手动检查过,但有一种方法可以自动执行 – Thomas 2010-07-14 18:15:29

+0

我刚刚用-Wuninitialized进行了重新编译,并发现了一个未初始化的局部变量。但是这并没有解决我的问题。 无论如何,我的应用在运行iOS4的设备上以发布模式运行良好。我只在iOS 3.1上得到这个崩溃。3(发布模式) 谢谢你反正 – Thomas 2010-07-14 19:07:47

0

您应该检查内存泄漏和处理内存警告。内存量可能是您引用的环境之间的最大差异。

在另一种情况下,我曾经发现模拟器速度更快,因此某种竞争条件没有出现,而设备上也出现了这种情况。这是您引用的环境中的第二个差异:速度。

试着找出你的崩溃并从那里调查。 NSLog所有didReceiveMemoryWarnings。寻找你做出假设的地方,即关于静态信息。

相关问题