1. Прежде чем начать
В этой лабораторной работе вы узнаете, как использовать Firebase App Distribution и его плагин Fastlane для распространения приложения iOS среди тестировщиков, сбора UDID тестовых устройств и регистрации их в профиле подготовки вашего приложения, чтобы вы могли быстро передавать сборки Ad Hoc в руки тестировщиков.
Чему вы научитесь
- Как загрузить и распространить предварительную версию приложения iOS (Ad Hoc) среди тестировщиков с помощью Firebase App Distribution и fastlane .
- Как зарегистрироваться в качестве тестировщика и загрузить распространяемое приложение на тестовое устройство.
- Как быстро зарегистрировать тестовые устройства, экспортировав UDID тестовых устройств с помощью плагина Fastlane от App Distribution.
- Как обновить профиль обеспечения вашего приложения и повторно загрузить его для распространения.
Что вам понадобится
- Аккаунт Google
- Устройство Apple с установленным XCode 11.7+
- Предварительная версия приложения iOS, созданная в Xcode
- Платный аккаунт разработчика Apple
- Физическое устройство iOS для тестирования.
Приложение-симулятор iOS будет работать для большей части кодовой лаборатории, но симуляторы не могут загружать релизы.
Вы по-прежнему можете убедиться в работоспособности настройки, проверив, что кнопка «Загрузить» отображается в веб-приложении тестировщика App Distribution.
2. Начните
Настройте скоростную полосу
App Distribution интегрируется с Fastlane , позволяя автоматизировать распространение предварительных сборок вашего приложения. App Distribution интегрируется с вашей конфигурацией Fastlane .
- Установите и настройте fastlane .
- Во время настройки запустите
fastlane init
в корневом каталоге проекта и выберите «Ручная настройка». Вы увидите подкаталогfastlane
, содержащий файлыFastfile
,Appfile
иPluginfile
, которые вы будете использовать для настройки fastlane .
Установите Firebase CLI
Вам также потребуется установить Firebase CLI . Если вы используете macOS или Linux, выполните следующую команду cURL:
curl -sL https://firebase.tools | bash
Если вы используете Windows, прочтите инструкции по установке , чтобы получить автономный двоичный файл или установить его через npm
.
После установки CLI запуск firebase --version
должен выдать версию 12.0.0
или выше:
$ firebase --version 12.0.0
3. Создайте свое приложение с помощью Fastlane
Создайте свое приложение
- Настройте глобальные переменные для Fastlane в файле
./fastlane/Appfile.
Укажите идентификатор вашего приложения и ваш Apple ID:
app_identifier("<your app's bundle identifier>")
apple_id("<your Apple id>")
- Создайте свою первую полосу и используйте действие
build_app
fastlane (также известное какgym
) для сборки своего приложения, добавив следующее в ваш./fastlane/Fastfile
:
default_platform(:ios)
lane :build do
build_app(export_method: "ad-hoc")
end
- Подпишите свое приложение для распространения.
В этой практической работе вы будете управлять своей сертификацией и профилем с помощью get_certificates
(также известной как cert
), которая генерирует сертификаты подписи локально и сохраняет все данные в вашей связке ключей macOS. Однако обычно для безопасного управления сертификатами и профилями подписи кода вашей команды используется действие fastlane sync_code_signing action
(также известное как match
).
lane :build do
get_certificates()
build_app(export_method: "ad-hoc")
end
- Настройте профиль подготовки для своего приложения с помощью действия
get_provisioning_profile
(также известного какsigh
). Это позволит вам поделиться своим приложением с тестировщиками.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
- [Необязательно] Если вы никогда ранее не запускали свое приложение, выполните следующую команду, чтобы создать свое приложение в консоли разработчика Apple:
$ fastlane produce --skip_itc
- Наконец, создайте свое приложение, запустив полосу.
Вам будет предложено ввести свой Apple ID, пароль (который хранится в вашей связке ключей) и идентификатор пакета вашего приложения.
$ fastlane build
Если у вас возникли какие-либо проблемы, ознакомьтесь с руководством по устранению неполадок Fastlane .
4. Загрузите свое приложение в Firebase.
Теперь, когда вы создали свое приложение, вы готовы загрузить его в App Distribution.
Создайте новый проект Firebase
- Войдите в консоль Firebase, используя свою учетную запись Google.
- Нажмите кнопку, чтобы создать новый проект, а затем введите имя проекта (например,
UDID Export Codelab
). - Нажмите «Продолжить» .
- При появлении соответствующего запроса ознакомьтесь с условиями Firebase и примите их, а затем нажмите кнопку «Продолжить» .
- (Необязательно) Включите помощь ИИ в консоли Firebase (так называемая «Gemini в Firebase»).
- Для этой лабораторной работы вам не понадобится Google Analytics, поэтому отключите опцию Google Analytics.
- Нажмите «Создать проект» , дождитесь завершения подготовки проекта, а затем нажмите «Продолжить» .
Добавьте свое iOS-приложение в проект
- Щелкните значок iOS, чтобы создать новое приложение Firebase для iOS, и введите идентификатор пакета вашего приложения.
- Пропустите следующие несколько шагов, затем нажмите «Продолжить в консоли» . Вы добавите SDK в своё приложение позже.
Ваш проект и приложение теперь доступны на странице обзора проекта .
Включить распространение приложений
- В разделе «Выпуск и мониторинг» нажмите «Распространение приложений» .
- После принятия условий нажмите «Начать», чтобы включить App Distribution для вашего приложения.
Настройте дистрибуцию в Fastlane
- Выполните следующую команду из корня вашего проекта iOS, чтобы добавить App Distribution в конфигурацию Fastlane .
Если команда запросит вариант, выберите Вариант 3: RubyGems.org :
$ fastlane add_plugin firebase_app_distribution
- Подтвердите, что плагин установлен:
$ fastlane
В результате в списке установленных плагинов должен появиться fastlane-plugin-firebase_app_distribution
.
- После подтверждения установки плагина выберите вариант 0 для отмены.
Аутентифицируйте свой проект Firebase
Чтобы использовать плагин Fastlane , вам сначала необходимо аутентифицировать свой проект Firebase.
- Выполните следующую команду, чтобы подключить CLI к вашей учетной записи Google:
$ firebase login
- Когда команда выведет ссылку для аутентификации, откройте ее в браузере.
- При появлении соответствующего запроса войдите в свою учетную запись Google и предоставьте разрешение на доступ к вашему проекту Firebase.
Распространяйте свое приложение
Теперь вы готовы распространять свое приложение.
- В верхней части файла
./fastlane/Fastfile
определите переменнуюfirebase_app_id
. Замените<your_app_id>
на идентификатор созданного вами приложения Firebase (его можно найти на странице настроек проекта ).
Fastfile
написан на Ruby, поэтому для определения переменных используйте синтаксис Ruby.
firebase_app_id = "<your_app_id>"
- Добавьте новую полосу с названием
distribute
, которая вызывает полосу сборки, а затем распространяет ваше приложение с помощью действияfirebase_app_distribution
.
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
- Запустите новую полосу для сборки вашего приложения и создания дистрибутива.
$ fastlane distribute
На этом этапе ваш Fastfile должен выглядеть следующим образом:
firebase_app_id = "<your Firebase app ID>"
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
)
end
После обновления консоли Firebase вы увидите новую версию своего приложения.
5. Пригласите тестировщиков загрузить ваше приложение.
Когда тестировщик принимает приглашение на тестирование сборки Ad Hoc, у него запрашивается разрешение на предоставление своего UDID. Если он согласен, App Distribution собирает информацию об устройстве и уведомляет вас по электронной почте. В этом разделе вы добавите себя в качестве тестировщика, чтобы загрузить и протестировать распространяемое вами приложение.
Добавьте себя в качестве тестировщика релиза
- В разделе
firebase_app_id
в верхней части файла Fastfile создайте переменную для хранения тестировщиков и укажите свой адрес электронной почты, а также другие дополнительные адреса электронной почты, которые вы хотели бы попробовать.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
- Примените метод Ruby Array#join , чтобы преобразовать массив
app_testers
в строку, разделённую запятыми, как того ожидает параметрtesters
. Затем передайте результат параметруtesters
объектаfirebase_app_distribution.
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!"
testers: app_testers.join(","),
)
end
На этом этапе ваш Fastfile должен выглядеть так:
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
testers: app_testers.join(","),
)
end
- Снова проедьте по полосе.
$ fastlane distribute
После запуска полосы добавленные вами тестировщики получат электронное письмо с приглашением от App Distribution, уведомляющее их о новом доступном релизе. В консоли Firebase теперь вы можете видеть добавленных вами тестировщиков в разделе релиза вашего приложения.
Поскольку вы указали свой адрес электронной почты, вы получите письмо от Firebase App Distribution с приглашением протестировать приложение. Теперь вы первый тестировщик! Продолжайте выполнять действия, описанные в разделе ниже, чтобы настроить тестировщика на вашем тестовом устройстве.
Зарегистрируйте свое тестовое устройство
Как тестировщику, вам необходимо войти в Google на тестовом устройстве, чтобы получить доступ к выпускам приложений, которые вас пригласили тестировать. Поскольку ваша тестовая сборка — это выпуск Ad Hoc, вам также необходимо зарегистрировать своё тестовое устройство, установив профиль Firebase. После этого доступ к выпускам, которые станут вам доступны, можно будет получить из веб-приложения App Distribution для тестировщиков, используя веб-клип, добавленный на главный экран вашего устройства.
- На тестовом устройстве iOS откройте письмо от Firebase App Distribution и нажмите на ссылку «Начать» . Убедитесь, что вы открываете ссылку в Safari.
- Теперь вы находитесь в веб-приложении App Distribution Tester. На открывшейся странице войдите в свою учётную запись Google и нажмите «Принять приглашение».
- Теперь вы можете видеть релизы, на которые вас пригласили. Нажмите «Зарегистрировать устройство» под одним из релизов.
- При появлении запроса загрузите профиль Firebase, затем установите его в приложении «Настройки».
Установка профиля дает Firebase разрешение на:
- Зарегистрируйте тестовое устройство, получив его уникальный идентификатор (UDID).
Firebase отправляет всем владельцам и редакторам проекта Firebase электронное письмо, включающее UDID тестового устройства.
- Установите веб-клип на главный экран тестового устройства. Веб-клип открывает веб-приложение App Distribution Tester, которое позволяет установить все тестовые приложения и получить к ним доступ.
В веб-приложении App Distribution для тестирования ваше тестовое устройство теперь зарегистрировано для выпуска вашего приложения.
Теперь, когда вы передали UDID своего тестового устройства в Firebase, вы можете продолжить работу в качестве разработчика. На вкладке «Тестировщики» панели управления App Distribution информация о вашем тестировщике теперь отображается под релизом вашего приложения со статусом «Принято»:
В следующем разделе вы добавите UDID устройства в профиль подготовки вашего приложения, а затем создадите версию вашего приложения, которая будет работать с вашим тестовым устройством.
Экспортируйте UDID вашего тестового устройства
Как разработчик, вы получите электронное письмо от Firebase с UDID тестового устройства. App Distribution также позволяет легко собрать сразу несколько UDID новых устройств, экспортируя их непосредственно из консоли Firebase в виде текстового файла.
- Чтобы экспортировать все UDID, откройте вкладку «Тестировщики и группы» .
- Нажмите Экспортировать Apple UDID .
Файл должен содержать UDID вашего тестового устройства.
Device ID Device Name Device Platform
1234567890 udid.codelab.tester@gmail.com - iPhone SE 2nd Gen ios
UDID также можно экспортировать из командной строки с помощью fastlane , что вы сделаете в следующем разделе.
6. Обновите профиль подготовки вашего приложения и перестройте его.
Теперь вам нужно добавить UDID вашего тестового устройства в профиль подготовки вашего приложения, перестроить версию вашего приложения, которая будет работать на вашем устройстве, и распространить новую версию.
Добавить экспортную полосу UDID
- Добавьте еще одну переменную в начало файла Fastfile и укажите в ней путь к файлу, куда будут загружены UDID устройств ваших тестировщиков.
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
- Настройте новую полосу, которая использует действие экспорта UDID плагина App Distribution для загрузки UDID тестировщиков, так же, как вы это делали из консоли.
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
- Выполните следующую команду, чтобы загрузить UDID.
$ fastlane download_udids
- Распечатайте загруженный файл, который должен содержать UDID тестового устройства.
$ cat tester_udids.txt
Добавьте устройства в консоль разработчика Apple
- Создайте следующую полосу для добавления UDID в список устройств в консоли разработчика Apple, чтобы вы могли добавить их в свой профиль подготовки с помощью действия
register_devices
Fastlane :
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
- Затем пройдите по полосе:
$ fastlane add_new_devices
После этого вы увидите новые устройства в списке устройств консоли разработчика.
Добавьте устройства в свой профиль подготовки
- Добавьте аргумент
force
к шагу профиля подготовки на линииbuild
, чтобы заставить его выбирать новые устройства каждый раз при сборке.
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
Перезапустите полосу для сборки и загрузки
Теперь вам нужно обновить свою полосу distribute
, добавив новые полосы, чтобы добавить устройства в профиль обеспечения, заново собрать приложение, а затем распространить его.
- Назовите новые полосы движения из
distribute
:
lane :distribute do
download_udids
add_new_devices
build
firebase_app_distribution(
app: "1:123456789:ios:abcd1234",
release_notes: "Try out this app!"
testers: app_testers.join(","),
)
end
- Запустите
distribute
полосу:
$ fastlane distribute
На этом этапе ваш Fastfile должен выглядеть так:
firebase_app_id = "<your Firebase app ID>"
app_testers = [
"your@email.com",
"another@email.com",
]
tester_udids_file = "tester_udids.txt"
default_platform(:ios)
lane :build do
get_certificates()
get_provisioning_profile(adhoc: true, force: true)
build_app(export_method: "ad-hoc")
end
lane :distribute do
download_udids
add_new_devices
build
firebase_app_distribution(
app: firebase_app_id,
release_notes: "Try out this app!",
testers: app_testers.join(","),
)
end
lane :download_udids do
firebase_app_distribution_get_udids(
app: firebase_app_id,
output_file: tester_udids_file,
)
end
lane :add_new_devices do
register_devices(devices_file: tester_udids_file)
end
Загрузите релиз с тестового устройства
Теперь, когда ваше приложение включает UDID тестовых устройств, их можно установить на тестовые устройства.
- На тестовом устройстве вернитесь в веб-приложение App Distribution для тестирования, используя ссылку в электронном письме или значок на главном экране устройства.
При переходе в приложение UDID codelab вы увидите, что релиз готов к загрузке.
- Если вы используете физическое устройство, нажмите «Загрузить», затем установите и запустите приложение!
7. Поздравления
Вы настроили App Distribution и Fastlane для автоматизации процесса предварительного тестирования. Теперь, когда вы захотите пригласить дополнительных тестировщиков или добавить их UDID в приложение, вам нужно будет выполнить всего одну команду: fastlane distribute
.
Больше не нужно собирать UDID-идентификаторы у тестировщиков по отдельности или обращаться к консоли разработчика Apple для обновления списков устройств или профилей подготовки. Вам даже не нужно открывать XCode!
Этот рабочий процесс легко настроить для запуска ежечасно или ежедневно в среде непрерывной интеграции.
Дальнейшее чтение
- Изучите возможности Firebase App Distribution , включая наш встроенный SDK для iOS.
- Узнайте больше о Fastlane
- Управляйте подписанием кода вашей команды с помощью
match
- Интегрируйте Fastlane в свою CI