FirebaseAppDistribution

The Firebase App Distribution in-app tester API, mirroring com.google.firebase.appdistribution.FirebaseAppDistribution from the Firebase Android SDK's API-only library (firebase-appdistribution-api): signs the tester in, checks for new pre-release builds, updates the app to them and collects the tester's feedback.

  • Android: every call does nothing, and every task fails with FirebaseAppDistributionException.Status.NOT_IMPLEMENTED, unless the app also depends on the full com.google.firebase:firebase-appdistribution SDK. Add it to pre-release build variants only: its self-update code may break Google Play policy.

  • iOS: backed by the iOS SDK (FirebaseAppDistribution-Beta), which provides sign-in and the release check; updateApp and updateIfNewReleaseAvailable open the new release's download link, and iOS then asks the tester to install it. The iOS SDK has no in-app feedback, so the feedback members do nothing there and carry @UnsupportedOnApple. macOS and tvOS have no App Distribution SDK.

  • JVM: behaves as Android does without the full SDK.

The Firebase App Distribution in-app tester API, mirroring com.google.firebase.appdistribution.FirebaseAppDistribution from the Firebase Android SDK's API-only library (firebase-appdistribution-api): signs the tester in, checks for new pre-release builds, updates the app to them and collects the tester's feedback.

  • Android: every call does nothing, and every task fails with FirebaseAppDistributionException.Status.NOT_IMPLEMENTED, unless the app also depends on the full com.google.firebase:firebase-appdistribution SDK. Add it to pre-release build variants only: its self-update code may break Google Play policy.

  • iOS: backed by the iOS SDK (FirebaseAppDistribution-Beta), which provides sign-in and the release check; updateApp and updateIfNewReleaseAvailable open the new release's download link, and iOS then asks the tester to install it. The iOS SDK has no in-app feedback, so the feedback members do nothing there and carry @UnsupportedOnApple. macOS and tvOS have no App Distribution SDK.

  • JVM: behaves as Android does without the full SDK.

The Firebase App Distribution in-app tester API, mirroring com.google.firebase.appdistribution.FirebaseAppDistribution from the Firebase Android SDK's API-only library (firebase-appdistribution-api): signs the tester in, checks for new pre-release builds, updates the app to them and collects the tester's feedback.

  • Android: every call does nothing, and every task fails with FirebaseAppDistributionException.Status.NOT_IMPLEMENTED, unless the app also depends on the full com.google.firebase:firebase-appdistribution SDK. Add it to pre-release build variants only: its self-update code may break Google Play policy.

  • iOS: backed by the iOS SDK (FirebaseAppDistribution-Beta), which provides sign-in and the release check; updateApp and updateIfNewReleaseAvailable open the new release's download link, and iOS then asks the tester to install it. The iOS SDK has no in-app feedback, so the feedback members do nothing there and carry @UnsupportedOnApple. macOS and tvOS have no App Distribution SDK.

  • JVM: behaves as Android does without the full SDK.

The Firebase App Distribution in-app tester API, mirroring com.google.firebase.appdistribution.FirebaseAppDistribution from the Firebase Android SDK's API-only library (firebase-appdistribution-api): signs the tester in, checks for new pre-release builds, updates the app to them and collects the tester's feedback.

  • Android: every call does nothing, and every task fails with FirebaseAppDistributionException.Status.NOT_IMPLEMENTED, unless the app also depends on the full com.google.firebase:firebase-appdistribution SDK. Add it to pre-release build variants only: its self-update code may break Google Play policy.

  • iOS: backed by the iOS SDK (FirebaseAppDistribution-Beta), which provides sign-in and the release check; updateApp and updateIfNewReleaseAvailable open the new release's download link, and iOS then asks the tester to install it. The iOS SDK has no in-app feedback, so the feedback members do nothing there and carry @UnsupportedOnApple. macOS and tvOS have no App Distribution SDK.

  • JVM: behaves as Android does without the full SDK.

Types

Link copied to clipboard
actual object Companion
actual object Companion
expect object Companion
actual object Companion

Properties

Link copied to clipboard
actual abstract val isTesterSignedIn: Boolean

Whether the App Distribution tester is signed in. Always false on Android without the full SDK, and on the JVM.

actual abstract val isTesterSignedIn: Boolean

Whether the App Distribution tester is signed in. Always false on Android without the full SDK, and on the JVM.

expect abstract val isTesterSignedIn: Boolean

Whether the App Distribution tester is signed in. Always false on Android without the full SDK, and on the JVM.

actual abstract val isTesterSignedIn: Boolean

Whether the App Distribution tester is signed in. Always false on Android without the full SDK, and on the JVM.

Functions

Link copied to clipboard
actual abstract fun cancelFeedbackNotification()

Hides the notification shown by showFeedbackNotification. Does nothing on iOS and the JVM.

actual abstract fun cancelFeedbackNotification()

Does nothing: the iOS SDK has no in-app feedback.

expect abstract fun cancelFeedbackNotification()

Hides the notification shown by showFeedbackNotification. Does nothing on iOS and the JVM.

actual abstract fun cancelFeedbackNotification()

Hides the notification shown by showFeedbackNotification. Does nothing on iOS and the JVM.

Link copied to clipboard

The new release available to the signed-in tester, or null if there is none; updateApp installs it. Fails with FirebaseAppDistributionException.Status.AUTHENTICATION_FAILURE when the tester is not signed in. On iOS too: there it does not show the sign-in alert that the iOS SDK's own checkForUpdate shows.

The new release available to the signed-in tester, or null if there is none; updateApp installs it. Fails with FirebaseAppDistributionException.Status.AUTHENTICATION_FAILURE when the tester is not signed in. On iOS too: there it does not show the sign-in alert that the iOS SDK's own checkForUpdate shows.

The new release available to the signed-in tester, or null if there is none; updateApp installs it. Fails with FirebaseAppDistributionException.Status.AUTHENTICATION_FAILURE when the tester is not signed in. On iOS too: there it does not show the sign-in alert that the iOS SDK's own checkForUpdate shows.

The new release available to the signed-in tester, or null if there is none; updateApp installs it. Fails with FirebaseAppDistributionException.Status.AUTHENTICATION_FAILURE when the tester is not signed in. On iOS too: there it does not show the sign-in alert that the iOS SDK's own checkForUpdate shows.

Link copied to clipboard
actual abstract fun showFeedbackNotification(additionalFormText: CharSequence, interruptionLevel: InterruptionLevel)

As showFeedbackNotification with a string resource ID, with the additionalFormText itself.

actual abstract fun showFeedbackNotification(additionalFormText: Int, interruptionLevel: InterruptionLevel)

Shows a notification that, when tapped, takes a screenshot of the current activity and starts the feedback activity, see startFeedback. additionalFormText is a string resource ID; interruptionLevel is how much the notification interrupts the tester. On Android 13 and above it needs the POST_NOTIFICATIONS permission. Does nothing on iOS and the JVM.

actual abstract fun showFeedbackNotification(additionalFormText: CharSequence, interruptionLevel: InterruptionLevel)
actual abstract fun showFeedbackNotification(additionalFormText: Int, interruptionLevel: InterruptionLevel)

Does nothing: the iOS SDK has no in-app feedback.

expect abstract fun showFeedbackNotification(additionalFormText: CharSequence, interruptionLevel: InterruptionLevel)

As showFeedbackNotification with a string resource ID, with the additionalFormText itself.

expect abstract fun showFeedbackNotification(additionalFormText: Int, interruptionLevel: InterruptionLevel)

Shows a notification that, when tapped, takes a screenshot of the current activity and starts the feedback activity, see startFeedback. additionalFormText is a string resource ID; interruptionLevel is how much the notification interrupts the tester. On Android 13 and above it needs the POST_NOTIFICATIONS permission. Does nothing on iOS and the JVM.

actual abstract fun showFeedbackNotification(additionalFormText: CharSequence, interruptionLevel: InterruptionLevel)

As showFeedbackNotification with a string resource ID, with the additionalFormText itself.

actual abstract fun showFeedbackNotification(additionalFormText: Int, interruptionLevel: InterruptionLevel)

Shows a notification that, when tapped, takes a screenshot of the current activity and starts the feedback activity, see startFeedback. additionalFormText is a string resource ID; interruptionLevel is how much the notification interrupts the tester. On Android 13 and above it needs the POST_NOTIFICATIONS permission. Does nothing on iOS and the JVM.

Link copied to clipboard
actual abstract fun signInTester(): Task<Nothing?>

Signs in the App Distribution tester, presenting a Google sign-in UI.

actual abstract fun signInTester(): Task<Nothing?>

Signs in the App Distribution tester, presenting a Google sign-in UI.

expect abstract fun signInTester(): Task<Nothing?>

Signs in the App Distribution tester, presenting a Google sign-in UI.

actual abstract fun signInTester(): Task<Nothing?>

Signs in the App Distribution tester, presenting a Google sign-in UI.

Link copied to clipboard
actual abstract fun signOutTester()

Signs out the App Distribution tester.

actual abstract fun signOutTester()

Signs out the App Distribution tester.

expect abstract fun signOutTester()

Signs out the App Distribution tester.

actual abstract fun signOutTester()

Signs out the App Distribution tester.

Link copied to clipboard
actual abstract fun startFeedback(additionalFormText: CharSequence)

As startFeedback with a string resource ID, with the additionalFormText itself.

actual abstract fun startFeedback(additionalFormText: Int)

Takes a screenshot, and starts an activity to collect and submit feedback from the tester. additionalFormText is the string resource ID of a text shown to the tester before they submit it, such as a notice about how their feedback is processed. Does nothing on iOS and the JVM, which have no in-app feedback.

abstract fun startFeedback(additionalFormText: CharSequence, screenshotUri: Uri?)
abstract fun startFeedback(additionalFormText: Int, screenshotUri: Uri?)

The SDK's Uri member; the shipped String extension of common code binds to it.

actual abstract fun startFeedback(additionalFormText: CharSequence)
actual abstract fun startFeedback(additionalFormText: Int)

Does nothing: the iOS SDK has no in-app feedback.

expect abstract fun startFeedback(additionalFormText: CharSequence)

As startFeedback with a string resource ID, with the additionalFormText itself.

expect abstract fun startFeedback(additionalFormText: Int)

Takes a screenshot, and starts an activity to collect and submit feedback from the tester. additionalFormText is the string resource ID of a text shown to the tester before they submit it, such as a notice about how their feedback is processed. Does nothing on iOS and the JVM, which have no in-app feedback.

actual abstract fun startFeedback(additionalFormText: CharSequence)

As startFeedback with a string resource ID, with the additionalFormText itself.

actual abstract fun startFeedback(additionalFormText: Int)

Takes a screenshot, and starts an activity to collect and submit feedback from the tester. additionalFormText is the string resource ID of a text shown to the tester before they submit it, such as a notice about how their feedback is processed. Does nothing on iOS and the JVM, which have no in-app feedback.

Link copied to clipboard
actual fun FirebaseAppDistribution.startFeedback(additionalFormText: CharSequence, screenshotUri: String?)

As the startFeedback with a string resource ID and a screenshot, with the additionalFormText itself.

actual fun FirebaseAppDistribution.startFeedback(additionalFormText: Int, screenshotUri: String?)

Starts an activity to collect and submit feedback from the tester, with the screenshot at screenshotUri (a content:// or file:// URI of a bitmap) rather than one taken by the SDK. additionalFormText is the string resource ID of a text shown to the tester before they submit it. Does nothing on iOS and the JVM, which have no in-app feedback.

actual fun FirebaseAppDistribution.startFeedback(additionalFormText: CharSequence, screenshotUri: String?)
actual fun FirebaseAppDistribution.startFeedback(additionalFormText: Int, screenshotUri: String?)

Does nothing: the iOS SDK has no in-app feedback.

expect fun FirebaseAppDistribution.startFeedback(additionalFormText: CharSequence, screenshotUri: String?)

As the startFeedback with a string resource ID and a screenshot, with the additionalFormText itself.

expect fun FirebaseAppDistribution.startFeedback(additionalFormText: Int, screenshotUri: String?)

Starts an activity to collect and submit feedback from the tester, with the screenshot at screenshotUri (a content:// or file:// URI of a bitmap) rather than one taken by the SDK. additionalFormText is the string resource ID of a text shown to the tester before they submit it. Does nothing on iOS and the JVM, which have no in-app feedback.

actual fun FirebaseAppDistribution.startFeedback(additionalFormText: CharSequence, screenshotUri: String?)
actual fun FirebaseAppDistribution.startFeedback(additionalFormText: Int, screenshotUri: String?)

Does nothing: there is no in-app feedback on the JVM.

Link copied to clipboard
actual abstract fun updateApp(): UpdateTask

Updates the app to the release that the last checkForNewRelease returned: an APK is downloaded and installed, an AAB is handed to the Play app. Fails with FirebaseAppDistributionException.Status.UPDATE_NOT_AVAILABLE when that check found no new release.

actual abstract fun updateApp(): UpdateTask

Updates the app to the release that the last checkForNewRelease returned: an APK is downloaded and installed, an AAB is handed to the Play app. Fails with FirebaseAppDistributionException.Status.UPDATE_NOT_AVAILABLE when that check found no new release.

expect abstract fun updateApp(): UpdateTask

Updates the app to the release that the last checkForNewRelease returned: an APK is downloaded and installed, an AAB is handed to the Play app. Fails with FirebaseAppDistributionException.Status.UPDATE_NOT_AVAILABLE when that check found no new release.

actual abstract fun updateApp(): UpdateTask

Updates the app to the release that the last checkForNewRelease returned: an APK is downloaded and installed, an AAB is handed to the Play app. Fails with FirebaseAppDistributionException.Status.UPDATE_NOT_AVAILABLE when that check found no new release.

Link copied to clipboard

Updates the app to the newest release, if one is available. If the tester is not signed in, asks them to sign in first, then checks for a new release; the task succeeds when there is none. Otherwise, after the tester confirms, an APK is downloaded and installed, and an AAB is handed to the Play app.

Updates the app to the newest release, if one is available. If the tester is not signed in, asks them to sign in first, then checks for a new release; the task succeeds when there is none. Otherwise, after the tester confirms, an APK is downloaded and installed, and an AAB is handed to the Play app.

Updates the app to the newest release, if one is available. If the tester is not signed in, asks them to sign in first, then checks for a new release; the task succeeds when there is none. Otherwise, after the tester confirms, an APK is downloaded and installed, and an AAB is handed to the Play app.

Updates the app to the newest release, if one is available. If the tester is not signed in, asks them to sign in first, then checks for a new release; the task succeeds when there is none. Otherwise, after the tester confirms, an APK is downloaded and installed, and an AAB is handed to the Play app.