Los SDK opcionales de Firebase App Distribution para iOS y Android te permiten mostrar alertas en la aplicación a tus evaluadores cuando hay nuevas compilaciones de tu aplicación disponibles para instalar. Esta guía explica cómo utilizar los SDK de App Distribution para iOS y Android para crear y personalizar alertas de nuevas compilaciones para sus evaluadores.
Antes de que empieces
Si aún no lo has hecho, agrega Firebase a tu proyecto de iOS .
Paso 1 : habilite la API del probador de distribución de aplicaciones
Selecciona tu proyecto en la consola de Google Cloud .
En API de Firebase App Testers , haga clic en Habilitar .
Paso 2 : agregue distribución de aplicaciones a su aplicación
Abra el Podfile que creó para el proyecto (o ejecute
pod init
para crear uno), luego agregue la siguiente línea dentro de la sección de destino:pod 'FirebaseAppDistribution'
En el directorio de su podfile, ejecute
pod install
y luego abra el archivo.xcworkspace
creado.Importe el módulo Firebase en su estructura
App
oUIApplicationDelegate
:Rápido
import FirebaseCore import FirebaseAppDistribution
C objetivo
@import FirebaseCore; @import FirebaseAppDistribution;
Configure una instancia compartida
FirebaseApp
en el métodoapplication(_:didFinishLaunchingWithOptions:)
del delegado de su aplicación:Rápido
// Use Firebase library to configure APIs FirebaseApp.configure()
C objetivo
// Use Firebase library to configure APIs [FIRApp configure];
Si el swizzling está deshabilitado, pase las URL abiertas al SDK de distribución de aplicaciones en su implementación de
application(_:open:options:)
:Rápido
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { if AppDistribution.appDistribution().application(application, open: url, options: options) { return true } // Handle other non-Firebase URLs here. return false }
C objetivo
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options { if ([[FIRAppDistribution appDistribution] application:app openURL:url options:options]) { return YES; } // Handle other non-Firebase URLs here. return NO; }
Finalmente, vuelva a compilar su aplicación.
Paso 3 : configurar alertas en la aplicación
El SDK de distribución de aplicaciones proporciona dos formas de configurar alertas de compilación en la aplicación para sus evaluadores: una configuración de alerta básica, que viene con actualizaciones de aplicaciones prediseñadas y cuadros de diálogo de inicio de sesión para mostrar a los evaluadores, y una configuración de alerta avanzada, que permite personalizar su propia interfaz de usuario. Recomendamos usar primero la configuración de alerta básica si es nuevo en el SDK de distribución de aplicaciones.
Configuracion basica
Utilice checkForUpdate
para mostrar un diálogo de alertas de habilitación prediseñado a los evaluadores que aún no han habilitado las alertas y luego verifique si hay una nueva compilación disponible. Cuando se llama, el método representa la siguiente secuencia:
Comprueba si un evaluador ha habilitado las alertas solicitándole que inicie sesión en App Distribution con su cuenta de Google.
Si el probador aún no ha habilitado las alertas, muestra un diálogo prediseñado.
La habilitación de alertas es un proceso único en el dispositivo de prueba y persiste en todas las actualizaciones de su aplicación. Las alertas permanecen habilitadas en el dispositivo de prueba hasta que se desinstale la aplicación o hasta que se llame al método
signOutTester
. Consulte la documentación de referencia del método ( Swift u Objective-C ) para obtener más información.Comprueba si hay compilaciones nuevas disponibles para que las instale el probador.
Puedes invocar checkForUpdate()
en cualquier punto de tu aplicación. Por ejemplo, puede solicitar a sus evaluadores que instalen compilaciones recientemente disponibles al inicio incluyendo checkForUpdate()
en onAppear(perform:)
de la vista raíz de su aplicación.
El siguiente ejemplo comprueba si el evaluador ha habilitado las alertas y tiene acceso a una nueva compilación y, de ser así, muestra un cuadro de diálogo cuando la compilación está disponible para instalar:
Rápido
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
if error != nil {
// Handle error
return
}
guard let release = release else {
return
}
// Customize your alerts here.
let title = "New Version Available"
let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
let 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 should be a UIViewController.
self.present(uialert, animated: true, completion: nil)
})
C objetivo
[[FIRAppDistribution appDistribution]
checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
NSError *_Nullable error) {
if (error) {
// Handle error
return;
}
if (release) {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"New Version Available"
message:[NSString stringWithFormat:@"Version %@ (%@) is available.", release.displayVersion,
release.buildVersion] preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *updateAction = [UIAlertAction actionWithTitle:@"Update"
style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
[[UIApplication sharedApplication] openURL:release.downloadURL options:@{}
completionHandler:nil];
}];
UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel"
style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {}];
[alert addAction:updateAction];
[alert addAction:cancelAction];
[self presentViewController:alert animated:YES completion:nil];
}
}];
Configuración avanzada
Los métodos signInTester()
e isTesterSignedIn
le brindan más flexibilidad para personalizar la experiencia de inicio de sesión de su evaluador, para que pueda coincidir mejor con la apariencia de su aplicación.
El siguiente ejemplo verifica si el evaluador ya inició sesión en su cuenta de probador de Firebase App Distribution, por lo que puede elegir mostrar su interfaz de usuario de inicio de sesión solo para los evaluadores que aún no han iniciado sesión. Una vez que el evaluador haya iniciado sesión, puede Llame checkForUpdate()
para comprobar si el evaluador tiene acceso a una nueva compilación.
Rápido
// Sign in a tester without automatically checking for update
if (!AppDistribution.appDistribution().isTesterSignedIn) {
AppDistribution.appDistribution().signInTester (completion: { error in
// completion block for signInTester
if (error != nil) {
// handle failed sign in
return
}
// handle successful sign in
})
}
// Only check for update if tester is already signed in - do not prompt
if (AppDistribution.appDistribution().isTesterSignedIn) {
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
// completion block for check for update
})
}
C objetivo
// Sign in a tester without automatically checking for update
if(![[FIRAppDistribution appDistribution] isTesterSignedIn]) {
[[FIRAppDistribution appDistribution]
signInTesterWithCompletion:^(NSError *_Nullable error) {
// completion block for signInTester
if (error) {
// handle failed sign in
return;
}
// handle successful sign in
}];
}
// only check for update if tester is already signed in - do not prompt
if([[FIRAppDistribution appDistribution] isTesterSignedIn]) {
[[FIRAppDistribution appDistribution]
checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
NSError *_Nullable error) {
// completion block for check for update
}];
}
Para obtener información sobre métodos adicionales, incluido signOutTester()
, consulte la documentación de referencia de App Distribution para Swift y Objective-C .
Paso 4 : cree y pruebe su implementación
Finalmente, compila tu aplicación y prueba tu implementación distribuyéndola a los evaluadores usando Firebase console.
Visita la guía de solución de problemas de distribución de aplicaciones para obtener ayuda con problemas comunes, como:
- El probador no recibe alertas en la aplicación
- Se le solicita al evaluador que inicie sesión en Google más de una vez