Компилировать разные файлы для устройства / симулятора в XCode - PullRequest
8 голосов
/ 02 декабря 2011

Я включаю стороннюю библиотеку (источники) со своей статической библиотекой. Он предназначен только для устройств (поскольку он включает в себя некоторые процедуры сборки ARM), и я не хочу создавать его для симулятора (я просто хочу, чтобы мое приложение компилировалось там, чтобы я мог протестировать GUI).

  • Создание другой цели только для симулятора не вариант, поскольку мои проекты ссылаются на мою библиотеку как на зависимость, и поддерживать ее было бы кошмаром.
  • Добавление #if (TARGET_OS_IPHONE) для этих файлов также не вариант, так как это не мои исходные источники, и я хотел бы легко обновить их для обновлений (там более 200 файлов, и я не могу их изменить все они)

Я ищу способ (похожий на #if (TARGET_OS_IPHONE) в исходных файлах), который будет работать из самой IDE (поэтому я могу исключить файл из фактического процесса сборки на основе моей целевой архитектуры). Единственное, что я нашел, - это возможность исключить / включить файл из цели, но не для конкретной архитектуры.

Есть ли способ установить условия архитектуры для конкретных файлов?

1 Ответ

1 голос
/ 08 декабря 2011

Лучше всего было бы разделить стороннюю библиотеку на новую цель, которая строит ее как статическую структуру. Установите его как зависимость для вашего проекта, а затем установите статическую структуру для условно связанной, как описано здесь Apple: http://developer.apple.com/library/ios/documentation/Xcode/Conceptual/ios_development_workflow/115-Configuring_Applications/configuring_applications.html#//apple_ref/doc/uid/TP40007959-CH19-SW7

Вы можете добавить новую цель, выбрав «Проект» в навигаторе проекта, а затем нажав кнопку «Добавить цель» в нижней части панели редактора. Вы можете настроить статическую библиотеку Cocoa Touch, а затем назначить соответствующие файлы .m или .c, которые принадлежат только этой цели. Затем выберите цель вашего приложения и добавьте статическую структуру в раздел «Целевые зависимости» вкладки «Фазы сборки».

...