The Perfect Guide for Releasing Your React Native (iOS and Android) App Using Firebase App Distribution

How to test your app with Firebase App Distribution

Anshuman Bhardwaj
One thing I learned today

--

Firebase App Distribution

Last week I was trying to ship my React Native app using Firebase App Distribution for internal testing.

Although the process is pretty straightforward, there is a chance that we miss out on some details while in a hurry to ship the product. Let's settle this once and for all.

Firebase

  1. Create a firebase project, if you haven’t already.
  2. Add the Android app to the project using the following guide.
  3. You only need to follow all the steps under the heading Register your app with Firebase.
  4. Don’t forget to add the SHA signatures for your app, of both the debug and release Keystore.
  5. Add the iOS app to your project using the following guide.

Firebase App Distribution

  1. Go to the App Distribution panel on your firebase console.
App Distribution

2. Under Testers & Groups add testers email.

3. Make groups of users like Internal testers, Beta testers or Staging testers etc.

4. Now go to the Invite links section and create invite links for different groups.

Note: You’ll have to create different invite links for Android and iOS apps.

5. For iOS the testers will have to accept the invite and then you’ll get an email with there iPhone’s UUID which you’ll have to add to the device list on you Apple Developer account and then to the Provisioning profile that we’ll create in the iOS section down below.

6. After adding the device to the Adhoc provisioning profile you’ll have to re-download it to your Xcode.

7. You can verify the device ids by double-clicking the provision file in your mac finder app, it will show you the list of device ids when you scroll down.

Android

  1. Create a release Keystore file for your app, you can find more information about that here.
  2. Then go to the android/ directory in your project and run ./gradlew assembleRelease this will generate an app-release.apk at android/app/build/outputs/apk/release in your project root.
  3. Now go to your firebase project console > App Distribution > Android and drop this apk there.
  4. Add the release notes and select the user group to send this app to.
  5. The users/testers will receive the email with the app download button and all related information.

iOS

  1. Make sure you have access to the Apple developer account.
  2. Create an Adhoc provisioning profile for your app using the Apple Developer console, if you don’t have one already.

Note: You’ll have to create Adhoc profile for any service extension or subproject that you might have e.g OneSignal.

3. Add this to your Xcode project by going to the Signing and Capabilities tab.

4. Make sure this profile has device UUIDs for all the iPhone users in your firebase tester groups.

5. Now select the Generic ios device under the device selection menu beside the Run button on Xcode, and do Project > Archive from the menu bar.

6. After successful archiving, Xcode will popup the organizer window. By which btw you can also open by Window > Organizer from the menu bar.

7. Select the archive and click on Distribute App in the right sidebar of this window, select Adhoc click next, click next with default options, on the next tab you’ll be required to select the provisioning profile. Here select the Adhoc profile that we created in the beginning and click next.

8. After a while the IPA will be ready, click export, and save the folder.

9. Now go to the iOS tab in Firebase app distribution and upload the IPA, add release notes, select iPhone users group, and release.

Yes, that’s all.

Troubleshooting

  1. Make sure the provisioning profile is Adhoc and it contains all the device UUIDs of the testers.
  2. Make sure after updating the provisioning profile you download it and update it in the Xcode project as well.
  3. You will have to add device ids to every provisioning profile that you have.

Comment below if you need any other help.
I had a hard time doing it, so I might have answers to resolve your issues too.

Also give it a clap, if this article helped you.

If you haven’t already please follow me, to get notified about such posts.

Similar guides

--

--