У меня есть несколько assert(condition, "message")
заявлений в моем проекте.Аптеки попадают в серийную сборку, вызывая сбои
Используются для проверки инвариантных условий во время разработки. Я думал, что они будут проигнорированы в сборке производства/выпуска (как указано в this answer). Это не так. Вместо этого они вызывают сбои во время тестирования TestFlight. Когда я комментирую заявление, приложение не падает. Что-то обычно немного ошибается, но оно не падает.
Это может быть что-то с моими настройками сборки?
Все мои схемы архива используется конфигурация выпуска:
утверждает, находятся в Cocoa Touch Framework проекта, который используется с расширением пользовательской клавиатуры.
Все цели во всех проектах (Cocoa Touch Framework и основного проекта с целью расширения клавиатуры) имеют эти сборки Настройки:
Enable Foundation Assertions
Debug YES
Release NO
Disable Safety Checks NO
Что случилось?
EDIT:
Sulthan's answer показывает, как отключить утверждает глобально как для отладки и сборки разблокировки,. Это не то, что мне нужно. Я хочу, чтобы он работал так, как ожидалось, - утверждения должны быть включены при отладке, но отключены в сборках релизов.
По умолчанию он работает таким образом - и он также работает таким образом в моем основном проекте. Но он не работает для утверждений, расположенных в проекте Framework, который связан с этим основным проектом (подробности в this question). Зачем? Как это исправить?
Вы попробовали мой [ответ] (http://stackoverflow.com/a/24038197/669586)? – Sulthan
@ Султан Нет, я этого не делал. Я думал, что не нужно добавлять какие-либо пользовательские флаги, чтобы игнорировать утверждения в выпуске. Я попробую сейчас. – drasto
Я также думаю, что это не должно требоваться (это требовалось в одной из первых бета-версий). – Sulthan