Разрабатывайте и распространяйте приложения для iOS без Mac с помощью Flutter
Опубликовано: 2019-08-23Примечание от редактора: в Miquido мы поддерживаем сообщество любителей Flutter и всегда рады внести свой вклад в обмен знаниями в сети Flutter. Сегодня мы представляем гостевую статью от Codemagic, которая затронула тему разработки приложения для iOS с помощью Flutter и… без устройства macOS. Наслаждайтесь каждым кусочком!
В большинстве случаев приложения iOS разрабатываются и распространяются с компьютеров MacOS. Трудно представить разработку приложений для платформы iOS без macOS. Однако с помощью комбинации Flutter и Codemagic вы можете разрабатывать и распространять приложения для iOS без использования macOS. В нашем предыдущем посте мы объяснили процесс подписи кода приложений iOS без Mac. В этом посте мы подробно рассмотрим процесс разработки приложений Flutter для Linux и использование пользовательской/ручной подписи кода с помощью Codemagic, чтобы иметь полный контроль над подписью приложений на примере приложения Comagic-Demo.
Разработка приложений Flutter в Linux
Flutter — это кроссплатформенная среда разработки мобильных приложений, которая позволяет разрабатывать приложения для iOS и Android из одного и того же исходного кода. Однако собственные платформы Apple, используемые для разработки приложений iOS, не могут быть скомпилированы на других платформах, таких как Linux или Windows. Для собственных компонентов iOS требуется macOS или Darwin для разработки и распространения приложений iOS. Однако такие технологии, как Flutter, позволяют нам разрабатывать кроссплатформенные приложения для Linux или Windows, а затем мы можем распространять приложения в Google Play Store или Apple App Store с помощью решения Codemagic CI/CD.
Получение приложения Flutter в Linux
Приложения для Android можно создавать, тестировать и публиковать на платформе Linux. Мы можем воспользоваться этой функцией Android, чтобы включить разработку приложений Flutter в Linux. Наше приложение Flutter называется Comagic-Demo. Мы будем использовать это приложение, чтобы показать, как создавать приложения для Android и iOS в Linux. Однако имейте в виду, что мы можем разрабатывать только для Android на Linux, а не для iOS. Мы по-прежнему получим приложение для iOS, которое можно развернуть в App Store при разработке приложения для Android в Linux. Мы можем получить нашу Comagic-Demo для Linux разными способами.
Получить Linux-машину
Если у вас уже есть компьютер с установленным на нем Linux, то весь процесс прост. Вам просто нужно установить Android SDK и Flutter на машину с Linux. Как только мы клонируем приложение Comagic-Demo, мы сразу же можем начать над ним работать.
Создание контейнеров Docker
Еще один способ получить приложение Flutter в Linux — использовать Docker. Если вы знакомы с экосистемой Docker, вы можете создать Dockerfile с установленным Android SDK и Flutter. На Dockerhub есть много файлов Android Dockerfile, нам просто нужно расширить эти образы с помощью Flutter SDK. Давайте создадим простой файл Dockerfile, расширяющий пример образа докера Android, чтобы поместить среду Android и Flutter в контейнер Docker. Dockerfile должен скопировать приложение в контейнер и запустить среду Android Flutter. Пример Dockerfile для Comagic-Demo будет выглядеть так:
ИЗ runmymind/docker-android-sdk ЗАПУСК mkdir/codemagic-demo WORKDIR/codemagic-demo ДОБАВЛЯТЬ . /codemagic-демо RUN apt-получить обновление && \ apt-get install -y lcov git-core curl unzip && \ git клон https://github.com/flutter/flutter.git && \ /флаттер/бин/флаттер доктор && \ apt-get remove -y curl распаковать && \ apt autoremove -y && \ rm -rf /var/lib/apt/lists/* ПУТЬ ОКРУЖЕНИЯ $ ПУТЬ:/flutter/bin/cache/dart-sdk/bin:/flutter/bin БЕГИ флаттер доктор
Этот фрагмент кода предназначен только для иллюстрации, но вы можете настроить Dockerfile в соответствии со своими потребностями. После установки Dockerfile и Docker вы можете получить приложение Codemagic с помощью Docker.
$ docker build -t codemagic-demo . $ docker run --name codemagic-demo
Как только мы запустим эти команды, у нас будет запущен контейнер Docker со средой Flutter.
Докеризация приложений Futter будет отдельной темой, и мы подробно рассмотрим ее в следующем посте.
Генерация активов для подписи кода из App Store Connect
Чтобы подписывать приложения для iOS, вам потребуется учетная запись разработчика Apple, сертификат разработки и распространения, идентификатор вашего приложения и профили подготовки, созданные для приложения. Мы рассмотрели детали деятельности по подписанию кода в предыдущем посте. Чтобы настроить ручную подпись кода для разработки или отладки сборок iOS-приложений на Codemagic, нам потребуются следующие вещи:
- Сертификат разработки или распространения в формате .P12
- Загруженный профиль подготовки из App Store Connect или портала Apple Developer.
- Идентификатор пакета приложения iOS
Мы можем загрузить как сертификат, так и профили обеспечения из разделов Сертификаты, Идентификаторы и Профили на портале Apple Developer. в
Точно так же мы можем загрузить профили подготовки с портала разработчиков Apple.
Нам нужны как сертификат, так и профиль обеспечения для подписи кода нашего приложения iOS на Codemagic, поэтому сохраните эти файлы для последующего использования.
Обновление файлов проекта Xcode
Теперь у нас есть все ресурсы для подписи кода с портала Apple Developer. Затем нам нужно отсортировать файл проекта Xcode, чтобы использовать ручную подпись кода с правильной командой и профилем подготовки. Мы можем сделать это с помощью скрипта Ruby с помощью Xcodeproj Gem или просто изменить следующие поля в файле i os/YOUR_APP.xcodeproj/project.pbxproj .

- Команда разработчиков = YOUR_DEVELOPMENT_TEAM_ID
- ProvisioningStyle = Вручную
- PROVISIONING_PROFILE_SPECIFIER = ИМЯ_ВАШЕГО_PROVISIONING_PROFILE
В нашем приложении Codemagic-Demo нам нужно отредактировать файл проекта Xcode здесь, на GitHub. Мы должны обязательно внести эти изменения в конфигурацию отладки для внутренних сборок и в конфигурацию выпуска для сборок App Store. После того, как мы установили значения в project.pbxproj, мы готовы развернуть приложение iOS от Codemagic без каких-либо проблем.
Настройка ручной подписи кода в Codemagic
При разработке для Linux мы можем видеть только состояние приложения для Android, поскольку инструменты Xcode и iOS нельзя установить или запустить в Linux. В настоящее время предпринимаются некоторые усилия по внедрению инструментов Swift и iOS в Linux, но это займет много времени. Когда мы будем готовы распространять приложения, мы можем легко настроить CI/CD для приложения с помощью Codemagic, см. Руководство по началу работы здесь. В Codemagic мы можем включить подпись кода iOS в разделе «Публикация», загрузив сертификат и профиль подготовки, которые мы скачали с портала Apple Developer. В приложении Codemagic перейдите в « Настройки» → «Публикация» → «Подписание кода iOS» → «Вручную» и загрузите туда свой сертификат и профиль обеспечения.
Теперь, когда вы запустите сборку, вы получите приложение iOS в виде файла IPA, который можно развернуть на подготовленных устройствах. Список артефактов сборки на Codemagic будет выглядеть так:
Как видно из раздела « Артефакты », мы получили codemagic_demo.ipa , а также файлы dSYMs для отчетов о сбоях. Мы можем установить это приложение на любое устройство iOS, которое было добавлено в профиль обеспечения, и протестировать наше приложение iOS. Если мы увидим какие-либо ошибки, мы всегда можем вернуться в среду Linux и исправить эти ошибки.
Распространение приложения iOS в App Store
На данный момент мы создали отладочную версию приложения iOS для внутреннего тестирования. Аналогичным образом мы можем распространять приложение iOS в App Store. Когда мы будем готовы развернуть приложение в App Store, нам нужно собрать приложение в режиме выпуска . Мы можем сделать это, используя сертификат распространения и производственный профиль обеспечения. Аналогичным образом мы можем сгенерировать сертификат и профили. Но мы должны убедиться, что выбрали дистрибутив App Store при создании профиля обеспечения.
Профиль подготовки распространения будет запускать приложение iOS на любом устройстве, и нам не нужно явно добавлять устройства в профиль подготовки. Профиль обеспечения App Store будет выглядеть следующим образом:
Когда у нас есть сертификат распространения iOS и рабочий профиль подготовки , мы можем выбрать режим выпуска в Раздел сборки в Codemagic, как показано ниже.
Мы также установили аргументы сборки для выпуска вместо отладки. В разделе «Публикация» нам нужно загрузить сертификат распространения и производственный профиль подготовки, чтобы создать версию приложения для App Store.
Как только Codemagic сгенерирует артефакты сборки, мы сможем выполнить сборку в App Store Connect, ранее известном как iTunesConnect, следуя рекомендациям App Store, и отправить приложение на проверку.
Вывод
Благодаря сочетанию кроссплатформенной среды разработки мобильных приложений и волшебного решения CI/CD, такого как Codemagic, владение Mac для разработки приложений iOS вовсе не обязательно. Могут возникнуть некоторые проблемы с отладкой приложения при разработке для iOS, но вполне возможно разрабатывать и публиковать приложения iOS в App Store, используя комбинацию Flutter и Codemagic.
Хотите создать перспективное приложение для своего бизнеса?
Давайте работать вместе