Testers could not download app from Firebase App Distribution

26,244

Solution 1

Thanks guys. My issue is I built my app with export_method was app-store, the right method should have been ad-hoc. I changed my export_method to ad-hoc and it works as I expect.

If someone changed the export_method and still get the error. Please check Vincenzo's answer

Solution 2

I finally got to resolve the problem.

The whole problem has to do with Provisioning Profiles. When you have to export for Firebase App Distribution is clearly stated in their docs that an ad-hoc export should be used, but the whole procedure and options are sparsely explained..

So here are the necessary steps:

  1. In your developer account generate a new Distribution certificate.
  2. Generate a new profile for distribution.
  3. For the new profile select the right AppId, the Distribution certificate, choose ad-hoc, and select the Device UUIDs you want(the tester's)
  4. In Xcode keep Automatic signing checked, and use your Developer profile.
  5. Make sure to update your profile:Xcode/Preferences `Download Manual Profiles' button.
  6. Make sure that in both Target/Building Settings/Signing and Project/Building Settings/Signing shows you iOS Developer profile under both Debugand Release not the Keychainone, but the Automatic one, else select it yourself.
  7. Archive the project. Product/Archive.
  8. Export the .ipa:
  9. If Xcode doesn't get you to the organiser window open it Windows/Organizer
  10. Select the proper App(from the left ìOS Apss`column) and archived file ( the latest is at the top of the list.
  11. Choose Distribute App button.
  12. Select a distribution method (Ad Hoc in this case)and click Nextbutton. Keep in mind that Each method require its own Certificate and Provisioning Profile..
  13. Choose options ( I left it as is..) and click Nextbutton.
  14. Re-signing the App is where things go wrong, keep Automatic ( here is where Xcode connects to your Developer account and sign the app with the Distributioncertificate and profile.
  15. Once all the compiling has finished just click Export button.
  16. Choose where to store the files on your computer and click Export.

Hope this step-by-step guide will be helpful to others..as the whole process is described very unclearly explained by the docs and puzzling all the info is quite frustrating..

Cheers.

Solution 3

That message from your tester means that the tester's udid isn't in the provisioning profile of the uploaded app. When a tester registers their device with App Distribution in the tester onboarding flow, App Distribution collects the udid and sends it to you. Thus you would need to add the udid to the provisioning profile, rebuild the app and send it out again.

Solution 4

As I'm using the service for the first time, I initially thought I didn't understand how it actually works, or it was too stupid to be true, but then it actually behaved as expected. My first experience worked like this:

  1. I exported my app with my current provisioning file (Developer, not Enterprise) and uploaded it to firebase distribution (1st time).

  2. I sent to my testers a link to download and install an app that they can't use because their device UUID is not registered in my provisioning file.

  3. I got a mail with their device UUID of my first tester and add it to my provisioning file.

  4. I exported again the app and upload it again (2nd time).

  5. It created a new distribution so I sent him a second link to download and install the second version that now should work.

  6. My second tester accepted and I received a second mail..added, exported and uploaded (third time).

  7. This time on console it show a big blue rectangle with the message that the version was updated with new devices and testers will be notified by mail. ( this is how I actually expected it to work ).

What can have happened on my 2nd upload? Would an Enterprise certificate avoid all this device UUID registering part?

Solution 5

I got this error by disabling arm64 via EXCLUDED_ARCHS for Any iOS SDK, including iOS devices (see the problem?). The archive worked fine as well as the upload, but after the user downloads the app, I get this message.

If you have a Podfile that sets EXCLUDED_ARCHS, you need to make both the app and the pods consistent (include arm64 for sims only).

Share:
26,244
Thanh Truong
Author by

Thanh Truong

Senior Software Engineer with experience developing customer facing IoT applications. Experience with full stack technologies such as Node.js, ReactJS/React Native, AWS, Docker and Jenkins (CI/CD). Ability to lead a team in Agile software development.

Updated on October 26, 2021

Comments

  • Thanh Truong
    Thanh Truong over 2 years

    We pushed iOS app to Firebase distribution and sent invitations to every tester. Our testers followed all steps and get ready to test the app. Unfortunately, the testers get the message “ The developer needs to update their app so that it can run on your device. You'll get an email once the app is ready to test.“ once they tried to download the app to their iOS. We can be sure that we built the app as a production version.

    Can you guys give me ideas for the issue?

  • Vincenzo
    Vincenzo over 4 years
    I actually exported with Developer method and is giving me nightmares.. I'm trying with the ad Hoc and see what happens
  • Vincenzo
    Vincenzo over 4 years
    Thanh how do you manage provisioning profile? do you create a new one and update it in Xcode every time you add new testers? 'cause that is what seems to be my problem..and I'v been advised to forget about Firebase App Distribution and just use TestFlight .. You can check my question here..thanks stackoverflow.com/questions/58543678/…
  • Thanh Truong
    Thanh Truong over 4 years
    I actually have only 3 provisioning profiles: development, ad-hoc and distributor. Once I tag my code and this is a trigger to kick-off my CI/CD to build a new release and upload it to Firebase App Distributor. My scripts in the CI/CD automatically switch my project to ad-hoc profile while building the app.
  • Vincenzo
    Vincenzo over 4 years
    I see.. I'm actually having a nightmare with the adHoc build.. the I upload it it throws an error.. I created an adHoc provisioning profile and downloaded it, but it doesn't seem to be used by Xcode.. And the build with adHock as export method is showing error when uploading to FBDistribution.. any idea why??
  • Thanh Truong
    Thanh Truong over 4 years
    May fastlane help you out is the particular case?
  • Vincenzo
    Vincenzo over 4 years
    well, I think it actually could. but before I have to be sure how to set things I have 2 certificates Developer and Distribution.( dough my first certificate I revoke keeps appearing in my developer account) I have 2 provisioning profile dev (tied to my Developer certificate and with only my devices ), and dist( tied with my Distribution certificate and with tester's devices) . Since I'm trying to assign manually each certificate and provisioning file to Debug and Release respectively both in project and target build settings, with manual signing in target/general everything is messed up..