Для выпуска Xcode определяет NS_BLOCK_ASSERTIONS
, но не определяет Posix's NDEBUG
.Во-первых, вы должны добавить -DDEBUG=1
для отладки сборок и -DNDEBUG=1
для выпуска сборок, чтобы учесть упущения Apple.
Затем вы можете использовать макросы:
#if defined(NDEBUG)
# define MY_URL http://foo.com
#else
# define MY_URL http://bar.com
#endif
Вы также можете сделать что-нибудьнапример:
#if defined(NDEBUG)
static const string MY_URL = "http://foo.com";
#else
static const string MY_URL = "http://bar.com";
#endif
DEBUG
не является стандартным для Posix, но вы обнаружите, что многие библиотеки включают диагностику при определении символа.Диагностика во время отладки хороша, так как она поможет вам найти ошибки в вашем коде.
В OWASP подробно рассматривается вопрос безопасности: Укрепление цепочки инструментов на основе C .