Registers new devices to the Apple Dev Portal

This will register iOS/Mac devices with the Developer Portal so that you can include them in your provisioning profiles.
This is an optimistic action, in that it will only ever add new devices to the member center, and never remove devices. If a device which has already been registered within the member center is not passed to this action, it will be left alone in the member center and continue to work.
The action will connect to the Apple Developer Portal using the username you specified in your Appfile with apple_id, but you can override it using the username option, or by setting the env variable ENV['DELIVER_USER'].

Supported platforms ios, mac
Author @lmirosevic

4 Examples

  devices: {
    "Luka iPhone 6" => "1234567890123456789012345678901234567890",
    "Felix iPad Air 2" => "abcdefghijklmnopqrstvuwxyzabcdefghijklmn"
) # Simply provide a list of devices as a Hash
  devices_file: "./devices.txt"
) # Alternatively provide a standard UDID export .txt file, see the Apple Sample (
  devices_file: "./devices.txt", # You must pass in either `devices_file` or `devices`.
  team_id: "XXXXXXXXXX",         # Optional, if you"re a member of multiple teams, then you need to pass the team ID here.
  username: ""   # Optional, lets you override the Apple Member Center username.
  devices: {
    "Luka MacBook" => "12345678-1234-1234-1234-123456789012",
  platform: "mac"
) # Register devices for Mac


Key Description Default
devices A hash of devices, with the name as key and the UDID as value
devices_file Provide a path to a file with the devices to register. For the format of the file see the examples
api_key_path Path to your App Store Connect API Key JSON file (
api_key Your App Store Connect API Key information ( *
team_id The ID of your Developer Portal team if you're in multiple teams *
team_name The name of your Developer Portal team if you're in multiple teams *
username Optional: Your Apple ID *
platform The platform to use (optional) ios

* = default value is dependent on the user's system


To show the documentation in your terminal, run

fastlane action register_devices


It is recommended to add the above action into your Fastfile, however sometimes you might want to run one-offs. To do so, you can run the following command from your terminal

fastlane run register_devices

To pass parameters, make use of the : symbol, for example

fastlane run register_devices parameter1:"value1" parameter2:"value2"

It's important to note that the CLI supports primitive types like integers, floats, booleans, and strings. Arrays can be passed as a comma delimited string (e.g. param:"1,2,3"). Hashes are not currently supported.

It is recommended to add all fastlane actions you use to your Fastfile.

Source code

This action, just like the rest of fastlane, is fully open source, view the source code on GitHub

Back to actions