Xcode 3.2.3 и выше - статические библиотеки с целями для нескольких платформ - PullRequest
1 голос
/ 24 сентября 2010

У меня есть статический проект lib с целями для iPhone и для OS X.С Xcode 3.2.2 и более ранними версиями все работало просто отлично, но в 3.2.3 Apple, похоже, внесла изменения в работу с целевыми настройками.В 3.2.2 я просто мог выбрать «base-sdk» из выпадающего меню и установить цель для каждого, симулятор iPhone, устройство iPhone и Mac, и xcode всегда автоматически создавал для правильной платформы и архитектуры для этой цели.Теперь, с xcode 3.2.3 и выше, вы больше не можете выбирать эту опцию.Переключение между целями для симулятора или устройства больше не влияет на платформу, для которой вы строите.Вы всегда должны выбирать платформу отдельно, а затем все цели строятся для этой платформы.Эта проблема уже описана для симулятора и устройства здесь: Ориентация на несколько платформ в iPhone SDK 4 Для проектов только для iPhone, я мог бы жить с ним и иметь только одну цель и выбрать платформу отдельно от цели.

Реальная проблема с этим изменением заключается в наличии в проекте iPhone и цели Mac: если выбрана цель Mac, у вас больше нет возможности переключаться между устройством и симулятором, но они по-прежнему влияют наMac цель.Если на платформе было установлено устройство до переключения активной цели с iPhone на mac, xcode не найдет CoreServices для цели mac, поскольку выполняет поиск в инфраструктурах устройств iPhone, где их нет.В этом случае Xcode даже строит для arm, и целевые настройки четко говорят, что он должен собираться для i386.Если при переключении обратно на iPhone target установить настройку платформы на симулятор, а затем снова переключиться на цель Mac, будет найдена платформа CoreServices, но используется симулятор, а не os x, что приводит к появлению десятков ошибок:ожидаемые объявления или ошибки «...» перед «CFXMLTreeRef» в структуре базовых сервисов симулятора iphone, где это не определено, хотя я, конечно, хочу использовать версию mac для платформы для цели mac.

Как я уже упоминал, до Xcode версии 3.2.3 все работало нормально.Проекты только для iPhone или только для Mac все еще в порядке.

Любые идеи, как мне получить проекты со статическими целями libs для iPhone и для Mac, для сборки с Xcode 3.2.3 и более поздними версиями?

1 Ответ

1 голос
/ 07 декабря 2010

у этого парня есть решение ... http://blog.vucica.net/2010/09/single-xcode-project-for-ios-and-mac-os-x.html

...