Как я могу избежать включения кода отладки в систему контроля версий с XCode? - PullRequest
0 голосов
/ 12 июня 2011

При тестировании нашего приложения для iOS мы с моей командой должны отключить проверку SSL-сертификата.

В настоящее время мы используем жестко заданный код #define:

// In Prefix.pch
#define ALLOW_INVALID_SSL_CERTS

// Elsewhere
#ifdef ALLOW_INVALID_SSL_CERTS
// Code to disable SSL certificate validation
#endif

.В результате мы должны помнить об удалении #define каждый раз, когда выпускаем новую версию.

В идеале мы хотели бы найти способ включить флаг в Xcode, который не будет проверен в управлении исходным кодом.

Я обнаружил, что это возможно с помощью аргументов приложения ([[NSProcessInfo processInfo] arguments);однако это потенциально может быть использовано, так как злоумышленник может найти способ предоставить рассматриваемый аргумент приложению до его запуска.

Есть ли другой способ настроить это в Xcode?

Ответы [ 2 ]

1 голос
/ 12 июня 2011

Попробуйте установить Другой флаг C в настройках сборки, например -DDEBUG = 1, в настройках отладки, а в настройках выпуска установите для -DDEBUG = 0Затем в вашем файле префикса определите макрос отладки следующим образом.

#if DEBUG
#define ALLOW_INVALID_SSL_CERTS 1
#else
#define ALLOW_INVALID_SSL_CERTS 0
#endif

Я делаю это таким образом.Вот скриншот, если вы хотите знать, где установить опцию -DDEBUG.

enter image description here

0 голосов
/ 12 июня 2011

Попробуйте определить переменную окружения на ваших компьютерах разработчиков, например IOS_PROJ_ALLOW_INVALID_CERT = 1 (и убедитесь, что она НЕ определена на вашем компьютере сборки).

Затем измените настройки сборки макроса препроцессора вашего проекта, чтобы установить для макроса ALLOW_INVALID_SSL_CERTS значение вашей переменной $ (IOS_PROJ_ALLOW_INVALID_CERT).

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