Register additional iOS devices

If you want to distribute ad hoc iOS builds usingApp Distribution, you must followthis guide to register your testers' devices. Anad hocbuild is a build not signed with an Enterprise profile. A device can only install anad hoc build if the device's unique device identifier (UDID) is included in thebuild's provisioning profile.

When a tester accepts an invitation to test your app,App Distribution requestspermission to share the tester's device identifier with you, the developer.Before downloading an ad hoc build,App Distribution asks the tester to registertheir device. If the tester registers their device,App Distribution collects theUDID from the device and notifies you of the UDID by email.

When you receive an email containing a UDID, update your provisioning profilewith the UDID and distribute a new build to your testers. You can manuallyexport UDIDs using theFirebase console or FirebaseCLI, or you can programmatically export UDIDs usingfastlane.

Manually export UDIDs

  1. Add the devices to your Apple developer portal.
    • Option 1:Import the device UDIDs as a CSV file.

      In theTesters & Groups tab of theApp Distribution dashboard, selectAll testers, then clickExport Apple UDIDs to download a CSV file. Next, import the file into yourApple developer account using theRegister Multiple Devices option. To learn more, seeDistributing your app to registered devices.

      Note that your Apple developer account may only allow you to import a limited number of devices per year.

    • Option 2:Collect and enter the UDIDs by email.

      On theAdd Devices page of the Apple developer portal, register the new UDID specified in the email you received.

  2. Add the registered devices to yourprovisioning profile.
  3. Download the provisioning profile and use it to rebuild your app. If you are rebuilding only to update the registered devices, don't update the build number or version.
  4. Re-distribute your app from theFirebase console orCLI. If you don't change your version, build number, or your app's code,App Distribution does not create a new release and won't notify testers. If you already distributed a build with the same build number and version, only users of newly-registered devices receive notification emails.

Programmatically export UDIDs using fastlane

  1. Export all of your tester device UDIDs as a CSV file from fastlane. Forexample, create and run a newdownload_udids lane:

    lane:download_udidsdofirebase_app_distribution_get_udids(app:"<your Firebase app ID>",output_file:"<path to output file>",)end
    Note: To automate releasing a new build with new UDIDs, seeDistribute yourpre-release iOS builds faster withApp Distribution andfastlane.
  2. Import the UDID(s) into yourApple developer account using theRegister Multiple Devices option. To learn more, seeApple'sdocumentation.Note that your Apple developer account may only allow you to import alimited number of devices per year.

  3. Add the registered devices to yourprovisioning profile.

  4. Download the provisioning profile and use it to rebuild your app. If you arerebuilding only for the purposes of updating the registered devices, don'tupdate the build number or version.

  5. Re-distribute yourapp. If youdon't change your version, build number, or your app's code,App Distribution does not create a new release and won't notify testers. If youalready distributed a build with the same build number and version, onlyusers of newly-registered devices will receive notification emails.

Receive alerts

Get default alerts

By default, Firebase can sendApp Distribution alerts for new iOS deviceregistrations via email.

To receiveApp Distribution alerts via this default mechanism, you must have thefirebase.projects.update permission. The following roles include this requiredpermission by default:FirebaseAdmin or projectOwner orEditor.

By default, every project member (who has the required permissions to receivealerts) will get an email when a new iOS device is registered.

Turn on/off alerts for your own account

For your own account, you can turn on/offApp Distribution alerts withoutaffecting other project members. Note that you still need the requiredpermissions to receive alerts.

To turnApp Distribution alerts on or off, follow these steps:

  1. In theFirebase console, in the top right-corner, go toFirebasealerts.
  2. Then, go toSettings and set your account preference forApp Distributionalerts.

Set up advanced alerting to third-party services

You can also sendApp Distribution alerts to your team's preferred notificationchannel usingCloud Functions for Firebase. For example, you can write a functionthat captures an alert event for the registration of a new iOS device and postthe alert information to a third-party service, like Discord, Slack, or Jira.

To fully automate onboarding new iOS testers, you can write a function that addsa new iOS device's UDID to the provisioning profile of your app, rebuilds theapp, and redistributes the app with the updated provisioning profile.

Note: To use advanced alerting capabilities, your Firebase project needs to usetheBlaze pricing plan.

To set up advanced alerting capabilities usingCloud Functions for Firebase, follow these steps:

  1. Set up Cloud Functions for Firebase,which includes the following tasks:

    1. Set up a development environment for Node.js or Python.
    2. Install and sign into theFirebase CLI.
    3. InitializeCloud Functions for Firebase using theFirebase CLI.
  2. Write and deploy a function thatcaptures an alert event fromApp Distribution and handles the eventpayload (for example, posts the alert information in a message on Discord).

To learn about all of the alert events that you can capture, go to the referencedocumentation forApp Distributionalerts.

Next steps

Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025-12-17 UTC.