Continuous Integration (CI) — это ключевая DevOps-практика, ускоряющая процесс разработки, обеспечивающая стабильность кода и предотвращающая ошибки ещё до попадания в продакшн. Практика непрерывной интеграции кода, при которой разработчики регулярно сливают изменения в общий репозиторий, а затем автоматически запускаются проверки, тесты и сборки.
CD — это логичное продолжение CI:
- Continuous Delivery автоматизирует подготовку к деплою, но требует ручного вмешательства;
- Continuous Deployment убирает этот шаг и автоматически разворачивает изменения в продакшн. Выбор зависит от проекта и бизнес-требований;
- Разработчик вносит изменения в коде локально;
- Изменения отправляются в удалённый репозиторий (GitHub, GitLab, Bitbucket и т. д.);
- CI-сервер автоматически запускает процесс сборки (сборка кода, линтинг, тестирование);
- Если сборка успешна, код можно развернуть на тестовый сервер или в продакшн (при использовании CD – Continuous Deployment);
- Если есть ошибки, CI-система может уведомляет разработчика (email, Slack, Telegram и др.);
Включает все компоненты приложения, включая скомпилированный код, ресурсы (изображения, файлы и т. д.), конфигурации, библиотеки и другие данные.
- Для iOS, например, это
.ipa
файл, который затем устанавливается на устройства; - Для андроид -
.apk
;
Bundle id - уникальный идентификатор вашего приложения среди всех существующих приложений в мире. Нет в мире приложения в двумя одинаковыми bundle id.
При создании bundle id можно указать возможности для приложения: Push Notification, Apple Pay, App group и тп.
Сущность подписки, которая связана с аккаунтом разработчика. Для iOS существует несколько типов сертификатов:
-
Development - нужен для того, чтобы можно было сбилдить и запустить дебаг-конфигурацию приложения из Xcode на реальном устройстве
-
Distribution - используется для подписания приложений, которые будут распространяться в App Store или через Ad Hoc distribution. Для каждого типа распространения (App Store, Enterprise, Ad Hoc) можно использовать один и тот же сертификат, если они принадлежат одному аккаунту разработчика.
❗ distribution сертификатов может быть максимум 3 штуки
Один сертификат Development и один сертификат Distribution можно использовать для подписки всех приложений в рамках аккаунта разработчика. Выпускаются на 1 год.
Профили - специальный файл, обеспечивающий доступ к некоторой функциональности в конкретной сборке вашего приложения
Профили настройки — это не сертификаты, но они тесно связаны с ними. Профиль настройки — связующее звено между конкретным приложением и конкретным сертификатом.
Они делятся на два типа:
- Development Provisioning Profile используется для разработки и тестирования приложения на устройствах;
- Distribution Provisioning Profile используется для распространения приложения через App Store или внутри компании. Каждое приложение должно быть подписано сертификатом и связано с соответствующим профилем, чтобы приложение могло быть установлено или распространено.
Вида дистрибуции профилей:
-
Development создается с помощьюdevelopment сертификат и профиля , что позволяет сбилдить приложение на реальном устройстве и дебажить;
-
Ad-hoc - экспортировать сборку в сервисы дистрибуции (н/р: Firebase), кроме TestFlight. Создается с помощью Distribution сертификат;
При подписке приложения Ad-hoc профилем, в этом профиле должны быть явно указаны UDID всех устройств, на которых будет возможно тестирование;
Максимальное количество устройств - 100, устройства берутся из списка устройств аккаунта разработчика;
-
App Store позволяет экспортировать сборку в TestFlight и далее в App Store. Создается с помощью Distribution сертификат;
При подписке приложения App Store профилем, UDID устройств указывать не требуется. Пользоваться приложением сможет любой, кто скачал его из TestFlight или App Store;
B TestFlight можно добавить до 100 внутренних тестировщиков (моментально получают сборки) и до 10000 внешних (получают сборки после ревью от Apple);
Валидный профиль и сертификат необходимы для того, чтобы в принципе иметь возможность сделать сборку. Если у вас нет валидного профиля и сертификата - вы не сможете создать сборку
При создании сборки в нее добавляется копия профиля, которым она была подписана. Поэтому даже если оригинал профиля станет невалидным или будет удален, сборка останется работоспособной
Инвалидация профилей приводит только к тому, что вы не можете создать новые сборки.
Инвалидация сертификата ведет себя по разному в зависимости от типа:
- Development и Ad-hoc - срок жизни сборки ограничен сроком жизни сертификата, приложенной к сборке. Инвалидация серта приведет к неработающим приложениям ;
- TestFlight - имеет срок жизни в 90 дней с момента выкладки. По истечении 90 дней ее невозможно будет скачать, а уже скачанные сборки перестанут работать;
- App Store - если приложение было выложено в App Store и затем скачано пользователем, приложение будет работать вечно, пока пользователь не удалит его самостоятельно;
Если вы часто используете проекты с автоматической подпиской Debug конфигураций, в определенный момент Xcode может отказаться билдить приложение на устройстве
Решение: зайти в Keychain и удалите руками указанный сертификат (на примере картинки это iPhone Distribution: ...
), после чего убейте Xcode и запустите заново. Xcode скачает валидный сертификат и профиль, после чего все будет работать.
Если вы сгенерировали новые сертификаты, первая сборка на любом компьютере потребует ввода пароля от этого компьютера (относится в т.ч. к С)
4.2.1.5 Debug Theme | Back To iOSWiki Contents | 4.2.2 Routing Theme Folder