• 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
Wednesday, October 7, 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

    Washington state man charged with helping Canadian mass shooter plan for attack

    Border Security, Public Safety, and American Sovereignty with Markwayne Mullin

    Students injured as NJ high school bleachers collapse in scary scene

    California man in incest case busted in Mexico; teen daughter rescued

    Cornell president calls gang rape allegations ‘deeply disturbing’ : NPR

    France’s violent student protests raise warning for America: ‘A cautionary tale’

    Birmingham’s WBHM Public Radio Station Forced to Use “Gulf of America”

    Eminem gets online backlash from fans over Kid Rock Christian album collab

    Trump leans into Iran war, admits it could cost Republicans the midterms

  • 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

    Washington state man charged with helping Canadian mass shooter plan for attack

    Border Security, Public Safety, and American Sovereignty with Markwayne Mullin

    Students injured as NJ high school bleachers collapse in scary scene

    California man in incest case busted in Mexico; teen daughter rescued

    Cornell president calls gang rape allegations ‘deeply disturbing’ : NPR

    France’s violent student protests raise warning for America: ‘A cautionary tale’

    Birmingham’s WBHM Public Radio Station Forced to Use “Gulf of America”

    Eminem gets online backlash from fans over Kid Rock Christian album collab

    Trump leans into Iran war, admits it could cost Republicans the midterms

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

Неперервна інтеграція (CI) та неперервна доставка (CD) на iOS із Codemagic

by Theinsightpost
August 6, 2022
in Mobile
0 0
0
Неперервна інтеграція (CI) та неперервна доставка (CD) на iOS із Codemagic


Неперервна інтеграція та неперервна доставка iOS – ця інструкція дозволить вам почати розробку додатків на платформі iOS разом із Codemagic CI/CD. Оновлено в червні 2021.

Незважаючи на то, чи ви створюєте native iOS, Android, React Native чи Flutter додатки, ви можете використати Codemagic CI/CD. Хоча він не підтримує розробку нативних Android та iOS додатків, використовуючи UI, ви можете спокійно налаштувати Codemagic YAML файл для розробки нативних додатків. Завдяки першому оновленому воркфлову збірки, налаштування та розробка нативних додатків є більш плавною ніж раніше.

У цій статті ви дізнаєтесь, як використовувати codemagic.yaml файл для розробки, тестування та доставки нативних iOS додатків на Codemagic.

Ми рекомендуємо прочитати цю статтю для кращого розуміння всіх процесів, але якщо у вас уже є досвід використання файлу codemagic.yaml ви можете перейти до YAML прикладів розробки нативних iOS проектів – сюди.

Написано Souvik Biswas

Розпочнемо

Переконайтеся, що ваш нативний iOS проект завантажений на хостингову платформу (таку, як GitHub, Bitbucket або GitLab), використовуючи систему контролю версії. Для отримання прикладу codemagic.yaml файлу дотримуйтесь кроків, приведених нижче:

  1. Авторизуйтеся в Codemagic. Якщо ви ще не зареєстровані, тоді зареєструйтеся:

Розпочніть з Codemagic

  1. На сторінці Apps, виберіть Add application.

  2. Виберіть Git пройдена або додайте репозиторій, який ви хочете використати:

  3. Натисніть Next: Authorize integration, щоб авторизувати Codemagic. Якщо ви вже авторизували вибраного Git провайдера, тоді натисніть Next: Select repository.

    Якщо ви використовуєте GitHub у якості свого Git провайдера, то перед вибором репозиторія є ще один крок, натисніть Install GitHub App, щоб налаштувати інтеграцію. Тут ви можете дізнатися більше про налаштування інтеграції GitHub додатків.

  4. Тепер виберіть свій репозиторій (або додайте URL-адресу клонування), тип проекту та натисніть Finish: Add application:

  5. Ви перейдете в секцію налаштування проекту. Так як ви ще не додали файл codemagic.yaml до вашого проекту, ви побачите повідомлення No configuration file found.

    Ви також побачите декілька посилань на документацію, яка допоможе вам розпочати роботу над вашим iOS проектом, використовуючи codemagic.yaml.

Приклади воркфлов iOS

Далі наведено простий приклад файлу codemagic.yaml для генерації дебаг (непідписаних .app) збірки iOS додатків:

workflows:
  ios-project-debug: # workflow ID
    name: iOS debug # workflow name
    environment:
      xcode: latest
      cocoapods: default
      vars:
          XCODE_PROJECT: "BMI Calculator.xcodeproj" # <-- Put the name of your project here. 
          XCODE_SCHEME: "BMI Calculator" # <-- Put the name of your scheme here.
    scripts:
      - name: Run tests
        script: |
          xcodebuild 
          -project "$XCODE_PROJECT" 
          -scheme "$XCODE_SCHEME" 
          -sdk iphonesimulator 
          -destination 'platform=iOS Simulator,name=iPhone 12,OS=14.1' 
          clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO          
      - name: Build debug app
        script: |
          xcodebuild build -project "$XCODE_PROJECT" 
          -scheme "$XCODE_SCHEME" 
          CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO          
    artifacts:
      - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.app
    publishing:
      email:
        recipients:
          - sbis1999@gmail.com

У наведеному вище прикладі, ios-project-debug це workflow ID, а iOS debug це workflow name. Ви можете змінити ці дві назви на ті, які підходять вашому проекту.

Глибоке занурення в YAML

Давайте детальніше розглянемо codemagic.yaml файл.

Змінні середовища

Вам потрібно визначити назву ваших Xcode проекту та Xcode схеми у секції змінних середовища YAML файлу. У наведеному вище прикладі ми задали їм назви XCODE_PROJECT та XCODE_SCHEME. respectively. Ці змінні вам будуть потрібні під час визначення команд збірки.

Скрипти

Для запуску UI тестів на iOS потрібно визначити наступний скрипт у codemagic.yaml файлі:

xcodebuild 
  -project "$XCODE_PROJECT" 
  -scheme "$XCODE_SCHEME" 
  -sdk iphonesimulator 
  -destination 'platform=iOS Simulator,name=iPhone 12,OS=14.1' 
  clean build test CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO

Прапорець -destination визначає симуляторний девайс, на якому слід запускати тести.

Якщо хочете вказати Xcode workspace name, ви також можете використовувати прапорець -workspace замість -project.

Для генерації .app файлу, розробляйте додаток в дебаг режимі:

xcodebuild build -project "$XCODE_PROJECT" 
  -scheme "$XCODE_SCHEME" 
  CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO

Артифакти

Ви можете отримати згенерований .app файл, додавши його шлях під artifacts. Зазвичай шлях виглядає так:

artifacts:
  - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.app

Публікація

Щоб отримати звіт розробки разом зі сформованими артефактами у вашому емейлі, вкажіть наступне:

publishing:
  email:
    recipients:
      - name@example.com # enter your email id here

Щоб отримати додаткову інформацію про публікацію перейдіть сюди.

Налаштування підписання коду для iOS додатків

Для генерування .ipa файлу, вам потрібно налаштувати підпис коду. Зробити підписання коду iOS додатків можна двома способами – автоматичним та ручним. Спочатку ми розглянемо процес автоматичного підписання коду.

Якщо ви хочете просто згенерувати .ipa файл для особистого використання, ви можете скористатися iOS Development Certificate. Щоб опублікувати свій додаток на App Store Connect, потрібно використати iOS Distribution Certificate.

Автоматичне підписання коду

Передумовами автоматичного підписання iOS коду є:

  1. Бути учасником Apple Developer Program
  2. Мати адміністраторський доступ до App Store Connect

Вам потрібно налаштувати API доступ до App Store Connect, щоб дозволити Codemagic керувати сертифікатами підписання та профілями забезпечення від вашого імені, а також виконувати автоматичне підписання коду.

Створення App Store Connect API ключа

  1. Увійдіть до App Store Connect і перейдіть до Users and Access > Keys.

  2. Натисніть на значок “+”, щоб сформувати новий API ключ

  3. Дайте назву ключу та визначте рівень доступу. Ми рекомендуємо вибрати Developer або App Manager.

    Читайте більше про Apple Developer Program дозволи, які надаються кожній з ролей тут.

  4. Натисніть Generate.

  5. Після генерування ви побачите, що новий ключ додався до списку активних ключів. Тепер натисніть Download API Key, щоб зберегти закритий ключ для подальшого використання.

    Увага: Ключ можна завантажити лише один раз.

Ви також повинні звернути увагу на Issuer ID та Key ID згенерованого ключа, оскільки вони будуть обов’язкові під час інтеграції Codemagic.

Тепер, для того, щоб ви могли використовувати автоматичне підписання коду для вашої розробки – вам потрібно модифікувати codemagic.yaml файл.

Модифікація YAML

Спочатку потрібно додати у середовище ще кілька змінних у зашифрованому форматі:

environment:
  vars:
    XCODE_WORKSPACE: "swiftly.xcworkspace" # <-- Put the name of your workspace here
    XCODE_SCHEME: "swiftly" # <-- Put the name of your scheme here
    # Add the following
    BUNDLE_ID: "io.codemagic.swiftly" # <-- Put your bundle ID here
    APP_STORE_CONNECT_ISSUER_ID: Encrypted(...) # <-- Put your encrypted App Store Connect Issuer ID here 
    APP_STORE_CONNECT_KEY_IDENTIFIER: Encrypted(...) # <-- Put your encrypted App Store Connect Key Identifier here 
    APP_STORE_CONNECT_PRIVATE_KEY: Encrypted(...) # <-- Put your encrypted App Store Connect Private Key here 
    CERTIFICATE_PRIVATE_KEY: Encrypted(...) # <-- Put your encrypted Certificate Private Key here 
  • APP_STORE_CONNECT_KEY_IDENTIFIER це Key ID вашого ключа. Ви можете отримати його перейшовши до App Store Connect > Users and Access > Keys.

  • APP_STORE_CONNECT_ISSUER_ID це Issuer ID, що відображається над таблицею активних ключів. Ви можете отримати його, перейшовши до App Store Connect > Users and Access > Keys.

  • APP_STORE_CONNECT_PRIVATE_KEY це приватний API ключ, який ви раніше завантажили з App Store Connect.

  • CERTIFICATE_PRIVATE_KEY може бути сформований наступною командою в терміналі:

    ssh-keygen -t rsa -b 2048 -m PEM -f ~/Desktop/codemagic_private_key -q -N ""
    

Тепер, для виконання підписання коду, вам потрібно додати кілька нових скриптів всередині scripts розділу.

  1. Ініціалізуйте keychain для підписання коду, використовуючи Codemagic CLI keychain команду:

    - name: Set up keychain
      script: |
            keychain initialize
    
  2. Завантажте сертифікат підписання з App Store Connect:

    - name: Fetch signing files
      script: |
            app-store-connect fetch-signing-files $BUNDLE_ID --type IOS_APP_STORE --create
    
  3. Додайте новий сертифікат підписання в keychain:

    - name: Use system default keychain
      script: |
            keychain add-certificates
    
  4. Використайте сертифікат підписання у проекті Xcode:

    - name: Set up code signing settings on Xcode project
      script: |
            xcode-project use-profiles
    
  5. Використайте наступну команду, щоб автоматично збільшити номер розробки:

    - name: Increment build number
      script: |
        #!/bin/sh
        set -e
        set -x
        cd $CM_BUILD_DIR
        agvtool new-version -all $(($BUILD_NUMBER + 1))    
    
  6. Згенеруйте .ipa файл:

    - name: Build ipa for distribution
      script: |
            xcode-project build-ipa --workspace "$XCODE_WORKSPACE" --scheme "$XCODE_SCHEME"
    

Змініть шлях для отримання артефактів:

artifacts:
  - build/ios/ipa/*.ipa
  - $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.dSYM

Ви можете знайти цілий приклад codemagic.yaml файлу для автоматичного підписання iOS коду тут.

Ручне підписання коду

Для ручного підписання коду вам знадобляться два файли:

  • Сертифікат (certificate)
  • Профіль забезпечення (provisioning profile)

Якщо ви хочете згенерувати .ipa файл для особистого використання, ви можете скористатися iOS Development Certificate.

Щоб опублікувати свій додаток на App Store Connect, потрібно скористатися iOS Distribution Certificate. Щоб дізнатися більше, ви можете перейти за цим посиланням.

Генерування сертифіката та профілю забезпечення

Для отримання сертифікату розробки iOS та профілю забезпечення, виконайте наступні дії:

  1. Відкрийте Xcode.

  2. З навігаційної панелі перейдіть до Xcode > Preferences.

  3. У верхньому меню виберіть Accounts.

  4. Під своїм Apple ID виберіть Team, для якої ви хочете отримати сертифікат.

  5. Виберіть Manage Certificates.

  6. Натисніть правою кнопкою мишки на Development Certificate та виберіть Export Certificate.

  7. Введіть назву сертифіката, пароль та його шлях для зберігання.

  8. Для генерації provisioning profile натисніть Download Manual Profiles.

    Це збереже профіль у каталозі ~/Library/MobileDevice/Provisioning Profiles/

Модифікація YAML

Вам потрібно додати certificate та provisioning profile у зашифрованій формі як пару ключ-значення до секції змінних середовища codemagic.yaml файлу.

environment:
  vars:
    XCODE_WORKSPACE: "swiftly.xcworkspace" # <-- Put the name of your workspace here. 
    XCODE_SCHEME: "swiftly" # <-- Put the name of your scheme here.
    # Add the following
    CM_CERTIFICATE: Encrypted(...) # <-- Put your encrypted distribution certificate here. 
    CM_CERTIFICATE_PASSWORD: Encrypted(...) # <-- Put your encrypted distribution certificate password here.
    CM_PROVISIONING_PROFILE: Encrypted(...) # <-- Put your encrypted provisioning profile here.

Оновіть розділ scripts наступним чином:

  1. Ініціалізуйте keychain, таким чином, щоб для підписання коду використовувалася команда Codemagic CLI keychain:

    - name: Set up keychain
      script: |
            keychain initialize
    
  2. Налаштуйте профіль забезпечення:

    - name: set up provisioning profiles
      script: |
        PROFILES_HOME="$HOME/Library/MobileDevice/Provisioning Profiles"
        mkdir -p "$PROFILES_HOME"
        PROFILE_PATH="$(mktemp "$PROFILES_HOME"/$(uuidgen).mobileprovision)"
        echo ${CM_PROVISIONING_PROFILE} | base64 --decode > $PROFILE_PATH
        echo "Saved provisioning profile $PROFILE_PATH"    
    
  3. Додайте сертифікат до keychain:

    - name: Add signing certificate to keychain
      script: |
        echo $CM_CERTIFICATE | base64 --decode > /tmp/certificate.p12
        keychain add-certificates --certificate /tmp/certificate.p12 --certificate-password $CM_CERTIFICATE_PASSWORD    
    
  4. Для автоматичного збільшення номера розробки, використовуйте наступне:

    - name: Increment build number
      script: |
        # increment build number
        #!/bin/sh
        set -e
        set -x
        cd $CM_BUILD_DIR
        agvtool new-version -all $(($BUILD_NUMBER +1))    
    
  5. Використовуйте сертифікат підписання у Xcode проекті:

    - name: Set up code signing settings on Xcode project
      script: |
            xcode-project use-profiles
    
  6. Генеруйте .ipa файл:

    - name: Build .ipa
      script: |
            xcode-project build-ipa --workspace "$XCODE_WORKSPACE" --scheme "$XCODE_SCHEME"
    

Ви можете знайти цілий приклад codemagic.yaml файлу для ручного підписання iOS коду тут.

Реліз на App Store Connect

Codemagic дозволяє автоматично публікувати програми iOS у App Store Connect. Для включення автоматичної публікації, вам знадобиться ще одна річ: app-specific password.

Генерування app-specific passwords

Ви можете згенерувати app-specific password, виконавши наведені нижче дії:

  1. Увійдіть у свій Apple ID аккаунт.

  2. Прокрутіть вниз до розділу Security та натисніть Generate Password під App-Specific Passwords.

  3. Вам потрібно буде дати назву додатку, і тоді пароль буде сформовано.

  4. Скопіюйте та вставте його в codemagic.yaml файл.

Налаштування авто-публікації на Codemagic

Для автоматичного публікування вашого додатка на App Store Connect за допомогою Codemagic, виконайте наведені нижче дії:

  1. Перейдіть до файлу codemagic.yaml всередині каталогу проекту.

  2. Усередині розділу publishing YAML файлу ви можете додати підтримку App Store Connect, використовуючи наступне:

    publishing:
     app_store_connect:
       apple_id: appleId@example.com # <-- Put your Apple ID here    
       password: Encrypted(...) # <-- Put your encrypted app-specific password here
    

    Зашифруйте app-specific password, перш ніж визначати його тут.

Ви успішно завершили налаштування воркфлову для створення та розгортання власного iOS додатка.

Збірка на Codemagic

Перш ніж розпочати розробку на платформі Codemagic, переконайтеся, що ви закомітили codemagic.yaml файл на контрольній системі версій.

Виконайте наведені нижче дії, щоб розпочати збірку:

  1. Перейдіть до налаштувань проекту та натисніть Start your first build.

  2. Виберіть воркфлов та натисніть Start new build.

Це розпочне нову збірку вашого нативного iOS проекту.

Вітання! Ваша перша збірка iOS на Codemagic CI/CD завершена! ?

Висновок

Використання codemagic.yaml файлу дає вам додаткову перевагу, оскільки це значно полегшує управління вашими робочими процесами та покращує конфігурацію збірки. Крім того, він автоматично виявляється системою контролю версій при запуску на Codemagic.

Корисні посилання


Сувік Бісвас завзятий розробник мобільних додатків (Android та Flutter). Протягом своєї кар’єри він працював над багатьма мобільними додатками. Він любить завантажувати корисні речі на GitHub (платформу з відкритим кодом), а також писати статті для Medium – Flutter Community. В даний час Сувік вчиться в галузі комп’ютерних наук та техніки в індійському університеті інформаційних технологій.



Source link

ShareTweetSend
Previous Post

Furor Over Documenta Highlights a Widening Chasm in Germany

Next Post

Three grain ships due to leave Ukraine on Friday

Related News

Mobile

Android Developers Blog: Device Streaming and Android skills

October 6, 2026
Mobile

Samsung confirms broad SmartTag 3 Android support

October 5, 2026
Mobile

How Can Software Consulting Company Benefit Your Business?

October 4, 2026
Mobile

Injection Molding Cost Estimation: How AI Delivers ROI

October 4, 2026
Next Post
Three grain ships due to leave Ukraine on Friday

Three grain ships due to leave Ukraine on Friday

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

      Boxing legend Mike Tyson talks going to juvie and trading cigarettes for cookies as a young boy

      October 7, 2026

      Hogbetsotso 2026 to promote tourism, local businesses

      October 7, 2026

      Mikel Arteta’s new contract: The challenges facing Arsenal boss as he enters ‘step five’ of his project | Football News

      October 7, 2026

      Spotify expands audiobooks to over 180 markets

      October 7, 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

      Clear examples do more than decorate an explanation: they show how an idea behaves under recognizable conditions. In education and software documentation alike, strong illustrations begin with a defined goal, then reveal the steps, assumptions, and result without unnecessary detail. A practical test example should state the input, expected output, and boundary condition, because these elements show whether a rule works beyond the simplest case. Including a contrasting case also helps readers distinguish a valid application from a tempting but incorrect one, while concise notes explain why the outcomes differ. When examples are updated with current data and checked against the underlying rule, they remain useful across classrooms, product guides, and professional training.