1. Прежде чем начать
В этой лабораторной работе вы узнаете, как использовать Firebase App Distribution и его плагин fastlane для распространения приложения iOS среди тестировщиков, сбора UDID тестовых устройств и регистрации их в профиле обеспечения вашего приложения, чтобы вы могли быстро получать специальные сборки для тестировщиков. ' руки.
Что вы узнаете
- Как загрузить и распространить предварительную версию приложения iOS (Ad Hoc) среди тестировщиков с помощью Firebase App Distribution и fastlane .
- Как зарегистрироваться в качестве тестировщика и загрузить распространяемое приложение на тестовое устройство.
- Как быстро зарегистрировать тестовые устройства, экспортировав UDID тестовых устройств с помощью плагина fastlane App Distribution.
- Как обновить профиль обеспечения вашего приложения и повторно загрузить его для распространения.
Что вам понадобится
- Аккаунт Google
- Компьютер Apple с установленным XCode 11.7+.
- Предварительная версия специального приложения для iOS, созданного в Xcode.
- Платная учетная запись разработчика Apple.
- Физическое устройство iOS для тестирования.
Приложение симулятора iOS будет работать для большей части лаборатории кода, но симуляторы не могут загружать выпуски.
Вы по-прежнему можете убедиться, что установка работает, проверив, что кнопка «Загрузить» отображается в веб-приложении тестера распространения приложений.
2. Начните работу
Настройка скоростной полосы
App Distribution интегрируется с fastlane , чтобы вы могли автоматизировать распространение предварительных сборок вашего приложения. Распространение приложений интегрируется с вашей конфигурацией Fastlane .
- Установите и настройте fastlane .
- Запустите
fastlane init
в корневом каталоге вашего проекта во время установки и выберите «Настройка вручную». Вы увидите подкаталог под названиемfastlane
, содержащийFastfile
,Appfile
иPluginfile
, которые вы будете использовать для настройки fastlane .
Установите интерфейс командной строки Firebase
Вам также потребуется установить 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. Однако обычно вам нужно использовать sync_code_signing action
fastlane sync_code_signing (также известное как 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
- Наконец, создайте свое приложение, запустив Lane.
Вам будет предложено ввести Apple ID, пароль (который хранится в вашей связке ключей) и идентификатор пакета вашего приложения.
$ fastlane build
Если у вас возникнут какие-либо проблемы, обратитесь к руководству по устранению неполадок на полосе ускорения .
4. Загрузите свое приложение в Firebase.
Теперь, когда вы создали свое приложение, вы готовы загрузить его в App Distribution.
Создайте и настройте проект Firebase
- Войдите в Firebase.
- В консоли Firebase создайте или добавьте новый проект, а затем назовите его «UDID Export Codelab».
Вам не нужно включать Google Analytics для этого проекта.
- Нажмите Создать проект .
Добавьте свое iOS-приложение в проект
- Нажмите значок iOS, чтобы создать новое приложение Firebase для iOS, и введите идентификатор пакета вашего приложения.
- Пропустите следующие несколько шагов и нажмите « Продолжить работу с консолью» . Вы добавите SDK в свое приложение позже.
Ваш проект и приложение теперь доступны на странице «Обзор проекта» .
Включить распространение приложений
- В разделе «Выпуск и мониторинг» нажмите «Распространение приложений» .
- Приняв условия, нажмите «Начать», чтобы включить распространение приложений для вашего приложения.
Настройка раздачи в fastlane
- Запустите следующую команду из корня вашего проекта iOS, чтобы добавить распространение приложений в вашу конфигурацию 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. Пригласите тестировщиков загрузить ваше приложение.
Когда тестировщик принимает приглашение протестировать специальную сборку, у него запрашивается разрешение поделиться своим 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 на своем тестовом устройстве, чтобы получить доступ к выпускам приложений, которые вас пригласили протестировать. Поскольку ваша тестовая сборка является специальной версией, вам также необходимо зарегистрировать тестовое устройство, установив профиль Firebase. После этого к выпускам, которые станут вам доступны, можно будет получить доступ из веб-приложения тестера App Distribution с помощью веб-клипа, добавленного на главный экран вашего устройства.
- На тестовом устройстве iOS откройте электронное письмо, отправленное из Firebase App Distribution, и нажмите ссылку «Начать» . Обязательно откройте ссылку в Safari.
- Теперь вы находитесь в веб-приложении тестера распространения приложений. На появившейся странице войдите в свою учетную запись Google и нажмите «Принять приглашение».
- Теперь вы можете увидеть выпуски, на которые вас пригласили. Нажмите «Зарегистрировать устройство» под одним из выпусков.
- При появлении запроса загрузите профиль Firebase, а затем установите его в приложении «Настройки».
Установка профиля дает Firebase разрешение на:
- Зарегистрируйте тестовое устройство, получив уникальный идентификатор устройства (UDID).
Firebase отправляет всем владельцам и редакторам проекта Firebase электронное письмо, содержащее UDID тестового устройства.
- Установите веб-клип на главный экран тестового устройства. Веб-клип открывает веб-приложение тестера распространения приложений, которое позволяет вам установить и получить доступ ко всем вашим тестовым приложениям.
В веб-приложении тестера распространения приложений ваше тестовое устройство теперь зарегистрировано для выпуска вашего приложения.
Теперь, когда вы предоставили Firebase UDID своего тестового устройства, вы можете возобновить работу в качестве разработчика. На вкладке «Тестеры» информационной панели «Распространение приложений» информация о тестере теперь отображается под выпуском вашего приложения со статусом «Принято»:
В следующем разделе вы добавите 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. Поздравления
Теперь вы настроили Распространение приложений и Fastlane для автоматизации процесса предварительного тестирования. Теперь, когда вы захотите пригласить дополнительных тестировщиков или добавить их UDID в свое приложение, вам нужно будет запустить только одну команду: fastlane distribute
.
Таким образом, больше не нужно индивидуально собирать UDID от тестировщиков или обращаться к консоли разработчика Apple для обновления списков устройств или профилей подготовки. Вам даже не нужно открывать XCode!
Этот рабочий процесс легко настроить для ежечасного или ежедневного запуска в вашей среде непрерывной интеграции.
Дальнейшее чтение
- Изучите возможности Firebase App Distribution , включая встроенный в приложение SDK для iOS.
- Узнать больше о скоростной полосе
- Управляйте подписанием кода вашей команды с помощью
match
- Интегрируйте fastlane в свою CI