In recent times Firebase has improved a lot and has added so many weapons to its arsenal. Every tool it has helps to build in a better way, improve, and grow. From the new additions, I want to discuss the Firebase App Distribution.
As the name suggests, app distribution, you can distribute your apps to the group of people or say QAs. You can share your pre-release versions to the testers, which can be easily accessed from their mobile devices. It actually has many advantages.
The biggest advantage I see is that if you use Crashlytics and App Distribution together, you will have full insights into your app versions from the single Firebase dashboard itself. For the current discussion, I will stick to the App Distribution only.
Firebase App Distribution provides many ways to distribute your apps to your testers.
I am covering the Android app distribution Gradle plugin here. So let’s quickly jump to the implementation part and see the results.
The very first and obvious thing is to integrate Firebase to your project (if not done already).
Once done with the Firebase integration now, let’s set up the App Distribution part.
1. Add the App Distribution plugin to the build. Gradle files.
Add the below plugin to the app/build, Gradle file. apply plugin: ‘com.google.firebase.appdistribution’
Add below classpath dependency to the project level/build. Gradle file. classpath ‘com.google.firebase:firebase-appdistribution-gradle:1.4.1’
2. Once synced the Gradle dependencies now it’s time to authenticate with Firebase. This is a very interesting step as it has 3 ways to authenticate.
– Using Google account via Gradle Plugin
– Using Firebase service account credentials
– Using the Firebase CLI
For this learning, I will go with the sweet and short way via Gradle Plugin. Open your terminal and run the following command gradlew appDistributionLogin For Mac or Linux ./gradlew can be used
This will give you an authentication link. Use that link to sign in to your Google account. Once you give permission to access your Firebase project, the Gradle will generate a refresh token, which will be used by the plugin to authenticate with Firebase.
Now you need to set up the environment variable FIREBASE_TOKEN to the refresh token generated. Use the below command for setting up the variable. set FIREBASE_TOKEN= refresh-token For Mac or Linux, export can be used.
The following image has all the commands used for the authentication process.
3. Now you need to configure your distribution properties. If you want you can set this for build types and flavors both. Make those changes in the app’s build. Gradle file.
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' firebaseAppDistribution { releaseNotesFile="app/releaseNotes.txt" testers="tester1@gmail.com, tester2@gmail.com" } debug { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' firebaseAppDistribution { releaseNotesFile="app/releaseNotes.txt" testers="tester1@gmail.com, tester2@gmail.com" } } } } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Demo version with limited features" testers="tester1@gmail.com, tester2@gmail.com" } } paid{ dimension "version" firebaseAppDistribution { releaseNotes="Paid version has more features" testers="tester1@gmail.com, tester2@gmail.com" } } }
There are other parameters available for configuration like custom apkPath, testersFile and etc.
4. Time for the result. Let’s distribute the build to our listed testers. For this run the command. gradlew assembleRelease appDistributionUploadRelease It actually builds the selected variant and distributes it with testers. The above command is for the release version, you can try others as well, for that just replace Release to your version. For e.g. for debug you use gradlew assembleDebug appDistributionUploadDebug. Basically it’s a build variant you want to distribute.
Once you are able to upload APK successfully. Your testers will get an invite or new build notifications. The new testers will get an email invite from the email itself they can set up the app manager and start testing the builds.
You can check the tester’s build status on the Firebase dashboard itself.
I personally believe that this tool is very much helpful in increasing the productivity of the team and of an individual as well. It saves so much effort and time of the team and ultimately helps to deliver builds fast to your customers and get their valuable feedback in time.
This blog is from Mindbowser‘s content team – a group of individuals coming together to create pieces that you may like. If you have feedback, please drop us a message on contact@mindbowser.com
Get the latest updates by sharing your email.
Flexible Engagement Model | Secure & Scalable Apps | First Time Right Process
Mindbowser helped us build an awesome iOS app to bring balance to people’s lives.
We had very close go live timeline and MindBowser team got us live a month before.
They were a very responsive team! Extremely easy to communicate and work with!
We’ve had very little-to-no hiccups at all—it’s been a really pleasurable experience.
Mindbowser is one of the reasons that our app is successful. These guys have been a great team.
Mindbowser was very helpful with explaining the development process and started quickly on the project.
The greatest benefit we got from Mindbowser is the expertise. Their team has developed apps in all different industries with all types of social proofs.
Mindbowser is professional, efficient and thorough.
Very committed, they create beautiful apps and are very benevolent. They have brilliant Ideas.
MindBowser was great; they listened to us a lot and helped us hone in on the actual idea of the app.” “They had put together fantastic wireframes for us.
They're very tech-savvy, yet humble.
Ayush was responsive and paired me with the best team member possible, to complete my complex vision and project. Could not be happier.
As a founder of a budding start-up, it has been a great experience working with Mindbower Inc under Ayush's leadership for our online digital platform design and development activity.
The team from Mindbowser stayed on task, asked the right questions, and completed the required tasks in a timely fashion! Strong work team!
They are focused, patient and; they are innovative. Please give them a shot if you are looking for someone to partner with, you can go along with Mindbowser.
We are a small non-profit on a budget and they were able to deliver their work at our prescribed budgets. Their team always met their objectives and I'm very happy with the end result. Thank you, Mindbowser team!!