Catch up on everthing we announced at this year's Firebase Summit. Learn more

Configure alertas de nuevas compilaciones en la aplicación con el SDK de distribución de aplicaciones

El SDK de distribución de aplicaciones de Firebase opcional te permite 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 usar el SDK de distribución de aplicaciones para crear y personalizar nuevas alertas de compilación para sus evaluadores.

Antes de que empieces

Si no lo ha hecho, añadir Firebase a su proyecto IOS .

Paso 1: Activar el App Distribución Tester API

  1. Seleccione el proyecto en el Google Cloud Console .

  2. Bajo API Firebase aplicación probadores, haga clic en Habilitar.

Paso 2: Añadir App Distribución de su aplicación

Use Swift Package Manager para instalar y administrar las dependencias de Firebase.

  1. En Xcode, con su proyecto de aplicación abierta, vaya a Archivo> Paquetes Swift> Agregar paquete de Dependencia.
  2. Cuando se le solicite, agregue el repositorio del SDK de las plataformas de Firebase Apple:
  3.   https://github.com/firebase/firebase-ios-sdk
      
  4. Elija la biblioteca de distribución de aplicaciones.
  5. Cuando termine, Xcode comenzará a resolver y descargar automáticamente sus dependencias en segundo plano.

A continuación, realice algunos pasos de configuración:

  1. Codificar el ID de la aplicación Google (requerido sólo para versiones de iOS 9 y 10):

    Codifique su ID de aplicación de Google

    Añadir el appdistribution-<encoded-google-app-id> esquema de URL mediante la inclusión del fragmento en su Info.plist file (consulte la documentación de Apple para obtener instrucciones sobre cómo agregar el esquema de URL en Xcode):

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleTypeRole</key>
            <string>Editor</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>appdistribution-<encoded-google-app-id></string>
            </array>
        </dict>
    </array>
    

    Luego, codifique su ID de aplicación de Google reemplazando los dos puntos (:) con guiones (-). Tenga en cuenta que su aplicación de Google ID se encuentra en su GoogleService-Info.plist archivo. Por ejemplo, si su ID de aplicación de Google es:

    7:77777777777:ios:123456789

    Su ID de aplicación de Google codificado es:

    7-77777777777-ios-123456789
  2. Importar el módulo Firebase en su UIApplicationDelegate :

    Rápido

    Nota: Este producto no está disponible en MacOS, Mac Catalyst, TVOS u objetivos watchos.

    import Firebase
    

    C objetivo

    Nota: Este producto no está disponible en MacOS, Mac Catalyst, TVOS u objetivos watchos.

    @import Firebase;
    
  3. Configurar una FirebaseApp compartida ejemplo, típicamente en de su aplicación application:didFinishLaunchingWithOptions: Método:

    Rápido

    Nota: Este producto no está disponible en MacOS, Mac Catalyst, TVOS u objetivos watchos.

    // Use Firebase library to configure APIs
    FirebaseApp.configure()
    

    C objetivo

    Nota: Este producto no está disponible en MacOS, Mac Catalyst, TVOS u objetivos watchos.

    // Use Firebase library to configure APIs
    [FIRApp configure];
    
  4. Finalmente, vuelva a compilar su aplicación.

Paso 3: Configurar alertas en aplicaciones

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 un diálogo de inicio de sesión prediseñado para mostrar a los evaluadores, y una configuración de alerta avanzada, que le permite personalice su propia interfaz de usuario (UI). Recomendamos usar primero la configuración de alerta básica si es nuevo en el SDK de distribución de aplicaciones.

Configuracion basica

Uso checkForUpdate para mostrar una pre-construidos activar las alertas de diálogo a los probadores que aún no han permitido a las alertas, y luego comprobar si hay una nueva construcción está disponible. Cuando se llama, el método promulga la siguiente secuencia:

  1. Comprueba si un evaluador ha habilitado las alertas al pedirle que inicie sesión en Distribución de aplicaciones con su cuenta de Google.

  2. 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 las actualizaciones de su aplicación. Alertas permanecen habilitadas en el dispositivo de prueba hasta que la aplicación se desinstala, o hasta que el signOutTester se llama método. Consulte la documentación del método de referencia ( Swift o Objective-C ) para obtener más información.

  3. Comprueba si hay nuevas versiones disponibles para que el probador las instale.

Puede incluir checkForUpdate en cualquier momento de su aplicación. Por ejemplo, puede pedir a sus probadores para instalar nuevamente disponible se basa en el arranque mediante la inclusión de checkForUpdate en el viewDidAppear del UIViewController .

El siguiente ejemplo verifica si el probador ha habilitado las alertas y tiene acceso a una nueva compilación y, de ser así, muestra un diálogo cuando la compilación está disponible para instalar:

Rápido

Nota: Este producto no está disponible en MacOS, Mac Catalyst, TVOS u objetivos watchos.
AppDistribution.appDistribution().checkForUpdate(completion: { release, error in
  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

Nota: Este producto no está disponible en MacOS, Mac Catalyst, TVOS u objetivos watchos.
[[FIRAppDistribution appDistribution]
  checkForUpdateWithCompletion:^(FIRAppDistributionRelease *_Nullable release,
                                 NSError *_Nullable error) {
  if (error) {
    UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Check For Update"
message:[NSString stringWithFormat:@"Error during tester sign in! %@", error.localizedDescription]
preferredStyle:UIAlertControllerStyleAlert];

    UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {}];

    [alert addAction:okAction];
    [self presentViewController:alert animated:YES completion:nil];

    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 y isTesterSignedIn le dan mayor flexibilidad de personalizar el inicio de sesión en la experiencia de su probador, por lo que puede adaptarse mejor el aspecto de su aplicación y la sensación.

El siguiente ejemplo verifica si el tester ya ha iniciado sesión en su cuenta de tester de distribución de aplicaciones de Firebase, por lo que puede optar por mostrar su IU de inicio de sesión solo para los testers que aún no han iniciado sesión. Una vez que el tester haya iniciado sesión, usted puede llamar checkForUpdate para comprobar si el probador tiene acceso a una nueva construcción.

Rápido

Nota: Este producto no está disponible en MacOS, Mac Catalyst, TVOS u objetivos watchos.
// 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

Nota: Este producto no está disponible en MacOS, Mac Catalyst, TVOS u objetivos watchos.
// 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 acerca de métodos adicionales, incluyendo signOutTester , véase la documentación de referencia Distribución App para Swift y Objective-C .

Paso 4: construir y probar su aplicación

Por último, construir su aplicación y evaluar su aplicación por parte de la distribución de la acumulación de los probadores que utilizan la consola Firebase.

Visita la App Distribución guía de solución de problemas para obtener ayuda con problemas comunes, tales como:

  • El evaluador no recibe alertas en la aplicación
  • Se solicita al evaluador que inicie sesión en Google más de una vez