Задание конфигурации подпроекта в XCode

У меня есть проект XCode (A), ссылающийся на другой проект (B). По умолчанию (насколько я понимаю) XCode будет неявно строить конфигурацию для зависимости B, которая соответствует конфигурации целевого объекта A (например, "Отладка" ). Но что, если я хочу, скажем, A построить как "Debug" и B для сборки как "Release"? Как я могу указать, что в XCode?

Ответ 1

Я не знаю какого-либо простого подхода, но вы можете грубо заставить его, вызвав xcodebuild напрямую для зависимости с фазой сборки "Запуск Script".

Я знаю, что это всего лишь пример, но если ваша реальная цель заключается в том, что суб-проект будет выпуском (без символов), то у вас может быть лучший опыт, просто построив подпроект в библиотеку или структуру и проверка полученного двоичного файла в вашей системе управления версиями. Всякий раз, когда у меня есть часть системы, которая редко менялась и что я не хочу использовать символы отладки, я иду вперед и создаю ее как статическую библиотеку и проверяю ее. Я часто перехожу вперед и перемещаю код в другом месте (с файл README с .a, который говорит, где находится код и как он был создан). Это экономит время на сборку и оформление заказа и неоценимо для больших проектов в моем опыте.

Ответ 2

Да, это естественно не поддерживается Xcode; когда вы строите цель, она создает одну конфигурацию самой и всех зависимых целей.

Обходной путь, как сказал Роб, заключается в том, чтобы иметь зависимую цель, которая имеет тип совокупного целевого объекта, который содержит одну фазу сборки Run Script, которая просто вызывает xcodebuild -configuration Release (или что-то еще).

Ответ 3

Это может помочь: если конфигурация проекта A не найдена, Xcode построит конфигурацию Release как резервную (или, возможно, первую конфигурацию списка).

Затем вы можете "заставить" ссылку использовать этот совет: Конфигурация пользовательской сборки Xcode вызывает "библиотека/файл не найден" " для статических библиотек