2012-04-23 3 views
1

Чтобы создать установщик для моей программы, я добавил проект/цель Xcode «установщик», который копирует все необходимые двоичные файлы во временное местоположение и затем запускает необходимую логику для сборки пакета.Строить порядок в целях построения схемы XCode

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

Я добавил все цели в целевом Построить список монтажника (в схеме), и они упорядочены следующим образом:

Project A 
Project B 
Project C 
Installer (self) 

Однако, когда я сделать чистую сборку, я вижу, вижу порядок сборки (в сборке журнал), как это:

Project C 
Installer 
Project A 
Project B 

мне нужно, чтобы заставить определенный порядок сборки или иначе файлы не будут доступны для использования установщиком. XCode позволяет вам изменить порядок этих элементов в пользовательском интерфейсе, но порядок не работает. Невозможно ли принудительно установить порядок зависимостей сборки?

ответ

3

Задавать целевые зависимости A, B и C для цели установщика, которые гарантируют, что A, B и C создаются перед установщиком. Выберите файл проекта из навигатора проекта, чтобы открыть редактор проекта. Выберите цель установки из списка целей. Нажмите кнопку «Сформировать фазы» в верхней части редактора, чтобы отобразить фазы сборки цели. Нажмите треугольник раскрытия рядом с фазой сборки зависимых объектов. Нажмите кнопку +, чтобы добавить зависимости.

При добавлении целевых зависимостей перед установщиком будут созданы цели A, B и C. Если вам нужно, чтобы A, B и C были созданы в определенном порядке, вам нужно будет добавить больше целевых зависимостей.

+0

Я думал, что это был бы правильный путь, но не смог заставить целевые зависимости работать. Когда я нажимаю кнопку «+», я вижу сообщение «Нет доступных предметов», и если я попытаюсь щелкнуть и перетащить один из продуктов .app из одного из проектов в это пространство, ничего не произойдет. Возможно, это связано с тем, что я создал свой «установщик» как пустой проект, но поскольку он не имеет собственного кода (просто скрипты), я не хотел начинать с исполняемого проекта. Если вы можете сказать мне, как я могу добавить элементы в список «Нет элементов», я был бы благодарен! – Locksleyu

+0

Целевые зависимости не охватывают проекты. Вы должны добавить цели для A, B и C в проект установщика, чтобы иметь возможность использовать целевые зависимости.В вашем случае один проект с четырьмя целями будет работать лучше, чем с четырьмя отдельными проектами. –

0

XCode позволяет изменить порядок этих товаров в пользовательском интерфейсе, но заказ не подходит.

В моем случае это происходило, когда на вкладке «Сборка» была отмечена «Параллельная сборка».

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

Имеет смысл, если вы думаете об этом: когда включена функция «Параллелизировать сборку», все цели без ограничений зависимости между ними будут построены параллельно, что может привести к их завершению вне порядка.

С другой стороны, если вы хотите их последовательный приказ строго следовать, ну .. это точно противоположно параллельных здания, и, следовательно, вы должны отключить эту опцию.

Смежные вопросы