• Home
  • Insight
  • Blog
  • Business
  • Entertainment
  • Health
  • Politics
  • Shop
    • Gift Shop
    • Value Shop
    • Store
    • Bargain Shop
    • Discount
  • Sports
  • Tech
  • Travel
  • USA
  • Video
  • World
    • Asia
    • Africa
    • South America
    • North America
    • Europe
    • Oceania
Thursday, July 30, 2026
No Result
View All Result
Subscribe Now
  • Home
  • Insight
  • Blog
  • Business
  • Entertainment
  • Health
  • Politics
  • Shop
    • Gift Shop
    • Value Shop
    • Store
    • Bargain Shop
    • Discount
  • Sports
  • Tech
  • Travel
  • USA
    TX Rep. Brandon Gill Mocks James Talarico Over Fauci Action Figure Post

    TX Rep. Brandon Gill Mocks James Talarico Over Fauci Action Figure Post

    NBA players are ‘being taught’ to flop

    NBA players are ‘being taught’ to flop

    Industry was warned for years about chemical ‘runaway’ dangers. Then came near-catastrophe in O.C.

    Industry was warned for years about chemical ‘runaway’ dangers. Then came near-catastrophe in O.C.

    Trump administration seeks government-wide NDAs to stop leaks : NPR

    Trump administration seeks government-wide NDAs to stop leaks : NPR

    Dog discharges shotgun inside truck, striking woman at Nebraska traffic light

    Dog discharges shotgun inside truck, striking woman at Nebraska traffic light

    Toshifumi Suzuki, Japan’s ‘God’ of Convenience Stores, Dies at 93

    Toshifumi Suzuki, Japan’s ‘God’ of Convenience Stores, Dies at 93

     Judge Sanctioned CoreCivic for Destroying Video in ICE Death Suit

     Judge Sanctioned CoreCivic for Destroying Video in ICE Death Suit

    Suspect dead after opening fire near White House security checkpoint, Secret Service says

    Suspect dead after opening fire near White House security checkpoint, Secret Service says

    Trump trashes Colbert’s high-rated finale as “no ratings”

    Trump trashes Colbert’s high-rated finale as “no ratings”

  • Video
  • World
    • Asia
    • Africa
    • South America
    • North America
    • Europe
    • Oceania
The Insight Post
  • Home
  • Insight
  • Blog
  • Business
  • Entertainment
  • Health
  • Politics
  • Shop
    • Gift Shop
    • Value Shop
    • Store
    • Bargain Shop
    • Discount
  • Sports
  • Tech
  • Travel
  • USA
    TX Rep. Brandon Gill Mocks James Talarico Over Fauci Action Figure Post

    TX Rep. Brandon Gill Mocks James Talarico Over Fauci Action Figure Post

    NBA players are ‘being taught’ to flop

    NBA players are ‘being taught’ to flop

    Industry was warned for years about chemical ‘runaway’ dangers. Then came near-catastrophe in O.C.

    Industry was warned for years about chemical ‘runaway’ dangers. Then came near-catastrophe in O.C.

    Trump administration seeks government-wide NDAs to stop leaks : NPR

    Trump administration seeks government-wide NDAs to stop leaks : NPR

    Dog discharges shotgun inside truck, striking woman at Nebraska traffic light

    Dog discharges shotgun inside truck, striking woman at Nebraska traffic light

    Toshifumi Suzuki, Japan’s ‘God’ of Convenience Stores, Dies at 93

    Toshifumi Suzuki, Japan’s ‘God’ of Convenience Stores, Dies at 93

     Judge Sanctioned CoreCivic for Destroying Video in ICE Death Suit

     Judge Sanctioned CoreCivic for Destroying Video in ICE Death Suit

    Suspect dead after opening fire near White House security checkpoint, Secret Service says

    Suspect dead after opening fire near White House security checkpoint, Secret Service says

    Trump trashes Colbert’s high-rated finale as “no ratings”

    Trump trashes Colbert’s high-rated finale as “no ratings”

  • Video
  • World
    • Asia
    • Africa
    • South America
    • North America
    • Europe
    • Oceania
No Result
View All Result
No Result
View All Result
Home Mobile

Непрерывная интеграция и доставка (CI/CD) на платформе Flutter с Codemagic

by Theinsightpost
August 7, 2022
in Mobile
0 0
0
Непрерывная интеграция и доставка (CI/CD) на платформе Flutter с Codemagic


Данное руководство содержит краткий обзор по сборке Flutter-приложений с помощью Codemagic CI/CD. Обновлено в июле 2021 г.

На конференции Flutter Live 2018 в Лондоне компания Nevercode в партнерстве с Google объявила о выходе CI/CD предназначенного для Flutter-приложений – CI/CD под названием Codemagic. С Codemagic вы можете тестировать и выпускать свои Flutter-приложения без каких-либо усилий, избежав процесса кофигурации.

Мы намного больше, чем просто эксперты по Flutter. Если вы хотите использовать все возможности CI/CD не только для Flutter-приложений, вы можете это сделать с помощью codemagic.yaml. В этом конфигурационном файле вы можете настроить сборку нативных приложений для Android и iOS, а также приложений созданных с React Native, Ionic и Cordova. Если вам необходим еще больший контроль, Codemagic позволяет запускать пользовательские скрипты и создавать собственные рабочие процессы для ваших приложений. Быстрая разработка высококачественных приложений стала еще лучше!

В этой статье вы узнаете, как создавать, тестировать и доставлять Flutter-приложения с Codemagic.

Начало работы

Убедитесь, что ваше Flutter-приложение загружено на платформу для хостинга IT-проектов (например, GitHub, Bitbucket или GitLab), используя систему контроля версий. Чтобы начать сборку приложения с помощью Codemagic CI/CD, сначала вам нужно зарегистрироваться. Это можно сделать используя GitHub, Bitbucket или GitLab учетную запись, либо используя электронную почту. Следуйте инструкциям ниже, чтобы получить доступ к своему проекту на Codemagic:

  1. Авторизируйтесь в Codemagic. Если вы еще не пользовались Codemagic, зарегистрируйтесь:

Зарегистрироваться

  1. На странице приложений нажмите Add application чтобы добавить приложение:

  2. Выберите Git-провайдера, где ваше приложение размещено (или выберите Other, если вы хотите добавить приложение, используя URL-адрес репозитория):

  3. Нажмите Next: Authorize integration, чтобы Codemagic мог видеть ваши репозитории. Если выбранный Git-провайдер уже авторизирован, нажмите Next: Select repository чтобы выбрать репозиторий с вашим приложением.

    Если вы используете GitHub, то перед выбором репозитория нужно сделать еще один шаг. Нажмите Install GitHub App чтобы начать интеграцию. Подробнее о настройке интеграций GitHub-приложений смотрите здесь.

  4. Теперь выберите нужный репозиторий (или добавьте URL-адрес, если вы используете Others) и тип проекта. Нажмите Finish: Add application чтобы завершить добавление приложения:

  5. Теперь вы в настройках проекта. По умолчанию будет выбрана вкладка Workflow Editor – Редактор рабочего процесса.

Вы можете настроить рабочие процессы для вашего Flutter-приложения используя Workflow Editor либо в конфигурационном файле codemagic.yaml.

Подробнее о редакторе рабочего процесса

Здесь мы покажем, как использовать редактор рабочего процесса, чтобы сконфигурировать рабочий процесс сборки и сгенерировать отладочные сборки (debug builds) для вашего Flutter-приложения.

С правой стороны вы найдете панель Workflow settings (Настройки рабочего процесса), на которой можете изменить имя рабочего процесса, установить максимальную продолжительность сборки, составить расписание сборок и многое другое. Вы также можете скачать файл конфигурации codemagic.yaml здесь.

ПРИМЕЧАНИЕ: Скачанный файл конфигурации может не полностью соответствовать настройкам, определенным в Редакторе рабочего процесса. Может потребоваться корректировка.
Подробнее о настройках рабочего процесса смотрите в документации.

Триггеры сборки

В разделе Builds triggers вы можете автоматизировать запуск своих сборок на Codemagic, указав триггеры сборки. Здесь вы можете настроить, когда какие события (отправка изменений в репозиторий (push), изменения в пулл-реквесте или создании тега) и на каких ветках запускают сборку.

Подробнее о триггерах сборки смотрите здесь.

Переменные среды

Вы можете хранить свои учетные данные, API-ключи или любого рода секретные файлы на Codemagic, указав их в разделе Environment variables (переменных среды). Поставьте галочку в графе Secure чтобы зашифровать данные.

Вы можете использовать множество стандартных переменных среды Codemagic, которые доступны только для чтения. Подробнее о них смотрите здесь.

Подробнее о добавлении переменных среды смотрите здесь.

Кеширование зависимостей

Вы можете ускорить сборку на Codemagic посредством кеширования зависимостей в разделе Dependency caching. Для начала, поставьте галочку в графе Enable dependency caching (Включить кеширование зависимостей). После этого укажите путь(и) к зависимостям, которые вы хотите кешировать.

Подробнее о кешировании зависимостей смотрите здесь.

Тестирование

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

Подробнее о тестировании Flutter-приложений на Codemagic смотрите здесь.

Сборка

В разделе Build вы можете настроить версию Flutter, Xcode и CocoaPods. Кроме того, в этом разделе вы можете определить путь к корню проекта и режим сборки (debug, release или profile).

Подробнее о сборке Flutter-приложений на Codemagic смотрите здесь.

Распрастранение

В разделе Distribution вы можете настроить подписание кода (code signing) и публикацию (publishing) для своего Flutter-приложения. Codemagic позволяет автоматически публиковать ваше приложение в различных сервисах, таких как Google Play Store, App Store Connect и Firebase App Distribution. Для публикации веб-приложения Flutter вы можете использовать удобные в обращении статические страницы Codemagic.

В зависимости от выбранных платформ сборки вам предлагаются разные варианты распространения.

Подробнее о различных вариантах распространения смотрите здесь.

Уведомления

В разделе Notifications вы можете настроить уведомления по электронной почте и в Slack.

Пользовательские скрипты

Вы можете определить собственные скрипты, нажав любую из кнопок «+», расположенных перед различными разделами редактора рабочего процесса. Пользовательские скрипты могут быть добавлены после клонирования репозитория, до и после тестирования, до и после сборки, до и после распространения.

Вы можете определять собственные скрипты на любом языке. (Язык можно выбрать с помощью строки shebang.) Например, если вы используете Firebase в своем проекте, то вам необходимо расшифровать секретные файлы Firebase перед сборкой приложения. Для этого добавьте следующий скрипт перед сборкой:

#!/usr/bin/env sh
set -e # exit on first failed command

echo $ANDROID_FIREBASE_SECRET | base64 --decode > $CM_BUILD_DIR/android/app/google-services.json
echo $IOS_FIREBASE_SECRET | base64 --decode > $CM_BUILD_DIR/ios/Runner/GoogleService-Info.plist

Подробнее о пользовательских скриптах смотрите здесь.

Подробнее о codemagic.yaml

Вы также можете настроить рабочий процесс Flutter с помощью файла codemagic.yaml. YAML-файл можно просмотреть, перейдя на вкладку codemagic.yaml. Если ваш YAML-файл находится в корне репозитория, он должен быть виден. Если это не так, то вы увидите ссылки на документацию по созданию этого YAML-файла.

Для лучшего понимания мы рекомендуем прочитать эту статью, но если у вас уже есть опыт использования файла codemagic.yaml, то здесь вы можете взять шаблон для Flutter-приложеия.

Пример рабочего процесса по сборке debug Android-приложения выглядит следующим образом:

workflows:
  simple-android-workflow:
    name: Simple Android Workflow
    instance_type: mac_mini
    max_build_duration: 60
    environment:
      flutter: stable
    scripts:
      - name: Set up debug keystore
        script: |
          rm -f ~/.android/debug.keystore
          keytool -genkeypair 
            -alias androiddebugkey 
            -keypass android 
            -keystore ~/.android/debug.keystore 
            -storepass android 
            -dname 'CN=Android Debug,O=Android,C=US' 
            -keyalg 'RSA' 
            -keysize 2048 
            -validity 10000          
      - name: Set up local properties
        script: echo "flutter.sdk=$HOME/programs/flutter" > "$CM_BUILD_DIR/android/local.properties"
      - name: Get Flutter packages
        script: flutter packages pub get
      - name: Build debug apk
        script: flutter build apk --debug
    artifacts:
      - build/**/outputs/**/*.apk
      - build/**/outputs/**/*.aab
      - build/**/outputs/**/mapping.txt
      - flutter_drive.log
    publishing:
      email:
        recipients:
          - name@gmail.com

Пример рабочего процесса по сборке debug iOS-приложения выглядит следующим образом:

workflows:
  simple-ios-workflow:
    name: Simple iOS Workflow
    instance_type: mac_mini
    max_build_duration: 60
    environment:
      flutter: stable
      xcode: latest
      cocoapods: default
    scripts:
      - name: Set up local properties
        script: echo "flutter.sdk=$HOME/programs/flutter" > "$CM_BUILD_DIR/android/local.properties"
      - name: Get Flutter packages
        script: flutter packages pub get
      - name: Install Podfiles
        script: find . -name "Podfile" -execdir pod install ;
      - name: Build debug iOS app
        script: flutter build ios --debug --no-codesign
    artifacts:
      - build/**/outputs/**/mapping.txt
      - build/ios/ipa/*.ipa
      - /tmp/xcodebuild_logs/*.log
      - flutter_drive.log
    publishing:
      email:
        recipients:
          - name@gmail.com

Далее мы рассмотрим основные разделы файла codemagic.yaml подробнее.

Переменные среды

В разделе environment вы можете определить учетные данные (в зашифрованном формате) и указать версии различных инструментов, таких как Flutter, Xcode, CocoaPods и т. д.

environment:
  flutter: stable
  xcode: latest
  cocoapods: default

Скрипты

В разделе scripts вы можете определить команды, которые будут использоваться в этом рабочем процессе.

Чтобы получить пакеты Flutter, используйте следующее:

- name: Get Flutter packages
  script: flutter packages pub get

Чтобы запустить Flutter анализ, можете использовать следующее:

- name: Flutter analyze
  script: flutter analyze

Flutter юнит-тесты можно запустить, используя:

- name: Flutter unit tests
  script: flutter test

Для сборки debug-версии приложения используйте следующее:

# Build debug Android .apk
- name: Build debug apk
  script: flutter build apk --debug
# Build debug iOS .app
- name: Build debug iOS app
  script: flutter build ios --debug --no-codesign

Артефакты

Вы можете получить сгенерированный файл .apk или .app, добавив путь к нему под artifacts. Обычно пути выглядят так:

# For Android
artifacts:
  - build/**/outputs/**/*.apk
  - build/**/outputs/**/*.aab
  - build/**/outputs/**/mapping.txt
  - flutter_drive.log
# For iOS
artifacts:
  - build/**/outputs/**/mapping.txt
  - build/ios/ipa/*.ipa
  - /tmp/xcodebuild_logs/*.log
  - flutter_drive.log

Публикация

Чтобы получить отчет о сборке вместе со сгенерированными артефактами по электронной почте, укажите следующее:

publishing:
  email:
    recipients:
      - name@example.com # ваш адрес электронной почты

Для получения дополнительной информации о публикации перейдите по этой ссылке.

Подписание кода

Чтобы опубликовать свое Android-приложение в Google Play Store или iOS/macOS-приложение в App Store Connect, вам необходимо подписать его код.

Для настройки подписания кода вы можете выполнить приведенные здесь шаги:

Если вы используете Редактор рабочего процесса, перейдите в раздел Publishing и настройте подписание кода для соответствующих платформ.

Если вы используете файл codemagic.yaml для создания release-сборок Flutter-проектов, то можете использовать следующие команды:

# For Android release build
- name: Build release APK with Flutter (automatic versioning)
  script: |
        flutter build apk --release --build-name=1.0.0 --build-number=$(($(google-play get-latest-build-number --package-name "$PACKAGE_NAME" --tracks="$GOOGLE_PLAY_TRACK") + 1))
# For iOS release build
- name: Build ipa with Flutter (automatic versioning)
  script: |
    flutter build ipa --release 
    --build-name=1.0.0 
    --build-number=$(($(app-store-connect get-latest-testflight-build-number "$APP_STORE_ID") + 1)) 
    --export-options-plist=/Users/builder/export_options.plist    

В этих командах используется несколько переменных среды. Чтобы узнать подробнее об этих командах перейдите по ссылкам на приведенные выше статьи о подписании кода.

Выпуск приложения

Codemagic позволяет автоматически публиковать Android-приложения в Google Play Store или iOS/macOS-приложения в App Store Connect.

Для выпуска своего приложения вы можете следовать шагам, приведенным в статьях ниже:

Ознакомьтесь с документацией по публикации Codemagic.

Сборка на Codemagic

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

Чтобы начать сборку следуйте инструкциям ниже:

  1. Войдите в настройки своего проекта. Если вы используете редактор рабочего процесса, убедитесь, что выбрали правильные платформы и машину, на которой будет запускаться сборка. Далее нажмите Start new build (начать новую сборку) или Start your first build (если вы запускаете впервые).

  2. Выберите рабочий процесс и нажмите Start new build.

Сборка вашего Flutter-проекта запущена.

Поздравляем! ? Ваша первая сборка Flutter на Codemagic CI/CD завершена!

Информация, которую следует иметь в виду, если вы создаете desktop-приложения:

  • macOS-приложения можно создавать только на машинах Mac
  • Linux-приложения можно создавать только на машинах Linux (платные минуты)
  • desktop и мобильные приложения нельзя создавать одновременно

Веб-хуки

Для автоматического запуска сборок в ответ на события вам необходимо настроить веб-хуки. Вы можете ознакомиться с инструкциями по настройке веб-хуков с помощью Codemagic здесь.

Вы можете получить URL-адрес, необходимый для добавления веб-хуков вручную, во вкладке Webhooks в настройках приложения. Кроме того, на этой странице в разделе Recent deliveries находится список всех сборок запущенных с помощью веб-хуков.

Заключение

Хотя Codemagic изначально разрабатывался как официальное CI/CD решение, предназначенное исключительно для Flutter-приложений, теперь он поддерживает любые мобильные проекты. С помощью магии Codemagic вы можете собирать, тестировать и публиковать Flutter-приложения избежав процесса конфигурации и запускать сборки в контролируемых средах, используя индивидуальные рабочие процессы. Если у вас есть нативное Android или iOS приложение, или React Native приложение, Codemagic всегда поможет вам. Просто используйте файл codemagic.yaml, и все будет готово для старта!

Успешных сборок!

Полезные ссылки

Stay updated with app development news



Source link

ShareTweetSend
Previous Post

Clu Gulager, Rugged Character Actor of Film and TV, Dies at 93

Next Post

Azerbaijani Defense Ministry presents review of events of last week (VIDEO)

Related News

Announcing Codemagic Patch: an open-source CodePush rebuild for React Native
Mobile

Announcing Codemagic Patch: an open-source CodePush rebuild for React Native

July 30, 2026
React Native OTA Updates: What You Can (and Can’t) Deploy Over the Air
Mobile

React Native OTA Updates: What You Can (and Can’t) Deploy Over the Air

May 28, 2026
Your phone drawer hides an app designed to “exploit developing brains”
Mobile

Your phone drawer hides an app designed to “exploit developing brains”

May 27, 2026
iPhone 16 has a secret charging upgrade Apple didn’t even mention
Mobile

iPhone 16 has a secret charging upgrade Apple didn’t even mention

May 26, 2026
Next Post
Azerbaijani Defense Ministry presents review of events of last week (VIDEO)

Azerbaijani Defense Ministry presents review of events of last week (VIDEO)

Discussion about this post

Subscribe To Our Newsletters

    Customer Support


    1251 Wilcrest Drive
    Houston, Texas
    77042 USA
    Call-832.795.1420
    e-mail – news@theinsightpost.com

    Subscribe To Our Newsletters

      Categories

      • Africa
      • Africa-East
      • African Sports
      • American Sports
      • Arts
      • Asia
      • Australia
      • Business
      • Business Asia
      • Business- Africa
      • Canada
      • Defense
      • Education
      • Egypt
      • Energy
      • Entertainment
      • Europe
      • European Soccer
      • Finance
      • Germany
      • Ghana
      • Health
      • Insight
      • International
      • Investing
      • Japan
      • Latest Headlines
      • Life & Living
      • Markets
      • Mobile
      • Movies
      • New Zealand
      • Nigeria
      • Politics
      • Scholarships
      • Science
      • South Africa
      • South America
      • Sports
      • Tech
      • Travel
      • UK
      • USA
      • Weather
      • World
      No Result
      View All Result

      Recent News

      US Navy to overhaul torpedo stockpile under new two-war strategy

      US Navy to overhaul torpedo stockpile under new two-war strategy

      July 30, 2026
      Free Cloud Computing Course | AWS Re/Start Program 

      Free Cloud Computing Course | AWS Re/Start Program 

      July 30, 2026
      Thirty Years Later

      Thirty Years Later

      July 30, 2026
      Announcing Codemagic Patch: an open-source CodePush rebuild for React Native

      Announcing Codemagic Patch: an open-source CodePush rebuild for React Native

      July 30, 2026
      • Home
      • Advertise With Us
      • About Us
      • Corporate
      • Consumer Rewards
      • Forum
      • Privacy Policy
      • Social Trends

      Theinsightpost ©2026 | All Rights Reserved. Theinsightpost is an Elnegy LLC company, registered in Texas, USA

      Welcome Back!

      Login to your account below

      Forgotten Password?

      Retrieve your password

      Please enter your username or email address to reset your password.

      Log In

      Add New Playlist

      We are using cookies to give you the best experience on our website.

      You can find out more about which cookies we are using or switch them off in .

      No Result
      View All Result
      • Home
      • Insight
      • Blog
      • Business
      • Entertainment
      • Health
      • Politics
      • Shop
        • Gift Shop
        • Value Shop
        • Store
        • Bargain Shop
        • Discount
      • Sports
      • Tech
      • Travel
      • USA
      • Video
      • World
        • Asia
        • Africa
        • South America
        • North America
        • Europe
        • Oceania

      Theinsightpost ©2026 | All Rights Reserved. Theinsightpost is an Elnegy LLC company, registered in Texas, USA

      The Insight Post
      Powered by  GDPR Cookie Compliance
      Privacy Overview

      This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.

      Strictly Necessary Cookies

      Strictly Necessary Cookie should be enabled at all times so that we can save your preferences for cookie settings.

      Cookie Policy

      More information about our Cookie Policy