2012-02-27 3 views
7

Я использую testflightapp.com SDK в своем проекте для отслеживания сбоев во время бета-теста, который проводится на testflightapp.com. У меня есть 2 цели в моем проекте Xcode, которые являются «ad-hoc» и «store приложений».Как выполнить условную компиляцию на основе имен целей?

Инициировать testflight SDK, мне нужно положить вниз строку кода в AppDelegate.m как:

[TestFlight takeOff:@"67bebb8d8e5396a...A4LjQwNjQ4NA"]; 

Теперь я хочу, чтобы компилятор исключить эту строку кода при компиляции для цели «app store», потому что не имеет смысла запускать SDK testflight, когда он выходит на публичный.

Я ожидаю что-то вроде #ifdef, но я не мог понять, как искать форум.

ответ

10

Вы можете использовать user-defined build setting, который вы устанавливаете в настройках сборки для каждой цели, а затем используйте директиву #if10 или #ifdef для проверки этого параметра. Например, выберите цель «ad-hoc», нажмите «Настройки сборки» и прокрутите страницу вниз до раздела «Пользовательский». Затем просто нажмите кнопку «Добавить настройку сборки» и выберите «Добавить пользовательские настройки». Вы можете установить различные значения для своих настроек для каждой конфигурации сборки (отладка, выпуск и т. Д.).

Picture of relevant Xcode settings

+1

эй, спасибо за быстрый ответ. Я не мог найти «пользовательскую настройку», о которой вы упоминали, однако я нашел «Preprocessor Marcros» (есть DEBUG = 1, определенный для отладки, поэтому я определил TESTFLIGHT = 1) может удовлетворить мою потребность. СПАСИБО! –

+0

Добавлен образ для иллюстрации пользовательских настроек сборки. – Caleb

+0

Да, я дам глупый, я пробовал искать с «пользователем», который ничего не получился. хорошо, это раздел, спасибо –

Смежные вопросы