fbpx

Каталог статей

Каталог статей для размещения статей информационного характера

Как выучить

Тестирование iOS-приложений на macOS

Тестирование iOS-приложений на macOS

В этом документе описано, как настроить и настроить тестирование приложения для iOS с помощью CircleCI.

Обзор

CircleCI предлагает поддержку для создания, тестирования и развертывания проектов iOS на виртуальных машинах macOS. В каждом предоставляемом образе установлен набор общих инструментов, таких как Ruby и OpenJDK, а также версия Xcode. Для получения дополнительной информации о поставляемых образах обратитесь к манифесту программного обеспечения для каждого образа Xcode.

Поддерживаемые версии Xcode

Конфиг Версия Xcode Версия macOS Манифест программного обеспечения VM Примечания к выпуску
14.1.0 Xcode 14.1 (14B47b) 12.5.1 Установленное программное обеспечение

Поддерживаемые версии Xcode для класса ресурсов Dedicated Hosts приведены в таблице в документации Dedicated Hosts.

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

Выберите репозиторий проектов macOS, которые вы хотите собрать, на странице Projects веб-приложения CircleCI.

Мы настоятельно рекомендуем использовать Fastlane

для сборки и подписи ваших приложений в CircleCI. Fastlane требует минимальной конфигурации в большинстве случаев и упрощает процесс сборки-тестирования-развертывания.

Настройка проекта в Xcode

После настройки проекта на CircleCI вам нужно убедиться, что схема, которую вы собираетесь собирать с помощью Fastlane, отмечена как “общая” в вашем проекте Xcode. В большинстве новых проектов, созданных в Xcode, схема по умолчанию уже будет помечена как “общая”. Чтобы проверить это или открыть общий доступ к существующей схеме, выполните следующие действия:

  1. In Xcode, choose Product -> Scheme -> Управление схемами
  2. Выберите опцию “Shared” для схемы, к которой необходимо предоставить общий доступ, и нажмите Закрыть
  3. Убедитесь, что каталог myproject.xcodeproj/xcshareddata/xcschemes проверен в вашем Git-репозитории, и перенесите изменения.

Простые проекты должны запускаться с минимальной конфигурацией.

Использование Fastlane

это набор инструментов для автоматизации процесса сборки и развертывания мобильных приложений. Мы поощряем использование Fastlane в CircleCI, поскольку он упрощает настройку и автоматизацию процесса сборки, тестирования и развертывания. Кроме того, он обеспечивает паритет между локальными и CircleCI сборками.

Добавление Gemfile

Рекомендуется добавить Gemfile в ваш репозиторий, чтобы убедиться, что одна и та же версия Fastlane используется как локально, так и на CircleCI, и что все зависимости установлены. Ниже приведен пример простого Gemfile:

После того, как вы создали Gemfile локально, вам нужно будет запустить bundle install и проверить Gemfile и Gemfile.lock в вашем репозитории проекта.

Настройка Fastlane для использования в CircleCI

При использовании Fastlane в проекте CircleCI мы рекомендуем добавить следующее в начало вашего Fastfile :

Действие setup_circle_ci Fastlane должно находиться в блоке before_all для выполнения следующих действий:

  • Создать новый временный брелок для использования с Fastlane Match (подробнее см. раздел “Подписание кода”).
  • Переключите Fastlane Match в режим readonly, чтобы убедиться, что CI не создает новые сертификаты подписи кода или профили инициализации.
  • Настройте пути к журналам и результатам тестирования так, чтобы их можно было легко собрать.

Пример конфигурации для использования Fastlane на CircleCI

Базовая конфигурация Fastlane, которую можно использовать на CircleCI, выглядит следующим образом:

Эта конфигурация может быть использована со следующим конфигурационным файлом CircleCI:

Переменная окружения FL_OUTPUT_DIR – это каталог артефактов, где должны храниться журналы FastLane и подписанный .ipa файл. Используйте ее для задания пути в шаге store_artifacts для автоматического сохранения журналов и артефактов сборки из Fastlane.

Подписание кода с помощью Fastlane Match

Мы рекомендуем использовать Fastlane Match для подписания ваших iOS-приложений, поскольку он упрощает и автоматизирует процесс подписания кода как локально, так и в среде CircleCI.

Для получения дополнительной информации о том, как начать работу с Fastlane Match, пожалуйста, ознакомьтесь с нашей документацией по подписанию кода iOS.

Использование Ruby

Наши образы macOS содержат несколько версий Ruby. По умолчанию во всех образах используется системная версия Ruby. Образы также включают последние стабильные версии Ruby на момент создания образа. Мы определяем стабильные версии Ruby, используя страницу загрузки Ruby-Lang.org

. Версии Ruby, установленные в каждом образе, перечислены в манифестах программного обеспечения каждого контейнера.

Если вы хотите запустить шаги с версией Ruby, которая указана в манифесте как “доступная для chruby”, то вы можете использовать chruby.

Установка gems с системным Ruby не рекомендуется из-за ограничительных разрешений, наложенных на системные каталоги. Как правило, CircleCI советует использовать для работы один из альтернативных Ruby, предоставляемых Chruby (настроенный по умолчанию во всех образах).

Переключение Rubies с помощью macOS orb

Использование официальной macOS orb (версия 2.0.0 и выше) – самый простой способ переключения Rubies в заданиях. Она автоматически использует правильную команду переключения, независимо от того, какой образ Xcode используется.

Чтобы начать работу, включите orb в верхнюю часть вашего конфига:

Затем вызовите команду switch-ruby, указав номер нужной версии. Например, чтобы перейти на Ruby 2.6:

Замените 3.0 на требуемую версию из файла Software Manifest. Вам не нужно указывать полную версию Ruby, например, 3.0.2, только основную версию. Это гарантирует, что ваша конфигурация не сломается при переходе на новые образы, которые могут иметь более новые версии Ruby.

Чтобы переключиться обратно на Ruby по умолчанию (Ruby, поставляемый Apple с macOS), укажите версию как system :

Переключение Ruby вручную

Чтобы перейти на другую версию Ruby, добавьте следующее в начало задания.

Замените 3.0 на требуемую версию Ruby – вам не нужно указывать полную версию Ruby, например, 3.0.2, только основную версию. Это гарантирует, что ваш конфиг не сломается при переходе на более новые образы, которые могут иметь более новые версии патча Ruby.

Чтобы вернуться к системной версии Ruby, добавьте следующее в начало задания:

Установка дополнительных версий Ruby

Примечание: Установка дополнительных версий Ruby отнимает много времени на выполнение задания. Мы рекомендуем делать это только в том случае, если вам необходимо использовать определенную версию, которая не установлена в образ по умолчанию.

Чтобы запустить задание с версией Ruby, которая не установлена по умолчанию, вы должны установить требуемую версию Ruby. Мы используем инструмент ruby-install

для установки требуемой версии. После завершения установки вы можете выбрать ее, используя соответствующую технику, описанную выше.

Использование пользовательских версий CocoaPods и других драгоценных камней Ruby

Чтобы убедиться, что версия CocoaPods, которую вы используете локально, также используется в ваших сборках CircleCI, мы предлагаем создать

Эти образы имеют установки NodeJS, управляемые nvm, и всегда будут поставляться с последней версией current и lts на момент создания образа. Кроме того, lts устанавливается в качестве версии NodeJS по умолчанию.

Информацию о версии установленного NodeJS можно найти в манифестах программного обеспечения для образа ] или выполнив nvm ls во время работы.

Чтобы установить текущую версию по умолчанию:

Чтобы вернуться к выпуску lts:

Чтобы установить определенную версию NodeJS и использовать ее:

Эти образы также совместимы с официальным CircleCI Node orb , который помогает управлять установкой NodeJS наряду с кэшированием пакетов.

Образы, использующие Xcode 12.5 и более ранние версии

Эти образы поставляются как минимум с одной версией NodeJS, установленной непосредственно с помощью brew .

Информация о версии установленного NodeJS может быть найдена в манифестах программного обеспечения для образа ].

Эти образы также совместимы с официальным CircleCI Node orb, который помогает управлять установкой NodeJS, устанавливая nvm , вместе с пакетами кэширования.

Использование Homebrew

предустановлен на CircleCI, поэтому вы можете просто использовать brew install для добавления практически любой зависимости, необходимой для завершения сборки. Например:

Также при необходимости можно использовать команду sudo для выполнения настроек вне Homebrew.

Настройка развертывания

После того, как приложение было протестировано и подписано, вы можете настроить развертывание в выбранном вами сервисе, например App Store Connect или TestFlight. Для получения дополнительной информации о развертывании в различных службах, включая примеры конфигураций Fastlane, ознакомьтесь с руководством по развертыванию приложений для iOS.

Устранение неполадок

Если вы столкнулись со сбоями сборки при выполнении заданий, ознакомьтесь с базой знаний нашего центра поддержки

для получения ответов на распространенные вопросы.

Следующие шаги

Смотрите GitHub-репозиторий circleci-demo-ios

Помогите сделать этот документ лучше

Это руководство, как и остальные наши документы, с открытым исходным кодом и доступно на GitHub.

Мы приветствуем ваш вклад.

Нужна поддержка?

  • Наши инженеры поддержки готовы помочь в решении проблем с обслуживанием, выставлением счетов или вопросов, связанных с учетными записями, а также помочь в устранении неполадок в конфигурации сборки. Свяжитесь с нашими инженерами поддержки, открыв тикет.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *