Ошибка, которая появляется только в заархивированном продукте Mac OS X - PullRequest
3 голосов
/ 18 февраля 2012

Мы с другом разрабатываем приложение для магазина приложений Mac. Мы отправили его в магазин приложений, но Apple отклонила его из-за ошибки, с которой мы никогда не сталкивались. Нам было трудно воспроизвести ошибку, но после некоторого времени отладки мы обнаружили, что ошибка появляется только в архивированном продукте.

Симптом ошибки заключается в том, что некоторые кнопки в нашем приложении неожиданно перестают реагировать после случайного использования приложения. Единственный раз, когда мы видим эту проблему, в заархивированном приложении, поэтому попытаться выяснить причину проблемы сложно.

Что на самом деле происходит, когда мы архивируем наше приложение? Чем он отличается от сборки, работающей непосредственно в XCode? Кто-нибудь из вас сталкивался с подобной проблемой?

1 Ответ

3 голосов
/ 18 февраля 2012

То, что вы нашли, является heisenbug.

Когда вы создаете свой код для отладки, компилятор не оптимизирует ваш окончательный продукт сборки.Когда вы архивируете свое приложение, компилятор оптимизирует конечный продукт, чтобы он работал быстрее и занимал меньше памяти.Ваша ошибка появляется только тогда, когда вы оптимизировали код.

Возможно, вы столкнулись с тупиковой ситуацией или другим состоянием гонки, которого нет в отладочной версии вашего приложения.Вы можете создать и запустить свою конфигурацию выпуска своей цели и посмотреть, сможете ли вы определить, где это может происходить.

Однако, не видя код, SO не очень вам поможет.Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...