Отредактируйте цель Empty Window и щелкните на пункте Build Phases в верхней части редактора (рис. 6.8). Вы увидите этапы, из которых состоит сборка приложения.

По умолчанию самые необходимые из них имеют содержание — Compile Sources, Link Binary With Libraries и Copy Bundle Resources, — в то время как остальные являются необязательными. Фазы сборки подразумевают создание отчета о сборке цели и набор инструкций, необходимых среде Xcode для сборки цели. Если изменить фазы сборки, изменится сам процесс сборки. Щелкните на каждой фазе сборки, чтобы увидеть список файлов в вашей цели, к которым будет применяться процесс сборки.

Смысл каждой из фаз сборки довольно очевиден.

Фаза Compile Sources

Компилируются некоторые файлы (ваш код), а скомпилированный код копируется в приложение.

Эта фаза сборки обычно применяется ко всем целевым файлам . т; это файлы исходного кода, образующие цель. В настоящее время цель содержит файлы ViewController .m, AppDelegate. m и main. m. Если вы добавите в свой проект новый класс, то должны будете указать, что он является частью целевого приложения, а файл . ш будет автоматически добавлен в фазу Compile Sources.

Фаза Link Binary With Libraries

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

Эта фаза сборки в настоящее время содержит три каркаса. Механизм связывания бинарного кода с дополнительными каркасами будет обсуждаться позднее.

Фаза Copy Bundle Resources

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

Эта фаза сборки в настоящее время применяется к каталогу ресурсов; в каталог изображения можно добавить любые изображения, которые будут скопированы в ваше приложение. В настоящий момент каталог содержит файлы InfoPlist. strings и . storyboard.

Копирование не обязательно означает создание идентичной копии. Файлы некоторых типов при копировании в комплект приложения автоматически обрабатываются специальным образом. Например, копирование каталога ресурсов означает, что пиктограммы и заставки в каталоге записываются на верхний уровень комплекта приложения; копирование файла . storyboard означает, что он будет преобразован в файл . storyboardc, который в свою очередь представляет собой комплект, состоящий из nib-файлов.

Этот список можно изменять вручную. Например, если звуковой файл не был включен в фазу Copy Bundle Resources и вы хотите скопировать его в приложение в ходе сборки, перетащите его из навигатора проекта в список С bpy Bundle Resources или (что легче) щелкните на кнопке Plus под списком Copy Bundle Resources, чтобы открыть полезное диалоговое окно, в котором перечисляются все компоненты вашего проекта. И наоборот, если какой-то компонент вашего проекта был включен в фазу Copy Bundle Resources и вы не хотите копировать его в приложение, удалите его из списка; это не значит, что вы удаляете его из проекта, навигатора проекта или окна Finder, — вы просто удаляете его из списка элементов, которые должны копироваться в ваше приложение.

Существует удобный трюк — добавить фазу сборки Run Script, запускающую оболочку специального сценария на поздних этапах сборки. Для этого выберите команду Editor1^ Add Build Phase^Add Run Script Build Phase. Откройте вновь добавленную фазу сборки Run Script и отредактируйте сценарий. Минимальный сценарий может содержать лишь команду

echo "RunningtheRunScriptbuildphase"

Флаг Show environment variables in build log регулирует перечисление переменных окружения сборки и их значения в журнале сборки в ходе выполнения фазы Run Script. Это сама по себе достаточная причина для добавления фазы сборки Run Script; вы можете изучить множество деталей процесса сборки, проанализировав переменные окружения.


Похожие статьи

 

 

 

 
 

У вас нет прав оставлять комментарии. Зарегистрируйтесь на сайте.