Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top