Автоматизация сборки проекта под несколько платформ с помощью ant

Условная компиляция и ant могут сильно упростить жизнь при разработке проекта под несколько платформ, а именно:

Рассмотрим простейший пример. Что для этого понадобится:

Открываем FlashDevelop и создаём новый проект AIR Mobile AS3 App. Или скачиваем готовый проект(без сертификатов). Открываем Project/Properties/Compiler Options/Additional Compiler Options и вписываем три строки:

Необходима папка obj. Чтобы она появилась, достаточно один раз скомпилировать пустой проект, затем правой кнопкой по проекту/Show Hidden Items. Итоговый проект будет выглядеть так:

01

 

В коде есть 4 класса и один интерфейс. Классы из пакета generators реализуют интерфейс IGenerator и возвращают строки. Каждый класс для своей платформы:

В основном классе создаётся одна из реализаций интерфейса IGenerator в зависимости от конфига, из неё вытаскивается строка и отображается текстовое поле с этой строкой:

Тут всё очень просто. Переходим к ant конфигу(папка build). В файле build.config находится список внешних параметров:

Теперь рассмотрим по частям файл build.xml. В начале инициализация внутренних параметров и список таргетов:

Самое главное — подключение внешних параметров(build.config), затем путь к компилятору, путь к adt, а также путь к AIR конфигу и путь к Flex конфигу. Эти конфиги нужны для сбоки swf. В конце таргеты для сборки под все платформы, для сборки под Android и для сборки под ios.

Переходим непосредственно к таргетам, которые делают всю работу. Начнём со сборки swf под Flash Player:

С помощью таска jar и компилятора ASC 2.0 собирается swf с заданными параметрами. Подгружается Flex конфиг и конфиг проекта, задётся флаг дебаг сбоки и версия swf (29 соответствует FP 18 и AIR 18) и  объявляются дополнительные параметры для условной компиляции. flashplayer = true, остальные — false. С помощью таска move готовый swf перемещается в папку для релизных билдов. Можно не подгружать конфиг проекта, а забить все параметры компилятора вручную.

Сборка под Android состоит из двух частей: компиляция swf и сборка apk.

В таргете —compile.for.android всё аналогично compile.for.player, только вместо Flex конфига подгружается AIR конфиг, а скомпилированный swf перемещается в папку bin. В таргете -make.android.apk собираются два apk для разных типов процессоров(armv7 и x86) и помещаются в папку для релизных сборок.

И для ios всё аналогично:

В панели проекта жмём правой кнопкой по файлу build.xml и выбираем пункт Add as Ant Build File, чтобы он появился в панели Ant (плагин Ant Panel):

02

Нажимает Run и ждём пару минут. Появится папка release с четырьмя файлами:

03

Логи и ошибки можно отслеживать в панели Output. Можно собирать как под все платформы одновременно, так и для каждой по отдельности.

На каждой платформе отображается свой текст:

04

 

Теперь при работе во FlashDevelop над особенностями для каждой платформы можно менять в свойствах проекта параметры компилятора.

Системы автоматизации позволяют очень гибко настраивать параметры сборки. Для примера возможно:

И всё это в одном проекте с одним кодом.

2100 Всего просмотров 5 Просмотров за сегодня
Опубликовано 17.08.2015 в 20:58 · Автор illuzor · Ссылка
Рубрики: Other · Теги: , , ,

Написать комментарий