Как добавить Flutter в нативное приложение iOS и протестировать его на Codemagic (Часть 3)
Кто пропустил, вторая часть здесь. Она про реализацию экрана Flutter в приложение для iOS и использование platform channel для отправки данных из Native во Flutter.
И первая часть здесь. Она посвящена созданию приложения на iOS и интеграции Flutter в это приложение.
Чтобы ничего не пропускать, присоединяйтесь к нашему сообществу в телеграме Flutter. Много. Там мы с командой делимся своим опытом и разными полезными материалами.
Поехали!
Использование «Hot Reload» и «Hot Restart»
Чтобы использовать «Hot Reload» и «Hot Restart» в модуле Flutter в приложении iOS, выполните следующие действия:
- Запускаем следующую команду из каталога проекта Flutter:
flutter attach - Сразу же переходим в Xcode и запускаем приложение на устройстве, нажав кнопку «Run» в верхнем левом углу.
- Если посмотрим на Терминал, то заметим, что соединение установлено успешно, и теперь можно использовать «Hot Reload» и «Hot Restart» для модуля Flutter, работающего внутри приложения iOS.
Codemagic с использованием YAML
Для создания приложения iOS с модулем Flutter нужно использовать codemagic. yaml. Codemagic недавно объявила о поддержке YAML для создания и тестирования приложений iOS.
Далее показано, как определить правильный конвейер для создания и тестирования приложения iOS с модулем Flutter.
Загрузка YAML-файла
- Прежде всего, пушим код в VCS.
Добавляем содержимое корневой папки в VCS (включая как собственную папку iOS, так и папку модуля Flutter). - Переходим в интерфейс Codemagic и входим в систему.
- На панели приложений находим свой проект и переходим в его настройки.
4. Затем на правой боковой панели в разделе «Конфигурация как код» нажимаем «Загрузить конфигурацию». При этом создается codemagic. yaml с некоторыми конфигурациями по умолчанию.
5. После скачивания файла открываем его в редакторе кода.
Файл codemagic. yaml будет содержать конвейер для создания и тестирования приложения Flutter по умолчанию. Но чтобы использовать это для приложения iOS с модулями Flutter, нужно внести в него некоторые изменения.
Добавление переменных среды
Чтобы сгенерировать .ipa iOS, нужно настроить подпись кода для приложения.
Для подписи кода iOS необходимы два файла:
- Сертификат.
- Профиль настройки (Provisioning Profile).
В разделе переменных среды codemagic. yaml следует добавить сертификат и профиль обеспечения в зашифрованной форме в виде пар ключ-значение.
Итак, добавляем следующие ключи:
- CM_certificate (зашифрованная версия сертификата) .
- CM_certificate_password (зашифрованная версия пароля сертификата) .
- CM_provisioning_profile (зашифрованная версия профиля обеспечения) .
Создаем зашифрованную версию файлов/переменных, выполнив следующие действия:
- Переходим в настройки проекта из Codemagic UI.
- На правой боковой панели нажимаем «Зашифровать переменные среды».
Здесь можно перетащить файлы или ввести переменную, чтобы создать их зашифрованную версию.
Определение сценария
Рассмотрим сценарий сборки, объясняя его построчно.
Кроме того, поскольку у нас есть две папки: одна для встроенной iOS, а другая для модуля Flutter, нужно убедиться, что команды выполняются в правильной папке.
Итак, начнем.
– Получение пакетов Flutter
– Установка подфайла
– Инициализация связки ключей
– Декодирование профиля обеспечения и размещение его в папке, откуда к нему можно будет получить доступ при выполнении подписи кода.
– Расшифровка сертификата подписи и добавление его в связку ключей.
– Создаём только модуль Flutter (этот шаг нужен для создания некоторых файлов, необходимых собственному приложению iOS для получения модуля Flutter).
– Использование профиля и создание собственного приложения iOS с модулем Flutter для создания. ipa.
СОВЕТ: можно добавить этот флаг --disable-xcpretty, чтобы просматривать весь подробный вывод Xcode непосредственно в пользовательском интерфейсе Codemagic во время сборки.
Дополнительную информацию о параметрах конфигурации команды build-ipa можно получить здесь.
Получить сгенерированные артефакты
Чтобы получить .ipa после сборки, необходимо определить правильный путь к сгенерированному артефакту.
Перед запуском скрипта помещаем codemagic. yaml в корневой каталог проекта.
Запуск сценария сборки
- Переходим в свой проект из панели управления приложениями в Codemagic UI.
- Нажимаем «Начать новую сборку».
- Нажимаем «Выбрать рабочий процесс из codemagic. yaml».
4. Выбираем правильный рабочий процесс и нажимаем «Начать новую сборку».
Процесс сборки на Codemagic с использованием YAML успешно завершен.
Тестирование на Codemagic (с использованием YAML)
Выполнить любое тестирование Codemagic с использованием YAML очень просто.
Давайте добавим демонстрационный модульный тест в модуль Flutter.
Чтобы протестировать его на Codemagic CI/CD, нужно просто добавить еще одну строку в скрипт в codemagic. yaml.
Добавляем эту строку перед сборкой iOS:
Весь YAML- скрипт для этой сборки доступен здесь.
Заключение
Codemagic. yaml позволяет создать и протестировать собственное приложение для iOS с модулем Flutter на Codemagic CI/CD. Поддерживать файл YAML удобно: он регистрируется в VCS и автоматически обнаруживается Codemagic CI/CD во время сборки. С локальным доступом можно изменить его даже без подключения к Интернету.
Новые статьи-переводы, кейсы, опыт, обсуждения в нашем телеграм-канале Flutter. Много. Подписывайся!