仅在存档的Mac OS X产品中出现的错误

时间:2012-02-18 00:59:25

标签: objective-c macos cocoa debugging mac-app-store

我的朋友和我正在为Mac应用商店开发应用。我们将它提交到应用程序商店,但Apple根据我们之前从未体验过的错误拒绝了它。我们很难重现错误,但经过一段时间的调试后,我们发现错误只出现在存档产品中。

该错误的症状是我们的应用程序中的某些按钮在随机使用该应用程序后突然停止响应。我们唯一一次看到这个问题是在一个存档的应用程序中,所以试图找出导致问题的原因很困难。

归档我们的应用时实际发生了什么?它与直接在Xcode中运行的构建有何不同?有没有人遇到过类似的问题?

1 个答案:

答案 0 :(得分:3)

你发现的是一种heisenbug。

当您构建用于调试的代码时,编译器不会优化您的最终构建产品。归档应用程序时,编译器将优化最终产品,使其运行速度更快,占用内存更少。只有在优化代码时才会显示您的错误。

您可能遇到了应用程序调试版本中不存在的死锁或其他竞争条件。您可以构建并运行目标的发布配置,并查看是否可以确定它可能发生的位置。

但是,如果没有看到代码,那么SO对您没有多大帮助。祝你好运!