Xcode - Изменить путь поиска библиотеки на основе устройства, для которого код компилируется - PullRequest
4 голосов
/ 31 марта 2011

Я уверен, что об этом уже спрашивали, однако весь день я бился головой о кирпичную стену, пытаясь понять, как этого добиться с помощью XCode 4.

У меня есть библиотека, которая была распространенатретьим лицом.На самом деле они поставляют 2 разные версии, одну для использования в симуляторе и одну для использования с реальным устройством.

Я хотел бы знать, каков рекомендуемый способ обработки подобных ситуаций в XCode 4;в XCode 3 я мог бы просто указать новую цель.Я хотел бы избежать создания толстого бинарного файла с помощью lipo, содержащего обе библиотеки, но если это единственно возможный вариант, доступный для меня, то пусть будет так.

В идеале я хотел бы изменить путь поиска в библиотеке.на основе текущего устройства проект компилируется для:

Симулятор: /path/to/simulator/lib.a

Device /path/to/device/lib.a

Если бы я мог автоматизировать процесс, чтобы после его настройки он был прозрачным, тем лучше.

Большое спасибо, что нашли время прочитать это.

Ответы [ 2 ]

7 голосов
/ 31 марта 2011

XCode определяет $(EFFECTIVE_PLATFORM_NAME) как базу «iphoneos» или «iphonesimulator» на целевом «устройстве». Пока путь к вашей библиотеке включает одну из этих строк, вы можете установить LIBRARY_SEARCH_PATHS в ваших целях или проекте, например:

/path/to/$(EFFECTIVE_PLATFORM_NAME)/lib.a

Подсказка: вы можете увидеть это в действии, щелкнув «Все» в Настройках здания, а затем выбрав Редактор> Показать имена настроек и Редактор> Показать определения настроек в меню. Чтобы увидеть, соответствует ли конечное значение ожидаемому, переключитесь на значения, используя Редактор> Показать значения настройки .

2 голосов
/ 31 марта 2011

Вы все еще можете создавать новые цели в XCode4 - просто зайдите в свой проект на боковой панели навигатора, выберите его и в редакторе проекта вы можете выбрать «новую цель».

Однако я бы порекомендовал вам использовать lipo для создания толстого бинарного файла. Я считаю, что часть симулятора удаляется как часть фазы сборки, поэтому она не должна влиять на размер исполняемого файла.

...