1. Обзор
Добро пожаловать в интеграцию SDK Firebase App Distribution в лабораторию кода вашего приложения для iOS. В этой лаборатории кода вы добавите SDK для распространения приложений в свое приложение, чтобы отображать оповещения в приложении для ваших тестировщиков, когда новые сборки доступны для загрузки. Вы узнаете, как использовать как базовую, так и пользовательскую конфигурацию, чтобы ваши тестировщики входили в систему для получения обновлений. Затем вы отправите новый выпуск в App Distribution и активируете оповещение о новой сборке прямо в приложении.
Что вы узнаете
- Как использовать App Distribution для распространения предварительной версии приложения среди активных тестировщиков
- Как интегрировать App Distribution iOS SDK в ваше приложение
- Как предупредить тестировщика, когда есть новая предварительная сборка, готовая к установке
- Как настроить SDK в соответствии с вашими уникальными потребностями тестирования
Что вам понадобится
- Xcode 12 (или выше)
- CocoaPods 1.9.1 (или выше)
- Учетная запись разработчика Apple для распространения Ad Hoc
- Физическое устройство iOS для тестирования. ( Приложение iOS-симулятора будет работать для большей части лаборатории кода, но симуляторы не могут загружать выпуски.)
Как вы будете использовать этот учебник?
Как бы вы оценили свой опыт создания приложений для iOS?
2. Создайте проект консоли Firebase
Добавить новый проект Firebase
- Войдите в Firebase.
- В консоли Firebase нажмите «Добавить проект», а затем назовите свой проект «Firebase Codelab».
Вам не нужно включать Google Analytics для этого проекта.
- Щелкните Создать проект .
Добавить приложение в Firebase
Следуйте документации , чтобы зарегистрировать свое приложение в Firebase. Используйте "com.google.firebase.codelab.AppDistribution.<ваше_имя>" в качестве идентификатора пакета iOS.
При появлении запроса загрузите файл GoogleService-Info.plist
вашего проекта. Это понадобится вам позже.
3. Получите пример проекта
Скачать код
Начните с клонирования примера проекта.
git clone git@github.com:googlecodelabs/firebase-appdistribution-ios.git
Если у вас не установлен git, вы также можете скачать образец проекта с его страницы GitHub или перейдя по этой ссылке .
Загрузите зависимости и откройте проект в Xcode
- Откройте Podfile в том же каталоге
cd firebase-appdistribution-ios/start Open Podfile
- Добавьте следующую строку в ваш подфайл:
Подфайл
pod 'Firebase/AppDistribution'
Запустите pod update
в каталоге проекта и откройте проект в Xcode.
pod install --repo-update xed .
Обновите идентификатор пакета, чтобы он соответствовал вашему приложению Firebase.
В левом меню дважды щелкните AppDistributionExample. Затем перейдите на вкладку «Общие» и измените идентификатор пакета, чтобы он соответствовал идентификатору пакета вашего приложения Firebase, который можно найти в настройках проекта . Это должно быть "com.google.firebase.codelab.AppDistribution.<your_name>"
Добавьте Firebase в свое приложение
Найдите файл GoogleService-Info.plist
, который вы скачали ранее, в своей файловой системе и перетащите его в корень проекта Xcode. Вы также можете скачать этот файл в любое время со страницы настроек вашего проекта.
В вашем файле AppDistributionExample/AppDelegate.swift
импортируйте Firebase в верхней части файла.
AppDistributionExample/AppDelegate.swift
import Firebase
А в метод didFinishLaunchingWithOptions
добавить вызов для настройки Firebase.
AppDistributionExample/AppDelegate.swift
FirebaseApp.configure()
4. Настройте оповещения о новых сборках в приложении с помощью SDK для распространения приложений.
На этом шаге вы добавите Firebase App Distribution SDK в свое приложение и отобразите оповещения в приложении для своих тестировщиков, когда новые сборки вашего приложения будут доступны для установки. Для этого убедитесь, что вы включили Firebase App Testers API для своего проекта Firebase Codelab (в Google Cloud Console). Вам нужно будет войти в систему с той же учетной записью и выбрать правильный проект из раскрывающегося меню вверху.
Настройте оповещения в приложении
App Distribution SDK предоставляет тестировщикам два способа настройки оповещений о сборке в приложении: базовая конфигурация оповещений, которая поставляется с предварительно встроенным диалоговым окном входа для отображения тестерам, и расширенная конфигурация оповещений, позволяющая настроить собственный пользовательский интерфейс (UI).
Мы начнем с базовой конфигурации предупреждений. Вы можете использовать checkForUpdate
чтобы отобразить предварительно созданный диалог включения оповещений для тестировщиков, которые еще не включили оповещения, а затем проверить, доступна ли новая сборка. Тестировщики включают оповещения, войдя в учетную запись, которая имеет доступ к приложению в App Distribution. При вызове метод выполняет следующую последовательность:
- Проверяет, включил ли тестер оповещения. Если нет, отображает предварительно созданный диалог, который предлагает им войти в App Distribution с помощью своей учетной записи Google.
Включение оповещений — это однократный процесс на тестовом устройстве, который сохраняется при обновлении вашего приложения. Оповещения остаются включенными на тестовом устройстве до тех пор, пока приложение не будет удалено или пока не будет вызван метод signOutTester
. Дополнительные сведения см. в справочной документации по методу ( Swift или Objective-C ).
- Проверяет наличие новых доступных сборок для установки тестером. Возвращает объект релиза или ошибку .
Вы можете включить checkForUpdate
в любой момент вашего приложения. Например, вы можете предложить своим тестировщикам установить новые доступные сборки при запуске, включив checkForUpdate в viewDidAppear UIViewController .
В вашем файле AppDistributionViewController.swift
импортируйте Firebase в верхней части файла.
AppDistributionViewController.swift
import Firebase
Откройте AppDistributionExample/AppDistributionViewController.swift и скопируйте строки в метод viewDidAppear
следующим образом:
AppDistributionViewController.swift
override func viewDidAppear(_ animated: Bool) {
checkForUpdate()
}
Теперь давайте реализуем метод checkForUpdate().
AppDistributionViewController.swift
private func checkForUpdate() {
AppDistribution.appDistribution().checkForUpdate(completion: { [self] release, error in
var uiAlert: UIAlertController
if error != nil {
uiAlert = UIAlertController(title: "Error", message: "Error Checking for update! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
} else if release == nil {
uiAlert = UIAlertController(title: "Check for Update", message: "No releases found!!", preferredStyle: .alert)
uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default))
} else {
guard let release = release else { return }
let title = "New Version Available"
let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
uiAlert = UIAlertController(title: title, message: message, preferredStyle: .alert)
uiAlert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
_ in
UIApplication.shared.open(release.downloadURL)
})
uiAlert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
_ in
})
}
self.present(uiAlert, animated: true, completion: nil)
})
}
5. Создавайте и приглашайте тестировщиков для загрузки вашего приложения
На этом этапе вы создадите свое приложение и протестируете свою реализацию, раздав сборку тестировщикам с помощью консоли Firebase.
Создайте свое приложение
Когда вы будете готовы распространить предварительную версию своего приложения среди тестировщиков, выберите «Любое устройство iOS (arm64)» в качестве места сборки и нажмите «Продукт» -> «Архив». После создания архива создайте подписанный дистрибутив с профилем разрабатываемого дистрибутива.
Когда сборка завершается, она сохраняет файл IPA и некоторые файлы журналов в указанной вами папке. Вы распространяете файл IPA среди тестировщиков, выполняя следующие шаги.
Если у вас возникнут проблемы при создании приложения, см. инструкции Apple по разработке кода, чтобы узнать, как устранить неполадки.
Распространите свое приложение среди тестировщиков
Чтобы распространить свое приложение среди тестировщиков, загрузите файл IPA с помощью консоли Firebase:
- Откройте страницу распространения приложений в консоли Firebase. При появлении запроса выберите свой проект Firebase.
- Нажмите «Начать»
- На странице Релизы выберите приложение, которое хотите распространять, из раскрывающегося меню.
- Перетащите файл IPA вашего приложения на консоль, чтобы загрузить его.
- Когда загрузка завершится, укажите группы тестировщиков и отдельных тестировщиков, которым вы хотите получить сборку. (Добавьте свой адрес электронной почты, чтобы получить приглашение.) Затем добавьте примечания к выпуску для сборки. Дополнительные сведения о создании групп тестировщиков см. в разделе Управление тестировщиками .
- Щелкните Распространить, чтобы сделать сборку доступной для тестировщиков.
Добавьте себя в качестве тестировщика в релиз
В консоли Firebase теперь вы можете видеть тестировщиков, которых вы добавили в выпуск вашего приложения.
Поскольку вы указали свой адрес электронной почты, вы получите электронное письмо от Firebase App Distribution с приглашением протестировать приложение. Теперь ты первый тестировщик! Перейдите к разделу ниже, чтобы настроить тестовое устройство в качестве тестера.
Зарегистрируйте тестовое устройство
Вам нужно будет сначала зарегистрировать свое тестовое устройство, чтобы загрузить и протестировать выпуск Ad Hoc.
- На тестовом устройстве iOS откройте электронное письмо, отправленное из службы распространения приложений Firebase, и коснитесь ссылки «Начать». Обязательно откройте ссылку в Safari.
- В появившемся веб-приложении Firebase App Distribution test войдите в свою учетную запись Google и нажмите Принять приглашение.
Теперь вы увидите выпуск, на который вас пригласили.
- Нажмите «Зарегистрировать устройство» , чтобы поделиться своим UDID с Firebase, чтобы вы могли позже обновить профиль подготовки вашего приложения.
- Следуйте инструкциям и перейдите в настройки, чтобы загрузить профиль и поделиться своим UDID.
Теперь, когда вы вернетесь в App Distribution, выпуск теперь помечен как «Устройство зарегистрировано»:
UDID тестировщика теперь передан разработчику. Теперь разработчик должен создать тестировщику новую версию приложения.
Просмотр информации о тестере в консоли
Вернувшись в представление разработчика в консоли Firebase, тестер будет отображаться как «Принято» под выпуском:
Затем вы также получите электронное письмо как разработчик, если используемое им устройство еще не включено в профиль подготовки. Это уведомит вас о новом UDID, который необходимо добавить. У вас также есть возможность экспортировать все UDID в виде текстового файла.
- Чтобы экспортировать все UDID, откройте вкладку Testers & Groups.
- Нажмите «Экспортировать идентификаторы Apple UDID».
Файл должен содержать UDID вашего тестового устройства.
Device ID Device Name Device Platform
1234567890 tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen ios
Когда вы получите одно из этих писем, обновите свой профиль обеспечения с помощью UDID и распространите новую сборку среди тестировщиков, выполнив следующие действия:
- Добавьте устройства на свой портал разработчиков Apple.
- Вариант 1. Импортируйте UDID устройств в виде CSV-файла. На вкладке «Тестеры и группы» панели управления распространением приложений выберите «Все тестировщики», затем нажмите «Экспортировать идентификаторы Apple UDID», чтобы загрузить файл CSV. Затем импортируйте файл в свою учетную запись разработчика Apple, используя параметр «Зарегистрировать несколько устройств». Обратитесь к документации Apple , чтобы узнать больше. Обратите внимание, что ваша учетная запись разработчика Apple может разрешать вам импортировать только ограниченное количество устройств в год.
- Вариант 2: Соберите и введите UDID по электронной почте. На странице «Добавить устройства» портала разработчиков Apple зарегистрируйте новый UDID, указанный в полученном электронном письме.
- Добавьте зарегистрированные устройства в свой профиль обеспечения .
- Загрузите профиль подготовки и используйте его для перестроения приложения. Если вы выполняете перестройку только для обновления зарегистрированных устройств, не обновляйте номер сборки или версию.
- Повторно распространяйте свое приложение из консоли Firebase или интерфейса командной строки. Если вы уже распространили сборку с тем же номером сборки и версией, уведомления по электронной почте будут получать только пользователи вновь зарегистрированных устройств.
Скачать релиз с тестового устройства
Теперь в выпуске есть UDID тестового устройства, поэтому тестовое устройство может загрузить и установить приложение. App Distribution отправляет электронное письмо тестировщикам, когда их UDID добавляется в новую версию.
- На тестовом устройстве вернитесь в веб-приложение тестера распространения приложений, используя ссылку в электронном письме или значок на главном экране устройства.
Когда вы перейдете к приложению кодовой лаборатории UDID, вы увидите, что выпуск готов к загрузке.
- Если вы используете физическое устройство, нажмите «Загрузить», затем установите и запустите приложение!
- Когда приложение запустится, оно попросит вас включить оповещения о новых сборках. Выберите «Включить»
- Затем он попросит вас войти в систему. Нажмите «Продолжить».
- Войдите в свою учетную запись тестера.
- Вы вернетесь в приложение. Вам не нужно будет входить в систему или принимать оповещения при следующем запуске приложения.
Распространите обновление среди тестировщиков
- Обновите номер сборки до «2».
- Выберите «Любое устройство iOS (arm64)» в качестве места сборки и выберите «Продукт» -> «Архив». После создания архива создайте подписанный дистрибутив с профилем дистрибутива для разработчиков.
- Когда сборка завершается, она сохраняет файл IPA и некоторые файлы журналов в указанной вами папке. Загрузите этот новый IPA в свою консоль Firebase, снова добавьте свою электронную почту в качестве тестера и распространите.
Оповещения о тестовой сборке
- Убедитесь, что вы закрыли приложение, если оно было открыто. Перезапустите приложение.
- Когда приложение перезапустится, вы должны получить предупреждение «Доступна новая версия».
- Нажмите «Обновить», чтобы получить последнюю версию.
- Нажмите «Установить» на следующем экране.
- Поздравляем! Вы смогли обновить свое приложение с помощью встроенных предупреждений.
6. Настройте вход тестировщика
Методы signInTester/signOutTester и isTesterSignedIn обеспечивают большую гибкость при настройке процесса входа тестировщика, чтобы он лучше соответствовал внешнему виду вашего приложения.
В следующем примере проверяется, вошел ли тестировщик в свою учетную запись тестера Firebase App Distribution, поэтому вы можете выбрать отображение пользовательского интерфейса входа только для тестировщиков, которые еще не вошли в систему. После того, как тестер вошел в систему, вы можете вызовите checkForUpdate, чтобы проверить, есть ли у тестировщика доступ к новой сборке.
Давайте отключим автоматическую проверку обновлений в viewDidAppear , закомментировав вызов checkForUpdate() .
AppDistributionViewController.swift
override func viewDidAppear(_ animated: Bool) {
// checkForUpdate()
}
Вместо этого давайте вызовем функцию checkForUpdate() в функции checkForUpdateButtonClicked( ).
@objc func checkForUpdateButtonClicked() {
checkForUpdate()
}
Теперь давайте реализуем наш метод signInOutButtonClicked() , который выполнит вход пользователя, если он вышел из системы, или выйдет из системы, если он уже выполнил вход.
AppDistributionViewController.swift
@objc func signInOutButtonClicked() {
if isTesterSignedIn() {
AppDistribution.appDistribution().signOutTester()
self.configureCheckForUpdateButton()
self.configureSignInSignOutButton()
self.configureSignInStatus()
} else {
AppDistribution.appDistribution().signInTester(completion: { error in
if error == nil {
self.configureCheckForUpdateButton()
self.configureSignInSignOutButton()
self.configureSignInStatus()
} else {
let uiAlert = UIAlertController(title: "Custom:Error", message: "Error during tester sign in! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default) {
_ in
})
self.present(uiAlert, animated: true, completion: nil)
}
})
}
}
Наконец, давайте реализуем метод isTesterSignedIn .
AppDistributionViewController.swift
private func isTesterSignedIn() -> Bool {
return AppDistribution.appDistribution().isTesterSignedIn
}
Создайте и протестируйте свою реализацию
7. Поздравляем!
Вы встроили функцию «отображения оповещений в приложении» в приложение, используя SDK Firebase App Distribution для iOS.
Что мы рассмотрели
- Распространение приложений Firebase
- Распространение приложений Firebase Новые оповещения iOS SDK
Следующие шаги
Узнать больше
Есть вопрос?
Сообщить о проблемах