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 Developer
- Физическое устройство iOS для тестирования.
Приложение-симулятор iOS будет работать в большинстве лабораторий кода, но симуляторы не могут загружать выпуски.
Вы по-прежнему можете убедиться, что установка работает, убедившись, что кнопка «Загрузить» отображается в веб-приложении тестера распространения приложений.
2. Начать
Настроить полосу обгона
App Distribution интегрируется с Fastlane , чтобы вы могли автоматизировать распространение предварительных сборок вашего приложения. Распространение приложений интегрируется с вашей конфигурацией полосы быстрого доступа .
- Установите и настройте fastlane .
- Запустите
fastlane init
в корневом каталоге вашего проекта во время установки и выберите «Ручная настройка». Вы увидите подкаталог с именемfastlane
, который содержит файлыFastfile
,Appfile
иPluginfile
, которые вы будете использовать для настройки fastlane .
Установите интерфейс командной строки Firebase
Вам также потребуется установить интерфейс командной строки Firebase . Если вы используете 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, чтобы добавить 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. После этого к выпускам, которые станут доступны вам, можно будет получить доступ из веб-приложения тестера распространения приложений, используя веб-клип, добавленный на главный экран вашего устройства.
- На тестовом устройстве iOS откройте электронное письмо, отправленное из службы распространения приложений Firebase, и коснитесь ссылки «Начать» . Обязательно откройте ссылку в Safari.
- Теперь вы находитесь в веб-приложении тестера распространения приложений. На появившейся странице войдите в свою учетную запись Google и нажмите Принять приглашение.
- Теперь вы можете увидеть выпуски, на которые вас пригласили. Нажмите «Зарегистрировать устройство» в одной из версий.
- При появлении запроса загрузите профиль Firebase, затем установите профиль в приложении «Настройки».
Установка профиля дает Firebase разрешение на:
- Зарегистрируйте тестовое устройство, собрав уникальный идентификатор устройства (UDID).
Firebase отправляет всем владельцам и редакторам проекта Firebase электронное письмо с UDID тестового устройства.
- Установите веб-клип на главный экран тестового устройства. Веб-клип открывает веб-приложение тестера App Distribution, которое позволяет вам установить и получить доступ ко всем вашим тестовым приложениям.
В веб-приложении тестера распространения приложений ваше тестовое устройство теперь зарегистрировано для выпуска вашего приложения.
Теперь, когда вы предоставили Firebase UDID своего тестового устройства, вы можете возобновить работу в качестве разработчика. На вкладке «Тестеры» панели «Распространение приложений» информация о вашем тестировщике теперь отображается под выпуском вашего приложения со статусом «Принято»:
В следующем разделе вы добавите UDID устройства в профиль подготовки вашего приложения, а затем создадите версию своего приложения, которая работает с вашим тестовым устройством.
Экспортируйте UDID устройств тестера
Как разработчик, вы получите электронное письмо от Firebase, содержащее UDID тестового устройства. В качестве опции App Distribution упрощает сбор нескольких новых UDID устройств одновременно, позволяя экспортировать их непосредственно из консоли Firebase в виде необработанного текстового файла.
- Чтобы экспортировать все UDID, откройте вкладку Testers & Groups .
- Щелкните Экспорт идентификаторов 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 тестовых устройств, их можно установить на тестовые устройства.
- На тестовом устройстве вернитесь в веб-приложение тестера распространения приложений, используя ссылку в электронном письме или значок на главном экране устройства.
Когда вы перейдете к приложению кодовой лаборатории UDID, вы увидите, что выпуск готов к загрузке.
- Если вы используете физическое устройство, нажмите «Загрузить», затем установите и запустите приложение!
7. Поздравления
Теперь вы настроили App Distribution и Fastlane для автоматизации процесса тестирования перед выпуском. Теперь, когда вы хотите пригласить дополнительных тестировщиков или добавить их UDID в свое приложение, вам нужно будет выполнить только одну команду: fastlane distribute
.
Так что больше не нужно индивидуально собирать UDID у тестировщиков или обращаться к консоли разработчика Apple для обновления списков устройств или профилей инициализации. Вам даже не нужно открывать XCode!
Этот рабочий процесс легко настроить для ежечасного или ежедневного запуска в среде непрерывной интеграции.
дальнейшее чтение
- Ознакомьтесь с функциями Firebase App Distribution , включая встроенный в приложение SDK для iOS.
- Узнайте больше о скоростной полосе
- Управляйте подписанием кода вашей команды с помощью
match
- Интегрируйте fastlane в свою CI