Distribute iOS apps to testers using the Firebase console

Hi everyone.

I have a doubt to try to distribute iOS app through Firebase. I have build a iOS app into release-channel called test. I let Expo handle the process. I can see in my apple developer account, a provisioning profile type App Store , and the documentation from firebase says:

To distribute your app beyond your development team, you must use either an Ad Hoc or Enterprise distribution profile.

I don`t know if this provisioning profile is fine to distribute app through firebase. Because I uploaded an .ipa file to Firebase Console. After this my tester got an email and he accepted invitation, I saw other email like this:

How to set up your app for this tester’s device

  1. Copy and paste the above UDID and add it in the Apple Developer portal
  2. Include the device in your app’s provisioning profile.
  3. Build your app using the updated provisioning profile.
  4. Distribute your app in the Firebase console or using CLI tools.

In the point two I cannot see any way to add device in my app’s provisioning profile. I will be missing something.

I read in other post @iyk-azorji → Push Notifications not working on IOS (DeviceNotRegistered on Notifications Tool network tab)

… I built a standalone app with custom certificates and provisioning profile as well as a push notification .p8 key. The app is distributed to testers using the Firebase App distribution service. …

Would I have to create a new .ipa file with expo-cli but with custom certificates and provisioning profile ?

Thanks for any information to help me on this.

I’m running into the same issue. It doesn’t make much sense to continuously rebuild the app every time you want to add new testers. Did you end up figuring out the best way around this?

Hi @asoomar,

I forgot to write the answer here, a little busy with other tasks. At the end I knew the issue.

I was using default set up from EXPO, like I said in my first post, I let EXPO handle the process. The problem with apple and firebase is because of they requiere Ad Hoc or Enterprise distribution profile. But Expo creates App Store provisioning profile type, that is fine if you use TestingFlight process to test them, but not for firebase.

Then you have to go to your apple developer account: Certificates, Identifiers & Profiles, and choose Profiles and click plus button to create a new profile, in the part Distribution you have to choose Ad Hoc, and follow rest of steps. When you finish the process, download the provisioning profile in your workspace, or wherever you want.

Then you have to delete your provisioning profile and let expo knows the new provisioning profile.

–clear-provisioning-profile Remove Provisioning Profile stored on Expo servers.

–provisioning-profile-path <.mobileprovision> Path to your Provisioning Profile.

expo build:ios --clear-provisioning-profile --provisioning-profile-path 'path-here-your-provisioning-profile'

Before to do this, if you want, you can fetch all data firstly:

expo fetch:ios:certs

If you want more information, you can use expo-cli with help flag:

expo command --help

like this: expo build:ios --help

When the build process finishes, you download your .ipa file and go to firebase, you will upload this new file, and only you have to add email address, you don’t need to add new devices in every build because they will be added automatically, and firebase let them know when a new version is ready to install.

1 Like

Thanks so much for the info! This is super useful! I have already went ahead and released a build through TestFlight, but I was just wondering from your experience, which do you prefer for testing apps, Firebase or TestFlight and why? I know it’s possible to directly have access to both Android and iOS versions in one spot with Firebase, but beyond this, is there any greater advantages?

Hi @asoomar,

There are with Firebase some cool option, but it is not nothing special. For this current project, first project with Expo, It is because of for my team manager prefers to have everything into one place, all projects, and because our target platform is android right now, but we are developing at same time this app for iOS. Apart of that, with Firebase you have options to manage some features like Analytics (not all options for Expo), Crashlytics (not available right now for Expo), and Real Time Database or Messaging, As I said, for Expo not all options are available right now. But we have worked with Firebase in other projects.

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.