This page provides troubleshooting help and answers to frequently asked questions about distributing and testing apps with App Distribution.
Distributing apps
Use the following tips to troubleshoot issues that you might encounter when distributing apps to your testers.
When uploading an app, you might encounter this error:
"We could not find a contact email for app <app-id>
. Please visit
App Distribution within the Firebase console to set one up."
Set a Contact Email in the Firebase console, if available. If the issue persists, contact Firebase Support.
If you repeatedly encounter errors 400, 409, or 500 during provisioning, contact Firebase Support. Provide Support with your Firebase project number and app identifier.
Verify the size of the APK. The maximum file size limit for all binaries is 2048 MiB, which is a little over 2 GB.
If the APK size is within the file size limit and is reproducible, contact Firebase Support.
Verify that the APK is signed using the following:
apksigner verify --verbose ~/app-distro/app-distro-apps/[path_name]/app/ build/outputs/apk/debug/app-debug.apk
Distributing Android App Bundles (AABs)
When you upload an AAB to App Distribution, Google Play automatically resigns the generated APK using a test app signing key certificate. When prompted, you must register your app with API providers if you want to continue using their third-party services. Once signed, your app's test certificate can be viewed in the Firebase console.
AAB builds you upload to App Distribution do not appear in your Google Play developer account (this includes App Bundle Explorer and internal app sharing).
If a Firebase Android App is unlinked from Google Play, the following happens:
You will not be able to upload new app bundles to App Distribution and export them to Google Play via the App Distribution integration with Google Play.
Existing builds will continue to be available in the Firebase App Distribution dashboard and to your testers.
Any data previously exported between Firebase and Google Play will remain accessible in both products.
To distribute an Android App Bundle (AAB) through App Distribution and automatically link uploaded AABs to both your Firebase project and your Google Play developer account, make sure you meet the following requirements:
Your Google Play developer account has one of the following access levels: Owner or Admin.
For your Firebase project, you have one of the following roles: Owner or Firebase Admin.
Your app is registered with Firebase and your Google Play developer account. This means that you have both a Firebase Android app and a Google Play app.
The app in Google Play and the Firebase Android app are both registered using the same package name.
The app in Google Play is set up on the app dashboard and is distributed to one of the Google Play tracks (Internal testing, Closed testing, Open testing, or Production).
The app's review in Google Play is complete and the app is published. Your app is published if the App status column displays one of the following statuses: Internal testing (not Draft internal testing), Closed testing, Open testing, or Production.
If you uploaded an app that previously didn't meet the criteria listed above for linking, but it does now, you can retry linking your Firebase Android App to Google Play.
Installing and testing apps
Use the following tips to troubleshoot issues that your testers might encounter when they install and test your apps.
When a user creates a Google account, they automatically receive a Gmail address.
If a tester doesn't have a Google Workspace or Gmail address, or if they would rather use another email address to sign in, ask the tester to link a non-Gmail email address to the account and use that email to sign in.
When choosing an alternate email, the tester must follow these guidelines:
- Don't use a Gmail address.
- Don't use an email address that's already linked to another Google account.
- Remember to use your Google Account password when signing in with this email address.
For more information, see Sign in to your Google Account with another email address.
If the tester accepted the email invitation with a different email address than the invite was sent to, the tester might not be able to see the right apps or builds.
The email that the developer sends invitations to and adds to new builds (Email A) can be different from the email that the tester uses to accept the invitation (Email B). This creates a link behind the scenes. Whenever Email A is added to new builds, it's actually Email B that's getting access.
If the tester accepted the email invitation with a different email address, follow these steps to resolve the issue:
Delete the tester from the View all testers section of the Testers & Groups tab in the App Distribution page of the Firebase console. Existing invitations are removed.
Re-invite the tester to test your app. The tester should receive an invitation email.
Make sure that the tester accepts the invitation with the same email address.
Testers might not receive email notifications if one of the following occurs:
Email notifications are sent to spam folders.
Email filters are set.
The invite was sent to one email account, but the tester accepted with a different email account. The tester receives new release emails for the email account to which the invitation was originally sent.
The tester was previously invited but did not accept the initial invitation. If the tester is added to subsequent releases, App Distribution won't automatically send release notifications to that tester because the tester didn't accept the initial invitation.
Solution 1
Ask the tester to check their spam folder and any email filters they set in their email service.
If the tester unsubscribed from the emails, ask the tester to do the following:
- Find an email that the tester previously received from the app.
- Click Manage email settings at the bottom and click Allow emails to resubscribe.
Solution 2
If the tester doesn't want email notifications but wants to be able to accept app invitations, they can view pending app invitations directly in the App Tester app (download instructions).
Solution 3
Delete the tester from the View all testers section of the Testers & Groups tab in the App Distribution page in the Firebase console. This action removes existing invitations.
Re-invite the tester to test your app. The tester should receive an invitation email. Make sure that the tester accepts the invitation with the same email address that the invitation was sent to.
If a tester downloads and installs a release but the app details user interface does not show that the app is installed, this is a known issue. In some cases, the bundle ID in the Firebase app does not match the bundle ID of the APK.
Verify that the bundle ID of the APK matches the bundle ID of the Firebase app you used to upload the distribution.
The Android alert appears if your running app or browser hasn't yet been given permission to install apps outside of Google Play. To grant permission:
Android version 8 or later: In the Settings app, tap Allow from this source.
Android version 7 or earlier: In the Settings app, tap Security and select Unknown sources. When the prompt appears, tap OK > Trust.
If a test APK fails to install on a tester's device:
- Verify that the certificate(s) in the new version match those in the version installed on the tester's device. The Android system only allows the app to update if the certificates match. To learn more, see Signing considerations.
- Ensure that the OS version of the tester device is supported by the app
(check the
minSdkVersion
).
If the App Tester app prevents you from signing in and redirects you back to the signin screen, you may be using a Google Workspace (formerly GSuite) that includes restriction settings.
To remove your restriction settings:
In the Apps tab of your Google Workspace, make sure Firebase App Distribution is not set to Access: Blocked.
In the Services tab, make sure Cloud Platform is unrestricted.
Once the settings are removed, try signing in again.
This error can happen when the app being installed conflicts with an app already installed on the device. For example, it could be a different variant of the same app with the same custom permission or ContentProvider name.
You can ask the tester to collect a bug report immediately after experiencing the issue, and inspect the report for more information about the cause. The tester must delete any conflicting apps before the new app can be installed.
When you encounter a 403 error, this means that the account you're using doesn't have permission to install and test apps. Access is determined by the administrator of your account's domain in Google Workspace.
If you believe you should have permission to install and test apps, ask your Google Workspace account admin to change your account settings. Your admin should follow the instructions in Manage access to services that aren't controlled individually.
If you have multiple accounts, try logging in with a different account that is not restricted from installing and testing apps.
If you're a first-time tester, see Get set up as a tester.
If you're an existing App Distribution tester and you get a new Android device to test on, instead of going through the entire new tester flow again, follow these steps:
Navigate to appdistribution.firebase.google.com on your Android device.
Sign in with your existing tester account, and click the Download App Tester button at the bottom of the screen to install the Android App Tester app.
Enabling tester features with the App Distribution Android SDK
Use the following tips to troubleshoot issues that involve enabling in-app new build alerts or submitting in-app feedback using the App Distribution Android SDK.
If you already set up the App Distribution Android SDK in your app to support in-app feedback and your testers are unable to submit feedback, follow these steps:
Enable verbose logging for the App Distribution Android SDK in your app:
adb shell setprop log.tag.FirebaseAppDistribution VERBOSE
Check for error messages in your app logs by filtering for "FirebaseAppDistribution".
Confirm that the tester has access to the installed release:
If the logs indicate that "the tester does not have access to this resource," your tester may not have have been invited to the app, or may not have access to the release.
In the App Distribution dashboard of the Firebase console, find the exact release that is running on the tester's device, and make sure the tester is listed in the Testers tab on the release card and is in the Accepted state.
If you still aren't receiving feedback, follow these steps:
On the test device, sign into Firebase App Distribution using App Tester or the tester web app. Be sure to select the Google account you first used when you accepted the invitation to test the app.
Install the app again using App Tester or the test web app to ensure that the tester has access to the release.
Try to submit feedback, again making sure to sign in with the same Google account.
Make sure you enabled the Firebase App Testers API. For more information, see Enable the App Distribution Tester API.
Under Key restrictions, make sure that the Firebase App Testers API is included in the list of allowed APIs.
If you see this message when submitting feedback, "Would have sent feedback, but did not due to development mode," disable developer mode on the device by running this command:
adb shell setprop debug.firebase.appdistro.devmode false
Check your
google-services.json
file to make sure you are submitting feedback for the correct project and app.Enable verbose logging for the App Distribution Android SDK in your app:
adb shell setprop log.tag.FirebaseAppDistribution VERBOSE
Check for error messages in your app logs by filtering for "FirebaseAppDistribution".
If you have already set up the App Distribution Android SDK in your app and your testers aren't receiving in-app alerts, follow these steps:
Check for error messages by attaching an
OnFailureListener
to the Task returned by the Firebase App Distribution API.Java
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener ( e -> { if (e instanceof FirebaseAppDistributionException) { // Log exception here }});
Kotlin
firebaseAppDistribution.updateIfNewReleaseAvailable().addOnFailureListener { e -> if (e is FirebaseAppDistributionException) { // Log exception here } }
Check that the tester has access to the new release:
Enable debug mode in your app. To learn how, see the Google Analytics documentation.
Run your app in a simulator and search for the string "FirebaseAppDistribution".
If the logs indicate that no release was found, or that the tester does not have access, your tester may not yet be associated with the new release.
In the App Distribution dashboard of the Firebase console, make sure your tester is included in your build distribution and is in the Accepted state.
If your tester still isn't receiving alerts, have them follow the tips below to make sure they accepted the invitation to test your app and that they set up their testing device properly:
On the test device, sign into Firebase App Distribution via App Tester or via the tester web app. Remember to select the Google account you first used when you accepted the invitation to test the app.
Check to make sure the new app release is available in App Tester or the tester web app.
By default, your testers only need to sign in to their Google account once to enable testing features. If your testers are being prompted to sign in again after closing and re-opening your app, follow these tips to make sure your App Distribution configuration is set up properly:
Check to make sure you've enabled the Firebase App Testers API. For more information, see Enable the App Distribution Tester API.
Under Key restrictions, make sure that the Firebase App Testers API is included in the list of allowed APIs.
If you typically clear SharedPreferences on logout, you may be clearing your tester's state. App Distribution stores a flag that indicates whether your tester has already signed into the app. For more information, see the GitHub repository.
Frequently asked questions
Firebase App Distribution has the following tester limits:
Add a maximum of 500 testers to a Firebase project
Add a maximum of 200 testers to an App Distribution group
To add more testers, request a no-cost limit increase.
Testers have 30 days to accept an invitation to test the app before it expires. When an invitation is 5 days from expiring, an expiration notice appears in the Firebase console next to the tester on a release. An invitation can be renewed by resending it via the drop-down menu on the tester row.
App releases are removed from App Distribution if one of the following conditions occurs:
- The app release is older than 150 days.
- You exceed the 1,000 app release limit, and the app release is older than the 1,000 most recent app releases.
For more information, see App Distribution supports a maximum of 1,000 releases.
After the app reaches or exceeds the 150-day expiration limit or the 1,000 release limit, the release is removed from the App Distribution dashboard and the Firebase App Tester app. If your tester has installed the release, the local version of the app continues to run.
To keep the app release available longer, use one of the following recommendations:
- Before the app release expires or exceeds the release limit, download the APK or AAB and delete the release from the App Distribution dashboard. Then, re-upload the APK or AAB as a new build to App Distribution.
- Download the release and upload it to Cloud Storage for long-term archiving.
App releases expire after 150 days
When you upload a release of your app to Firebase, the release appears in the App Distribution dashboard for 150 days, starting from the upload date. After you upload the release, you can distribute it to testers, who install the release from the Firebase App Tester app on their testing device.
When the release is 30 days from the expiration date, an app release expiration notification appears on your release in the Firebase App Tester app.
App Distribution supports a maximum of 1,000 releases
App Distribution allows a maximum of 1,000 releases per app. When your app reaches the 1,000 app release limit, App Distribution automatically deletes the oldest releases above the limit.
If you want to manually manage your app releases, use the App Distribution REST API to list and delete app releases in bulk.
If you have questions, contact Firebase Support.
If you're a tester, we recommend downloading Firebase App Tester, an app that lets you access all your test builds in one place.
Firebase App Distribution uses Firebase Test Lab infrastructure, and its quota limits and pricing are the same. Testing quotas are measured by the number of tests run per day. To learn more about testing quotas and billing, see Usage levels, quotas, and pricing for Test Lab.
If you exceed quota, you'll receive quota exceeded errors. Quotas take about 24 hours to reset, so you should avoid retries until quota is released. However, if you receive errors related to Automated tester infrastructure, calls are more likely to succeed if you re-try immediately.
You will need to have Editor access on the Firebase project in order to run tests with the Automated Tester feature.
To delete your App Distribution tester account and its associated data, follow these steps in order:
Visit https://appdistribution.firebase.google.com and sign in with your Google account.
In the top-right, click
(Manage account)Delete account.
Optional: In your Google account permissions, revoke access from Firebase App Distribution. Note that revoking access without first deleting your App Distribution account does not delete your tester account or data.