У меня есть проект XCode (A
), ссылающийся на другой проект (B
). По умолчанию (насколько я понимаю) XCode будет неявно строить конфигурацию для зависимости B
, которая соответствует конфигурации целевого объекта A
(например, "Отладка" ). Но что, если я хочу, скажем, A
построить как "Debug" и B
для сборки как "Release"? Как я могу указать, что в XCode?
Задание конфигурации подпроекта в XCode
Ответ 1
Я не знаю какого-либо простого подхода, но вы можете грубо заставить его, вызвав xcodebuild напрямую для зависимости с фазой сборки "Запуск Script".
Я знаю, что это всего лишь пример, но если ваша реальная цель заключается в том, что суб-проект будет выпуском (без символов), то у вас может быть лучший опыт, просто построив подпроект в библиотеку или структуру и проверка полученного двоичного файла в вашей системе управления версиями. Всякий раз, когда у меня есть часть системы, которая редко менялась и что я не хочу использовать символы отладки, я иду вперед и создаю ее как статическую библиотеку и проверяю ее. Я часто перехожу вперед и перемещаю код в другом месте (с файл README с .a, который говорит, где находится код и как он был создан). Это экономит время на сборку и оформление заказа и неоценимо для больших проектов в моем опыте.
Ответ 2
Да, это естественно не поддерживается Xcode; когда вы строите цель, она создает одну конфигурацию самой и всех зависимых целей.
Обходной путь, как сказал Роб, заключается в том, чтобы иметь зависимую цель, которая имеет тип совокупного целевого объекта, который содержит одну фазу сборки Run Script, которая просто вызывает xcodebuild -configuration Release (или что-то еще).
Ответ 3
Это может помочь: если конфигурация проекта A
не найдена, Xcode построит конфигурацию Release
как резервную (или, возможно, первую конфигурацию списка).
Затем вы можете "заставить" ссылку использовать этот совет: Конфигурация пользовательской сборки Xcode вызывает "библиотека/файл не найден" " для статических библиотек