Objective-C - Наличие конфигурации TestFlight для включения TestFlight SDK - PullRequest
3 голосов
/ 06 ноября 2011

Я следовал инструкциям TestFlight, чтобы продублировать конфигурацию "release".Также я использую TestFlight SDK для получения отчетов из моего приложения.Делая это, я должен был включить некоторый код TestFlight в мое приложение.Конечно, я не хочу, чтобы этот код был в моей версии выпуска моего приложения.

Есть ли способ включить этот код только в конфигурацию testflight (дублированная конфигурация выпуска)?Точно так же, как вы можете сделать с #ifdef DEBUG для конфигурации отладки (или мне нужно создать для этого отдельную цель и включить в нее только TestFlight SDK?)

Ответы [ 3 ]

7 голосов
/ 07 ноября 2011

Вы можете довольно легко исключить выполнение кода с помощью операторов #ifdef, поскольку мы предлагаем его для нашей службы HockeyApp здесь: http://support.hockeyapp.net/kb/client-integration/crash-reporting-on-ios-quincykit

В основном это:

  1. Добавьте макрос препроцессора в проект XCode для всех конфигураций: CONFIGURATION_$(CONFIGURATION)

  2. Затем вы сможете использовать эти строки кода для включения кода только для конкретной конфигурации:

    #if defined (CONFIGURATION_Beta)
        // YOUR CODE
    #endif
    
  3. Это заменит Beta именем вашей конфигурации, которое должно включать только код

Ссылка выше предоставляет изображения и многое другоеподробный текст о том, как это сделать.Поскольку вы будете использовать эту библиотеку только в своей конфигурации бета-версии, вам не нужно создавать другую конфигурацию, кроме уже созданной для бета-распространения.

Вам нужна одна конфигурация для отладки, предназначенная для разработки.один для бета-распространения, чтобы установить права adhoc и один для распространения в магазине приложений.Последние два обычно являются вариантами конфигурации выпуска.

1 голос
/ 06 ноября 2011

Мое решение для этого - создать отдельную ветку в Git для версии Testflight, которая включает SDK и вызовы в коде, заголовки и т. Д.

Затем я делаю всю свою работу в основной ветке и постоянно обновляю ветку Testflight с учетом этих изменений. Таким образом, мне не нужно включать библиотеки или заголовки, которые я не использую в своей доставочной версии.

Это проще, чем кажется.

1 голос
/ 06 ноября 2011

Я думаю, вам нужно создать отдельную конфигурацию сборки и использовать что-то вроде #ifdef TESTFLIGHT. Вам следует добавить макрос для этой конфигурации, чтобы он определялся только для конфигурации TestFlight.

...