Обычная практика может заключаться в том, чтобы поместить утверждения в код для проверки входных параметров, целостности данных и т.д. во время разработки приложения.
Я тестирую свои приложения, НО, учитывая, что я не Кнут (и он записывает проверки на сумму 1 доллар США), и я не могу позволить себе использовать большую команду людей с полной занятостью, некоторые медицинские компании и компании, занимающиеся программным обеспечением космических систем, я полагаю, что во всех приложениях всегда будет много ошибок, которые еще никогда не наблюдались во время тестирования или QA. Предполагая иное, кажется совершенно интеллектуально нечестным. Итак, после тестирования приложения (и, очевидно, удаления всех ошибок, вызвавших ранее обнаруженные сбои ASSERT) и получения приложения для отправки в Apple, что делать со всеми проверками ASSERT в сборке Release/Distribution? Оставить или не работать?
Вот одно обоснование для их оставления: если приложение действует для некоторых пользователей, приложение может оцениваться этими пользователями как 1-Star, и никто не расскажет разработчику о том, почему он достаточно подробно. Но если приложение потерпит неудачу в результате сбоя ASSERT, приложение может по-прежнему получать рейтинг 1-Star, но разработчик может потенциально получить некоторые аварийные дампы, косвенно через iTunes и iTunes Connect, если достаточно пользователей, чтобы понять, что происходит не так. И если приложение будет отклонено Apple из-за нового сбоя ASSERT, это предотвратит появление плохой версии приложения на одном клиентском устройстве.