Файл приложения представляет собой папку особого вида, которая называется пакетом (package), а специальная разновидность пакета называется комплектом (bundle).

Окно Finder обычно отображает пакет в виде файла, не раскрывая пользователю его содержимое, но эту защиту можно обойти и изучить комплект приложения с помощью команды Show Package Contents. Это позволяет исследовать внутреннюю структуру собранного комплекта приложения.

Мы будем использовать минимальное приложение Empty Window, собранное ранее для примера. Найдите его в окне Finder; по умолчанию оно должно находиться в папке Library/Developer/Xcode/DerivedData, как показано на рис. 6.14. (Я предполагаю, что вам известно, как найти каталог Library.) Теоретически вы должны уметь находить приложение в разделе Products в навигаторе проекта и выбирать команду File^Show в окне Finder, но, кажется, эта команда имеет долговременный изъян.

 Собранное приложение в окне Finder

Pиc. 6.14. Собранное приложение в окне Finder

 

Находясь в окне Finder, нажмите клавишу <Control> и щелкните на приложении Empty Window, а затем выберите в контекстом меню команду Show Package Contents. Здесь вы увидите результаты процесса сборки (рис. 6.15).

 Содержимое комплекта приложения

Pиc. 6.15. Содержимое комплекта приложения

Можете считать комплект приложения трансформированной папкой проекта

 

Empty Window

Это скомпилированный код нашего приложения. В процессе сборки компилируются файлы ViewController .m, AppDelegate.m и main.т. Перед этим выполняется предварительная компиляция в соответствии с директивами #import (а также импортирование результатов предварительной компиляции файла Empty Window-Prefix. pch). В результате возникает отдельный файл, представляющий собой бинарный код нашего приложения. Это сердцевина приложения, реально выполняемый код. При запуске приложения бинарный код связывается с разными каркасами, и код начинает выполняться с функции main.

 

Main.storyboard

Это файл раскадровки приложения. Именно файл Main, storyboard определяет интерфейс приложения — в данном случае он описывает пустое белое представление, занимающее все окно. В процессе сборки файл Main. storyboard компилируется (с помощью инструмента командной строки ibtool) в более компактный формат и возникает файл . storyboardc, представляющий собой комплект nib-файлов, загружаемых при запуске приложения. Один из этих nib-файлов, который загружается при запуске приложения, описывает пустое белое представление в интерфейсе. Файл Main. storyboardc хранится в такой же вложенной папке (в папке Base. lproj), что и Main. storyboard в папке проекта; как я уже говорил, эта структура папок связана с локализацией (см. главу 9).

 

InfoPlist.strings

Этот файл копируется непосредственно из папки проекта в такую же вложенную папку (в папке en. lpro j). Этот файл также связан с локализацией.

 

Assets.car и Launchlmage-700-568h@2x~iphone.png

Это каталог ресурсов и заставка. Оригинальный каталог ресурсов Images .xcassets был обработан с помощью инструмента командной строки actool. В результате возник скомпилированный файл каталога ресурсов с расширением . саг, содержащий все

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

 

Info.plist

Это файл конфигурации в текстовом формате (файл, содержащий список свойств). Он выводится из файла проекта Empty Window-Inf о .plist и содержит инструкции, сообщающие системе, как обрабатывать и запускать приложение. Например, если наше приложение имеет пиктограмму, то файл Info .plist сообщит системе ее имя, так что система сможет найти ее в комплекте приложения и отобразить на экране. Он также сообщает системе такую информацию, как имя бинарного файла, чтобы система могла найти его и запустить приложение.

 

Pkglnfo

Это маленький текстовый файл, содержащий строку APPL????, означающую тип и идентификатор автора приложения. Файл Pkglnfo — это в некотором роде динозавр; на самом деле для функционирования приложения в системе iOS он не нужен и генерируется автоматически. Редактировать его практически никогда не требуется.

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

Теперь вы можете оценить, как обрабатываются и собираются в приложение компоненты проекта и что должны делать вы как программист, чтобы ваше приложение было собрано корректно. Оставшаяся часть главы описывает процесс сборки приложения из проекта, а также составные части приложения, используемые для его запуска и приложения.


 

 

 

Добавить комментарий