Когда вы разрабатываете мобильное приложение командой, очень часто бывает необходимость в общем сервере сборки. Такой сервер может пересобирать ваше приложение после каждого коммита в исходный код и даже сообщать тестерам и пользователям бета-версии о новых билдах. Есть немало способов создать такой сервер непрерывного развертывания, однако мы предпочитаем отдать этот процесс на сторону и использовать облачные сервисы там, где необходимо.
Представляем вам BuddyBuild — облачный сервис для сборки приложений под Android и iOS.
Начать работать с ним очень просто:
- Авторизуемся через GitHub, GitLab или другой подобный сервис
- Выбираем репозиторий с проектом, который нужно будет собирать в BuddyBuild
- Дальше BuddyBuild скачает исходный код и соберёт приложения для Android и iOS
Готовые приложения можно будет скачать и запустить на локальных устройствах, но можно настроить BuddyBuild на автоматическое распространение сборок среди бета-тестеров (аналогично функционалу Telerik AppManager или Microsoft HockeyApp, оба сервиса работают с NativeScript).
BuddyBuild пока не работает с проектами NativeScript прямо «из коробки», но у него имеется очень гибкая настраиваемая система сборки. Каждый билд получает свой чистый экземпляр сервера, поэтому у вас есть возможность настроить окружение так, как необходимо.
Есть три главных этапа, на которых вы можете запустить командный сценарий для настройки сборочного окружения:
- Post Clone (ПостКлонирование — после завершения импорта свежей версии вашего проекта из репозитория)
- Pre Build (ПредСборка — прямо перед началом сборки приложения)
- Post Build (ПостСборка — по окончании сборки)
Для приложений NativeScript нам нужно сделать два дополнительных действия до начала сборки:
- Установить NativeScript CLI
- Подготовить приложение к нативной сборке
Мы сделаем это, добавив этап “Post Clone” к нашему проекту, чтобы установился CLI из npm и запустилась команда tns prepare для генерации файлов для XCode или Gradle.
В корне проекта создайте новый файл buddybuild_postclone.sh. BuddyBuild найдёт этот файл и выполнит его содержимое в нужное время. Добавьте в этот файл следующее:
#!/usr/bin/env bash
# Install NativeScript CLI
echo "******** Install NativeScript CLI *************"
npm install -g nativescript
# NativeScript Ready
echo "******** NativeScript CLI Ready *************"
tns --version
# Prepare NativeScript Project
echo "******** Prepare NativeScript iOS Project *************"
tns prepare ios
Этот код настраивает окружение для сборки приложения под iOS. Если вам нужна поддержка обеих платформ, воспользуйтесь документацией по написанию скрипта сборки.
Комментарии в скрипте (после echo) добавлены для облегчения отладки. Вы получите после сборки полный вывод и в нём можно будет найти возможные ошибки.
Ещё скрины:
Ложка дёгтя
С небольшими проектами сборка в BuddyBuild очень проста — так, как мы её и описали. Но для проектов, включающих кучу плагинов всё может быть не так радужно — сборка таких приложений иногда просто не срабатывала, возможно, это поправят в скором времени.
Но несмотря на это, создание сервера сборки и непрерывного развёртывания никогда ранее не было настолько простым!
Возможно, вы пользуетесь своими инструментами для сборки, поделитесь своим опытом в комментариях 🙂
По материалам «Making NativeScript Work with BuddyBuild» by Todd Anglin
Разработчик: java, kotlin, c#, javascript, dart, 1C, python, php.
Пишите: @ighar. Buy me a coffee, please :).