Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

eas-cli

expo1mMIT16.17.0TypeScript support: included

EAS command line tool

expo, eas, cli

readme

eas-cli

EAS command line tool

oclif Version Downloads/week License

Installation

npm install -g eas-cli
# or
yarn global add eas-cli

Enforcing eas-cli version for your project

If you want to enforce the eas-cli version for your project, use the "cli.version" field in eas.json. Installing eas-cli to your project dependencies is strongly discouraged because it may cause dependency conflicts that are difficult to debug.

An example of eas.json that enforces eas-cli in version 1.0.0 or newer:

{
  "cli": {
    "version": ">=1.0.0"
  },
  "build": {
    // build profiles
  },
  "submit": {
    // submit profiles
  }
}

Learn more: https://docs.expo.dev/build/eas-json/

Usage

eas COMMAND
# runs the command
eas (-v|--version|version)
# prints the version
eas --help COMMAND
# outputs help for specific command

Commands

eas account:login

log in with your Expo account

USAGE
  $ eas account:login [-s]

FLAGS
  -s, --sso  Login with SSO

DESCRIPTION
  log in with your Expo account

ALIASES
  $ eas login

See code: packages/eas-cli/src/commands/account/login.ts

eas account:logout

log out

USAGE
  $ eas account:logout

DESCRIPTION
  log out

ALIASES
  $ eas logout

See code: packages/eas-cli/src/commands/account/logout.ts

eas account:view

show the username you are logged in as

USAGE
  $ eas account:view

DESCRIPTION
  show the username you are logged in as

ALIASES
  $ eas whoami

See code: packages/eas-cli/src/commands/account/view.ts

eas analytics [STATUS]

display or change analytics settings

USAGE
  $ eas analytics [STATUS]

DESCRIPTION
  display or change analytics settings

See code: packages/eas-cli/src/commands/analytics.ts

eas autocomplete [SHELL]

display autocomplete installation instructions

USAGE
  $ eas autocomplete [SHELL] [-r]

ARGUMENTS
  SHELL  (zsh|bash|powershell) Shell type

FLAGS
  -r, --refresh-cache  Refresh cache (ignores displaying instructions)

DESCRIPTION
  display autocomplete installation instructions

EXAMPLES
  $ eas autocomplete

  $ eas autocomplete bash

  $ eas autocomplete zsh

  $ eas autocomplete powershell

  $ eas autocomplete --refresh-cache

See code: @oclif/plugin-autocomplete

eas branch:create [NAME]

create a branch

USAGE
  $ eas branch:create [NAME] [--json --non-interactive]

ARGUMENTS
  NAME  Name of the branch to create

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  create a branch

See code: packages/eas-cli/src/commands/branch/create.ts

eas branch:delete [NAME]

delete a branch

USAGE
  $ eas branch:delete [NAME] [--json --non-interactive]

ARGUMENTS
  NAME  Name of the branch to delete

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  delete a branch

See code: packages/eas-cli/src/commands/branch/delete.ts

eas branch:list

list all branches

USAGE
  $ eas branch:list [--offset <value>] [--limit <value>] [--json --non-interactive]

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --limit=<value>    The number of items to fetch each query. Defaults to 50 and is capped at 100.
  --non-interactive  Run the command in non-interactive mode.
  --offset=<value>   Start queries from specified index. Use for paginating results. Defaults to 0.

DESCRIPTION
  list all branches

See code: packages/eas-cli/src/commands/branch/list.ts

eas branch:rename

rename a branch

USAGE
  $ eas branch:rename [--from <value>] [--to <value>] [--json --non-interactive]

FLAGS
  --from=<value>     current name of the branch.
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.
  --to=<value>       new name of the branch.

DESCRIPTION
  rename a branch

See code: packages/eas-cli/src/commands/branch/rename.ts

eas branch:view [NAME]

view a branch

USAGE
  $ eas branch:view [NAME] [--offset <value>] [--limit <value>] [--json --non-interactive]

ARGUMENTS
  NAME  Name of the branch to view

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --limit=<value>    The number of items to fetch each query. Defaults to 25 and is capped at 50.
  --non-interactive  Run the command in non-interactive mode.
  --offset=<value>   Start queries from specified index. Use for paginating results. Defaults to 0.

DESCRIPTION
  view a branch

See code: packages/eas-cli/src/commands/branch/view.ts

eas build

start a build

USAGE
  $ eas build [-p android|ios|all] [-e <value>] [--local] [--output <value>] [--wait] [--clear-cache] [-s |
    --auto-submit-with-profile <value>] [--what-to-test <value>] [-m <value>] [--build-logger-level
    trace|debug|info|warn|error|fatal] [--freeze-credentials] [--verbose-logs] [--json --non-interactive]

FLAGS
  -e, --profile=PROFILE_NAME                                Name of the build profile from eas.json. Defaults to
                                                            "production" if defined in eas.json.
  -m, --message=<value>                                     A short message describing the build
  -p, --platform=(android|ios|all)
  -s, --auto-submit                                         Submit on build complete using the submit profile with the
                                                            same name as the build profile
  --auto-submit-with-profile=PROFILE_NAME                   Submit on build complete using the submit profile with
                                                            provided name
  --build-logger-level=(trace|debug|info|warn|error|fatal)  The level of logs to output during the build process.
                                                            Defaults to "info".
  --clear-cache                                             Clear cache before the build
  --freeze-credentials                                      Prevent the build from updating credentials in
                                                            non-interactive mode
  --json                                                    Enable JSON output, non-JSON messages will be printed to
                                                            stderr.
  --local                                                   Run build locally [experimental]
  --non-interactive                                         Run the command in non-interactive mode.
  --output=<value>                                          Output path for local build
  --verbose-logs                                            Use verbose logs for the build process
  --[no-]wait                                               Wait for build(s) to complete
  --what-to-test=<value>                                    Specify the "What to Test" information for the build in
                                                            TestFlight (iOS-only). To be used with the `auto-submit`
                                                            flag

DESCRIPTION
  start a build

See code: packages/eas-cli/src/commands/build/index.ts

eas build:cancel [BUILD_ID]

cancel a build

USAGE
  $ eas build:cancel [BUILD_ID] [--non-interactive] [-p android|ios|all] [-e <value>]

FLAGS
  -e, --profile=PROFILE_NAME        Filter builds by build profile if build ID is not provided
  -p, --platform=(android|ios|all)  Filter builds by the platform if build ID is not provided
  --non-interactive                 Run the command in non-interactive mode.

DESCRIPTION
  cancel a build

See code: packages/eas-cli/src/commands/build/cancel.ts

eas build:configure

configure the project to support EAS Build

USAGE
  $ eas build:configure [-p android|ios|all]

FLAGS
  -p, --platform=(android|ios|all)  Platform to configure

DESCRIPTION
  configure the project to support EAS Build

See code: packages/eas-cli/src/commands/build/configure.ts

eas build:delete [BUILD_ID]

delete a build

USAGE
  $ eas build:delete [BUILD_ID] [--non-interactive] [-p android|ios|all] [-e <value>]

FLAGS
  -e, --profile=PROFILE_NAME        Filter builds by build profile if build ID is not provided
  -p, --platform=(android|ios|all)  Filter builds by the platform if build ID is not provided
  --non-interactive                 Run the command in non-interactive mode.

DESCRIPTION
  delete a build

See code: packages/eas-cli/src/commands/build/delete.ts

eas build:dev

run dev client simulator/emulator build with matching fingerprint or create a new one

USAGE
  $ eas build:dev [-p ios|android] [-e <value>]

FLAGS
  -e, --profile=PROFILE_NAME    Name of the build profile from eas.json. It must be a profile allowing to create
                                emulator/simulator internal distribution dev client builds. The "development-simulator"
                                build profile will be selected by default.
  -p, --platform=(ios|android)

DESCRIPTION
  run dev client simulator/emulator build with matching fingerprint or create a new one

See code: packages/eas-cli/src/commands/build/dev.ts

eas build:download

download simulator/emulator builds for a given fingerprint hash

USAGE
  $ eas build:download --fingerprint <value> [-p ios|android] [--dev-client] [--json --non-interactive]

FLAGS
  -p, --platform=(ios|android)
  --[no-]dev-client             Filter only dev-client builds.
  --fingerprint=<value>         (required) Fingerprint hash of the build to download
  --json                        Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive             Run the command in non-interactive mode.

DESCRIPTION
  download simulator/emulator builds for a given fingerprint hash

See code: packages/eas-cli/src/commands/build/download.ts

eas build:inspect

inspect the state of the project at specific build stages, useful for troubleshooting

USAGE
  $ eas build:inspect -p android|ios -s archive|pre-build|post-build -o <value> [-e <value>] [--force] [-v]

FLAGS
  -e, --profile=PROFILE_NAME
      Name of the build profile from eas.json. Defaults to "production" if defined in eas.json.

  -o, --output=OUTPUT_DIRECTORY
      (required) Output directory.

  -p, --platform=(android|ios)
      (required)

  -s, --stage=(archive|pre-build|post-build)
      (required) Stage of the build you want to inspect.
      archive - builds the project archive that would be uploaded to EAS when building
      pre-build - prepares the project to be built with Gradle/Xcode. Does not run the native build.
      post-build - builds the native project and leaves the output directory for inspection

  -v, --verbose

  --force
      Delete OUTPUT_DIRECTORY if it already exists.

DESCRIPTION
  inspect the state of the project at specific build stages, useful for troubleshooting

See code: packages/eas-cli/src/commands/build/inspect.ts

eas build:list

list all builds for your project

USAGE
  $ eas build:list [-p android|ios|all] [--status
    new|in-queue|in-progress|pending-cancel|errored|finished|canceled] [--distribution store|internal|simulator]
    [--channel <value>] [--app-version <value>] [--app-build-version <value>] [--sdk-version <value>] [--runtime-version
    <value>] [--app-identifier <value>] [-e <value>] [--git-commit-hash <value>] [--fingerprint-hash <value>] [--offset
    <value>] [--limit <value>] [--json --non-interactive] [--simulator]

FLAGS
  -e, --build-profile=<value>                                                   Filter only builds created with the
                                                                                specified build profile
  -p, --platform=(android|ios|all)
  --app-build-version=<value>                                                   Filter only builds created with the
                                                                                specified app build version
  --app-identifier=<value>                                                      Filter only builds created with the
                                                                                specified app identifier
  --app-version=<value>                                                         Filter only builds created with the
                                                                                specified main app version
  --channel=<value>
  --distribution=(store|internal|simulator)                                     Filter only builds with the specified
                                                                                distribution type
  --fingerprint-hash=<value>                                                    Filter only builds with the specified
                                                                                fingerprint hash
  --git-commit-hash=<value>                                                     Filter only builds created with the
                                                                                specified git commit hash
  --json                                                                        Enable JSON output, non-JSON messages
                                                                                will be printed to stderr.
  --limit=<value>                                                               The number of items to fetch each query.
                                                                                Defaults to 10 and is capped at 50.
  --non-interactive                                                             Run the command in non-interactive mode.
  --offset=<value>                                                              Start queries from specified index. Use
                                                                                for paginating results. Defaults to 0.
  --runtime-version=<value>                                                     Filter only builds created with the
                                                                                specified runtime version
  --sdk-version=<value>                                                         Filter only builds created with the
                                                                                specified Expo SDK version
  --simulator                                                                   Filter only iOS simulator builds. Can
                                                                                only be used with --platform flag set to
                                                                                "ios"
  --status=(new|in-queue|in-progress|pending-cancel|errored|finished|canceled)  Filter only builds with the specified
                                                                                status

DESCRIPTION
  list all builds for your project

See code: packages/eas-cli/src/commands/build/list.ts

eas build:resign

re-sign a build archive

USAGE
  $ eas build:resign [-p android|ios] [-e <value>] [--source-profile <value>] [--wait] [--id <value>] [--offset
    <value>] [--limit <value>] [--json --non-interactive]

FLAGS
  -e, --target-profile=PROFILE_NAME  Name of the target build profile from eas.json. Credentials and environment
                                     variables from this profile will be used when re-signing. Defaults to "production"
                                     if defined in eas.json.
  -p, --platform=(android|ios)
  --id=<value>                       ID of the build to re-sign.
  --json                             Enable JSON output, non-JSON messages will be printed to stderr.
  --limit=<value>                    The number of items to fetch each query. Defaults to 50 and is capped at 100.
  --non-interactive                  Run the command in non-interactive mode.
  --offset=<value>                   Start queries from specified index. Use for paginating results. Defaults to 0.
  --source-profile=PROFILE_NAME      Name of the source build profile from eas.json. Used to filter builds eligible for
                                     re-signing.
  --[no-]wait                        Wait for build(s) to complete.

DESCRIPTION
  re-sign a build archive

See code: packages/eas-cli/src/commands/build/resign.ts

eas build:run

run simulator/emulator builds from eas-cli

USAGE
  $ eas build:run [--latest | --id <value> | --path <value> | --url <value>] [-p android|ios] [-e <value>]
    [--offset <value>] [--limit <value>]

FLAGS
  -e, --profile=PROFILE_NAME    Name of the build profile used to create the build to run. When specified, only builds
                                created with the specified build profile will be queried.
  -p, --platform=(android|ios)
  --id=<value>                  ID of the simulator/emulator build to run
  --latest                      Run the latest simulator/emulator build for specified platform
  --limit=<value>               The number of items to fetch each query. Defaults to 50 and is capped at 100.
  --offset=<value>              Start queries from specified index. Use for paginating results. Defaults to 0.
  --path=<value>                Path to the simulator/emulator build archive or app
  --url=<value>                 Simulator/Emulator build archive url

DESCRIPTION
  run simulator/emulator builds from eas-cli

See code: packages/eas-cli/src/commands/build/run.ts

eas build:submit

submit app binary to App Store and/or Play Store

USAGE
  $ eas build:submit [-p android|ios|all] [-e <value>] [--latest | --id <value> | --path <value> | --url <value>]
    [--what-to-test <value>] [--verbose] [--wait] [--verbose-fastlane] [-g <value>] [--non-interactive]

FLAGS
  -e, --profile=<value>             Name of the submit profile from eas.json. Defaults to "production" if defined in
                                    eas.json.
  -g, --groups=<value>...           Internal TestFlight testing groups to add the build to (iOS only). Learn more:
                                    https://developer.apple.com/help/app-store-connect/test-a-beta-version/add-internal-
                                    testers
  -p, --platform=(android|ios|all)
  --id=<value>                      ID of the build to submit
  --latest                          Submit the latest build for specified platform
  --non-interactive                 Run command in non-interactive mode
  --path=<value>                    Path to the .apk/.aab/.ipa file
  --url=<value>                     App archive url
  --verbose                         Always print logs from EAS Submit
  --verbose-fastlane                Enable verbose logging for the submission process
  --[no-]wait                       Wait for submission to complete
  --what-to-test=<value>            Sets the "What to test" information in TestFlight (iOS only).

DESCRIPTION
  submit app binary to App Store and/or Play Store

ALIASES
  $ eas build:submit

eas build:version:get

get the latest version from EAS servers

USAGE
  $ eas build:version:get [-p android|ios|all] [-e <value>] [--json --non-interactive]

FLAGS
  -e, --profile=PROFILE_NAME        Name of the build profile from eas.json. Defaults to "production" if defined in
                                    eas.json.
  -p, --platform=(android|ios|all)
  --json                            Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive                 Run the command in non-interactive mode.

DESCRIPTION
  get the latest version from EAS servers

See code: packages/eas-cli/src/commands/build/version/get.ts

eas build:version:set

update version of an app

USAGE
  $ eas build:version:set [-p android|ios] [-e <value>]

FLAGS
  -e, --profile=PROFILE_NAME    Name of the build profile from eas.json. Defaults to "production" if defined in
                                eas.json.
  -p, --platform=(android|ios)

DESCRIPTION
  update version of an app

See code: packages/eas-cli/src/commands/build/version/set.ts

eas build:version:sync

update a version in native code with a value stored on EAS servers

USAGE
  $ eas build:version:sync [-p android|ios|all] [-e <value>]

FLAGS
  -e, --profile=PROFILE_NAME        Name of the build profile from eas.json. Defaults to "production" if defined in
                                    eas.json.
  -p, --platform=(android|ios|all)

DESCRIPTION
  update a version in native code with a value stored on EAS servers

See code: packages/eas-cli/src/commands/build/version/sync.ts

eas build:view [BUILD_ID]

view a build for your project

USAGE
  $ eas build:view [BUILD_ID] [--json]

FLAGS
  --json  Enable JSON output, non-JSON messages will be printed to stderr.

DESCRIPTION
  view a build for your project

See code: packages/eas-cli/src/commands/build/view.ts

eas channel:create [NAME]

create a channel

USAGE
  $ eas channel:create [NAME] [--json --non-interactive]

ARGUMENTS
  NAME  Name of the channel to create

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  create a channel

See code: packages/eas-cli/src/commands/channel/create.ts

eas channel:edit [NAME]

point a channel at a new branch

USAGE
  $ eas channel:edit [NAME] [--branch <value>] [--json --non-interactive]

ARGUMENTS
  NAME  Name of the channel to edit

FLAGS
  --branch=<value>   Name of the branch to point to
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  point a channel at a new branch

See code: packages/eas-cli/src/commands/channel/edit.ts

eas channel:list

list all channels

USAGE
  $ eas channel:list [--offset <value>] [--limit <value>] [--json --non-interactive]

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --limit=<value>    The number of items to fetch each query. Defaults to 10 and is capped at 25.
  --non-interactive  Run the command in non-interactive mode.
  --offset=<value>   Start queries from specified index. Use for paginating results. Defaults to 0.

DESCRIPTION
  list all channels

See code: packages/eas-cli/src/commands/channel/list.ts

eas channel:pause [NAME]

pause a channel to stop it from sending updates

USAGE
  $ eas channel:pause [NAME] [--branch <value>] [--json --non-interactive]

ARGUMENTS
  NAME  Name of the channel to edit

FLAGS
  --branch=<value>   Name of the branch to point to
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  pause a channel to stop it from sending updates

See code: packages/eas-cli/src/commands/channel/pause.ts

eas channel:resume [NAME]

resume a channel to start sending updates

USAGE
  $ eas channel:resume [NAME] [--branch <value>] [--json --non-interactive]

ARGUMENTS
  NAME  Name of the channel to edit

FLAGS
  --branch=<value>   Name of the branch to point to
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  resume a channel to start sending updates

See code: packages/eas-cli/src/commands/channel/resume.ts

eas channel:rollout [CHANNEL]

Roll a new branch out on a channel incrementally.

USAGE
  $ eas channel:rollout [CHANNEL] [--action create|edit|end|view] [--percent <value>] [--outcome
    republish-and-revert|revert] [--branch <value>] [--runtime-version <value>] [--private-key-path <value>] [--json
    --non-interactive]

ARGUMENTS
  CHANNEL  channel on which the rollout should be done

FLAGS
  --action=(create|edit|end|view)          Rollout action to perform
  --branch=<value>                         Branch to roll out. Use with --action=create
  --json                                   Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive                        Run the command in non-interactive mode.
  --outcome=(republish-and-revert|revert)  End outcome of rollout. Use with --action=end
  --percent=<value>                        Percent of users to send to the new branch. Use with --action=edit or
                                           --action=create
  --private-key-path=<value>               File containing the PEM-encoded private key corresponding to the certificate
                                           in expo-updates' configuration. Defaults to a file named "private-key.pem" in
                                           the certificate's directory. Only relevant if you are using code signing:
                                           https://docs.expo.dev/eas-update/code-signing/
  --runtime-version=<value>                Runtime version to target. Use with --action=create

DESCRIPTION
  Roll a new branch out on a channel incrementally.

See code: packages/eas-cli/src/commands/channel/rollout.ts

eas channel:view [NAME]

view a channel

USAGE
  $ eas channel:view [NAME] [--json --non-interactive] [--offset <value>] [--limit <value>]

ARGUMENTS
  NAME  Name of the channel to view

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --limit=<value>    The number of items to fetch each query. Defaults to 50 and is capped at 100.
  --non-interactive  Run the command in non-interactive mode.
  --offset=<value>   Start queries from specified index. Use for paginating results. Defaults to 0.

DESCRIPTION
  view a channel

See code: packages/eas-cli/src/commands/channel/view.ts

eas config

display project configuration (app.json + eas.json)

USAGE
  $ eas config [-p android|ios] [-e <value>] [--json --non-interactive]

FLAGS
  -e, --profile=PROFILE_NAME    Name of the build profile from eas.json. Defaults to "production" if defined in
                                eas.json.
  -p, --platform=(android|ios)
  --json                        Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive             Run the command in non-interactive mode.

DESCRIPTION
  display project configuration (app.json + eas.json)

See code: packages/eas-cli/src/commands/config.ts

eas credentials

manage credentials

USAGE
  $ eas credentials [-p android|ios]

FLAGS
  -p, --platform=(android|ios)

DESCRIPTION
  manage credentials

See code: packages/eas-cli/src/commands/credentials/index.ts

eas credentials:configure-build

Set up credentials for building your project.

USAGE
  $ eas credentials:configure-build [-p android|ios] [-e <value>]

FLAGS
  -e, --profile=PROFILE_NAME    The name of the build profile in eas.json.
  -p, --platform=(android|ios)

DESCRIPTION
  Set up credentials for building your project.

See code: packages/eas-cli/src/commands/credentials/configure-build.ts

eas deploy [options]

deploy your Expo Router web build and API Routes

USAGE
  $ eas deploy [options]
  $ eas deploy --prod

FLAGS
  --alias=name                                    Custom alias to assign to the new deployment.
  --dry-run                                       Outputs a tarball of the new deployment instead of uploading it.
  --environment=(development|preview|production)  Environment variable's environment
  --export-dir=dir                                [default: dist] Directory where the Expo project was exported.
  --id=xyz123                                     Custom unique identifier for the new deployment.
  --json                                          Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive                               Run the command in non-interactive mode.
  --prod                                          Create a new production deployment.

DESCRIPTION
  deploy your Expo Router web build and API Routes

ALIASES
  $ eas worker:deploy

See code: packages/eas-cli/src/commands/deploy/index.ts

eas deploy:alias

Assign deployment aliases.

USAGE
  $ eas deploy:alias [--prod] [--alias <value>] [--id <value>] [--json --non-interactive]

FLAGS
  --alias=name       Custom alias to assign to the existing deployment.
  --id=xyz123        Unique identifier of an existing deployment.
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.
  --prod             Promote an existing deployment to production.

DESCRIPTION
  Assign deployment aliases.

ALIASES
  $ eas worker:alias
  $ eas deploy:promote

See code: packages/eas-cli/src/commands/deploy/alias/index.ts

eas deploy:alias:delete [ALIAS_NAME]

Delete deployment aliases.

USAGE
  $ eas deploy:alias:delete [ALIAS_NAME] [--json --non-interactive]

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  Delete deployment aliases.

ALIASES
  $ eas worker:alias:delete

See code: packages/eas-cli/src/commands/deploy/alias/delete.ts

eas deploy:delete [DEPLOYMENT_ID]

Delete a deployment.

USAGE
  $ eas deploy:delete [DEPLOYMENT_ID] [--json --non-interactive]

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  Delete a deployment.

ALIASES
  $ eas worker:delete

See code: packages/eas-cli/src/commands/deploy/delete.ts

eas deploy:promote

Assign deployment aliases.

USAGE
  $ eas deploy:promote [--prod] [--alias <value>] [--id <value>] [--json --non-interactive]

FLAGS
  --alias=name       Custom alias to assign to the existing deployment.
  --id=xyz123        Unique identifier of an existing deployment.
  --json             Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive  Run the command in non-interactive mode.
  --prod             Promote an existing deployment to production.

DESCRIPTION
  Assign deployment aliases.

ALIASES
  $ eas worker:alias
  $ eas deploy:promote

eas device:create

register new Apple Devices to use for internal distribution

USAGE
  $ eas device:create

DESCRIPTION
  register new Apple Devices to use for internal distribution

See code: packages/eas-cli/src/commands/device/create.ts

eas device:delete

remove a registered device from your account

USAGE
  $ eas device:delete [--apple-team-id <value>] [--udid <value>] [--json --non-interactive]

FLAGS
  --apple-team-id=<value>  The Apple team ID on which to find the device
  --json                   Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive        Run the command in non-interactive mode.
  --udid=<value>           The Apple device ID to disable

DESCRIPTION
  remove a registered device from your account

See code: packages/eas-cli/src/commands/device/delete.ts

eas device:list

list all registered devices for your account

USAGE
  $ eas device:list [--apple-team-id <value>] [--offset <value>] [--limit <value>] [--json --non-interactive]

FLAGS
  --apple-team-id=<value>
  --json                   Enable JSON output, non-JSON messages will be printed to stderr.
  --limit=<value>          The number of items to fetch each query. Defaults to 50 and is capped at 100.
  --non-interactive        Run the command in non-interactive mode.
  --offset=<value>         Start queries from specified index. Use for paginating results. Defaults to 0.

DESCRIPTION
  list all registered devices for your account

See code: packages/eas-cli/src/commands/device/list.ts

eas device:rename

rename a registered device

USAGE
  $ eas device:rename [--apple-team-id <value>] [--udid <value>] [--name <value>] [--json --non-interactive]

FLAGS
  --apple-team-id=<value>  The Apple team ID on which to find the device
  --json                   Enable JSON output, non-JSON messages will be printed to stderr.
  --name=<value>           The new name for the device
  --non-interactive        Run the command in non-interactive mode.
  --udid=<value>           The Apple device ID to rename

DESCRIPTION
  rename a registered device

See code: packages/eas-cli/src/commands/device/rename.ts

eas device:view [UDID]

view a device for your project

USAGE
  $ eas device:view [UDID]

DESCRIPTION
  view a device for your project

See code: packages/eas-cli/src/commands/device/view.ts

eas diagnostics

display environment info

USAGE
  $ eas diagnostics

DESCRIPTION
  display environment info

See code: packages/eas-cli/src/commands/diagnostics.ts

eas env:create [ENVIRONMENT]

create an environment variable for the current project or account

USAGE
  $ eas env:create [ENVIRONMENT] [--name <value>] [--value <value>] [--force] [--type string|file] [--visibility
    plaintext|sensitive|secret] [--scope project|account] [--environment development|preview|production]
    [--non-interactive]

ARGUMENTS
  ENVIRONMENT  Environment to create the variable in. One of 'production', 'preview', or 'development'.

FLAGS
  --environment=(development|preview|production)...  Environment variable's environment
  --force                                            Overwrite existing variable
  --name=<value>                                     Name of the variable
  --non-interactive                                  Run the command in non-interactive mode.
  --scope=(project|account)                          [default: project] Scope for the variable
  --type=(string|file)                               The type of variable
  --value=<value>                                    Text value or the variable
  --visibility=(plaintext|sensitive|secret)          Visibility of the variable

DESCRIPTION
  create an environment variable for the current project or account

See code: packages/eas-cli/src/commands/env/create.ts

eas env:delete [ENVIRONMENT]

delete an environment variable for the current project or account

USAGE
  $ eas env:delete [ENVIRONMENT] [--variable-name <value>] [--variable-environment
    development|preview|production] [--scope project|account] [--non-interactive]

ARGUMENTS
  ENVIRONMENT  Current environment of the variable to delete. One of 'production', 'preview', or 'development'.

FLAGS
  --non-interactive                                        Run the command in non-interactive mode.
  --scope=(project|account)                                [default: project] Scope for the variable
  --variable-environment=(development|preview|production)  Current environment of the variable to delete
  --variable-name=<value>                                  Name of the variable to delete

DESCRIPTION
  delete an environment variable for the current project or account

See code: packages/eas-cli/src/commands/env/delete.ts

eas env:exec ENVIRONMENT BASH_COMMAND

execute a command with environment variables from the selected environment

USAGE
  $ eas env:exec ENVIRONMENT BASH_COMMAND [--non-interactive]

ARGUMENTS
  ENVIRONMENT   Environment to execute the command in. One of 'production', 'preview', or 'development'.
  BASH_COMMAND  bash command to execute with the environment variables from the environment

FLAGS
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  execute a command with environment variables from the selected environment

See code: packages/eas-cli/src/commands/env/exec.ts

eas env:get [ENVIRONMENT]

view an environment variable for the current project or account

USAGE
  $ eas env:get [ENVIRONMENT] [--variable-name <value>] [--variable-environment
    development|preview|production] [--format long|short] [--scope project|account] [--non-interactive]

ARGUMENTS
  ENVIRONMENT  Current environment of the variable. One of 'production', 'preview', or 'development'.

FLAGS
  --format=(long|short)                                    [default: short] Output format
  --non-interactive                                        Run the command in non-interactive mode.
  --scope=(project|account)                                [default: project] Scope for the variable
  --variable-environment=(development|preview|production)  Current environment of the variable
  --variable-name=<value>                                  Name of the variable

DESCRIPTION
  view an environment variable for the current project or account

See code: packages/eas-cli/src/commands/env/get.ts

eas env:list [ENVIRONMENT]

list environment variables for the current project or account

USAGE
  $ eas env:list [ENVIRONMENT] [--include-sensitive] [--include-file-content] [--environment
    development|preview|production] [--format long|short] [--scope project|account]

ARGUMENTS
  ENVIRONMENT  Environment to list the variables from. One of 'production', 'preview', or 'development'.

FLAGS
  --environment=(development|preview|production)...  Environment variable's environment
  --format=(long|short)                              [default: short] Output format
  --include-file-content                             Display files content in the output
  --include-sensitive                                Display sensitive values in the output
  --scope=(project|account)                          [default: project] Scope for the variable

DESCRIPTION
  list environment variables for the current project or account

See code: packages/eas-cli/src/commands/env/list.ts

eas env:pull [ENVIRONMENT]

pull environment variables for the selected environment to .env file

USAGE
  $ eas env:pull [ENVIRONMENT] [--non-interactive] [--environment development|preview|production] [--path
    <value>]

ARGUMENTS
  ENVIRONMENT  Environment to pull variables from. One of 'production', 'preview', or 'development'.

FLAGS
  --environment=(development|preview|production)  Environment variable's environment
  --non-interactive                               Run the command in non-interactive mode.
  --path=<value>                                  [default: .env.local] Path to the result `.env` file

DESCRIPTION
  pull environment variables for the selected environment to .env file

See code: packages/eas-cli/src/commands/env/pull.ts

eas env:push [ENVIRONMENT]

push environment variables from .env file to the selected environment

USAGE
  $ eas env:push [ENVIRONMENT] [--environment development|preview|production] [--path <value>]

ARGUMENTS
  ENVIRONMENT  Environment to push variables to. One of 'production', 'preview', or 'development'.

FLAGS
  --environment=(development|preview|production)...  Environment variable's environment
  --path=<value>                                     [default: .env.local] Path to the input `.env` file

DESCRIPTION
  push environment variables from .env file to the selected environment

See code: packages/eas-cli/src/commands/env/push.ts

eas env:update [ENVIRONMENT]

update an environment variable on the current project or account

USAGE
  $ eas env:update [ENVIRONMENT] [--variable-name <value>] [--variable-environment
    development|preview|production] [--name <value>] [--value <value>] [--type string|file] [--visibility
    plaintext|sensitive|secret] [--scope project|account] [--environment development|preview|production]
    [--non-interactive]

ARGUMENTS
  ENVIRONMENT  Current environment of the variable to update. One of 'production', 'preview', or 'development'.

FLAGS
  --environment=(development|preview|production)...        Environment variable's environment
  --name=<value>                                           New name of the variable
  --non-interactive                                        Run the command in non-interactive mode.
  --scope=(project|account)                                [default: project] Scope for the variable
  --type=(string|file)                                     The type of variable
  --value=<value>                                          New value or the variable
  --variable-environment=(development|preview|production)  Current environment of the variable to update
  --variable-name=<value>                                  Current name of the variable
  --visibility=(plaintext|sensitive|secret)                Visibility of the variable

DESCRIPTION
  update an environment variable on the current project or account

See code: packages/eas-cli/src/commands/env/update.ts

eas fingerprint:compare [HASH1] [HASH2]

compare fingerprints of the current project, builds, and updates

USAGE
  $ eas fingerprint:compare [HASH1] [HASH2] [--build-id <value>] [--update-id <value>] [--open] [--environment
    development|preview|production] [--json --non-interactive]

ARGUMENTS
  HASH1  If provided alone, HASH1 is compared against the current project's fingerprint.
  HASH2  If two hashes are provided, HASH1 is compared against HASH2.

FLAGS
  --build-id=<value>...                           Compare the fingerprint with the build with the specified ID
  --environment=(development|preview|production)  If generating a fingerprint from the local directory, use the
                                                  specified environment.
  --json                                          Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive                               Run the command in non-interactive mode.
  --open                                          Open the fingerprint comparison in the browser
  --update-id=<value>...                          Compare the fingerprint with the update with the specified ID

DESCRIPTION
  compare fingerprints of the current project, builds, and updates

EXAMPLES
  $ eas fingerprint:compare      # Compare fingerprints in interactive mode

  $ eas fingerprint:compare <FINGERPRINT-HASH>      # Compare fingerprint against local directory

  $ eas fingerprint:compare <FINGERPRINT-HASH-1> <FINGERPRINT-HASH-2>      # Compare provided fingerprints

  $ eas fingerprint:compare --build-id <BUILD-ID>      # Compare fingerprint from build against local directory

  $ eas fingerprint:compare --build-id <BUILD-ID> --environment production      # Compare fingerprint from build against local directory with the "production" environment

  $ eas fingerprint:compare --build-id <BUILD-ID-1> --build-id <BUILD-ID-2>     # Compare fingerprint from a build against another build

  $ eas fingerprint:compare --build-id <BUILD-ID> --update-id <UPDATE-ID>     # Compare fingerprint from build against fingerprint from update

  $ eas fingerprint:compare <FINGERPRINT-HASH> --update-id <UPDATE-ID>      # Compare fingerprint from update against provided fingerprint

See code: packages/eas-cli/src/commands/fingerprint/compare.ts

eas fingerprint:generate

generate fingerprints from the current project

USAGE
  $ eas fingerprint:generate [-p android|ios] [--environment development|preview|production | -e <value>] [--json
    --non-interactive]

FLAGS
  -e, --build-profile=<value>                     Name of the build profile from eas.json.
  -p, --platform=(android|ios)
  --environment=(development|preview|production)  Environment variable's environment
  --json                                          Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive                               Run the command in non-interactive mode.

DESCRIPTION
  generate fingerprints from the current project

EXAMPLES
  $ eas fingerprint:generate       # Generate fingerprint in interactive mode

  $ eas fingerprint:generate --build-profile preview       # Generate a fingerprint using the "preview" build profile

  $ eas fingerprint:generate --environment preview       # Generate a fingerprint using the "preview" environment

  $ eas fingerprint:generate --json --non-interactive --platform android       # Output fingerprint json to stdout

See code: packages/eas-cli/src/commands/fingerprint/generate.ts

eas help [COMMAND]

Display help for eas.

USAGE
  $ eas help [COMMAND] [-n]

ARGUMENTS
  COMMAND  Command to show help for.

FLAGS
  -n, --nested-commands  Include all nested commands in the output.

DESCRIPTION
  Display help for eas.

See code: @expo/plugin-help

eas init

create or link an EAS project

USAGE
  $ eas init [--id <value>] [--force] [--non-interactive]

FLAGS
  --force            Whether to create a new project/link an existing project without additional prompts or overwrite
                     any existing project ID when running with --id flag
  --id=<value>       ID of the EAS project to link
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  create or link an EAS project

ALIASES
  $ eas init

eas init:onboarding [TARGET_PROJECT_DIRECTORY]

continue onboarding process started on the https://expo.new website.

USAGE
  $ eas init:onboarding [TARGET_PROJECT_DIRECTORY]

DESCRIPTION
  continue onboarding process started on the https://expo.new website.

ALIASES
  $ eas init:onboarding
  $ eas onboarding

eas login

log in with your Expo account

USAGE
  $ eas login [-s]

FLAGS
  -s, --sso  Login with SSO

DESCRIPTION
  log in with your Expo account

ALIASES
  $ eas login

eas logout

log out

USAGE
  $ eas logout

DESCRIPTION
  log out

ALIASES
  $ eas logout

eas metadata:lint

validate the local store configuration

USAGE
  $ eas metadata:lint [--json] [--profile <value>]

FLAGS
  --json             Enable JSON output, non-JSON messages will be printed to stderr
  --profile=<value>  Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.

DESCRIPTION
  validate the local store configuration

See code: packages/eas-cli/src/commands/metadata/lint.ts

eas metadata:pull

generate the local store configuration from the app stores

USAGE
  $ eas metadata:pull [-e <value>]

FLAGS
  -e, --profile=<value>  Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.

DESCRIPTION
  generate the local store configuration from the app stores

See code: packages/eas-cli/src/commands/metadata/pull.ts

eas metadata:push

sync the local store configuration to the app stores

USAGE
  $ eas metadata:push [-e <value>]

FLAGS
  -e, --profile=<value>  Name of the submit profile from eas.json. Defaults to "production" if defined in eas.json.

DESCRIPTION
  sync the local store configuration to the app stores

See code: packages/eas-cli/src/commands/metadata/push.ts

eas onboarding [TARGET_PROJECT_DIRECTORY]

continue onboarding process started on the https://expo.new website.

USAGE
  $ eas onboarding [TARGET_PROJECT_DIRECTORY]

DESCRIPTION
  continue onboarding process started on the https://expo.new website.

ALIASES
  $ eas init:onboarding
  $ eas onboarding

eas open

open the project page in a web browser

USAGE
  $ eas open

DESCRIPTION
  open the project page in a web browser

See code: packages/eas-cli/src/commands/open.ts

eas project:info

information about the current project

USAGE
  $ eas project:info

DESCRIPTION
  information about the current project

See code: packages/eas-cli/src/commands/project/info.ts

eas project:init

create or link an EAS project

USAGE
  $ eas project:init [--id <value>] [--force] [--non-interactive]

FLAGS
  --force            Whether to create a new project/link an existing project without additional prompts or overwrite
                     any existing project ID when running with --id flag
  --id=<value>       ID of the EAS project to link
  --non-interactive  Run the command in non-interactive mode.

DESCRIPTION
  create or link an EAS project

ALIASES
  $ eas init

See code: packages/eas-cli/src/commands/project/init.ts

eas project:onboarding [TARGET_PROJECT_DIRECTORY]

continue onboarding process started on the https://expo.new website.

USAGE
  $ eas project:onboarding [TARGET_PROJECT_DIRECTORY]

DESCRIPTION
  continue onboarding process started on the https://expo.new website.

ALIASES
  $ eas init:onboarding
  $ eas onboarding

See code: packages/eas-cli/src/commands/project/onboarding.ts

eas submit

submit app binary to App Store and/or Play Store

USAGE
  $ eas submit [-p android|ios|all] [-e <value>] [--latest | --id <value> | --path <value> | --url <value>]
    [--what-to-test <value>] [--verbose] [--wait] [--verbose-fastlane] [-g <value>] [--non-interactive]

FLAGS
  -e, --profile=<value>             Name of the submit profile from eas.json. Defaults to "production" if defined in
                                    eas.json.
  -g, --groups=<value>...           Internal TestFlight testing groups to add the build to (iOS only). Learn more:
                                    https://developer.apple.com/help/app-store-connect/test-a-beta-version/add-internal-
                                    testers
  -p, --platform=(android|ios|all)
  --id=<value>                      ID of the build to submit
  --latest                          Submit the latest build for specified platform
  --non-interactive                 Run command in non-interactive mode
  --path=<value>                    Path to the .apk/.aab/.ipa file
  --url=<value>                     App archive url
  --verbose                         Always print logs from EAS Submit
  --verbose-fastlane                Enable verbose logging for the submission process
  --[no-]wait                       Wait for submission to complete
  --what-to-test=<value>            Sets the "What to test" information in TestFlight (iOS only).

DESCRIPTION
  submit app binary to App Store and/or Play Store

ALIASES
  $ eas build:submit

See code: packages/eas-cli/src/commands/submit.ts

eas update

publish an update group

USAGE
  $ eas update [--branch <value>] [--channel <value>] [-m <value>] [--input-dir <value>] [--skip-bundler]
    [--clear-cache] [--emit-metadata] [--rollout-percentage <value>] [-p android|ios|all] [--auto] [--private-key-path
    <value>] [--environment development|preview|production] [--json --non-interactive]

FLAGS
  -m, --message=<value>                           A short message describing the update
  -p, --platform=(android|ios|all)                [default: all]
  --auto                                          Use the current git branch and commit message for the EAS branch and
                                                  update message
  --branch=<value>                                Branch to publish the update group on
  --channel=<value>                               Channel that the published update should affect
  --clear-cache                                   Clear the bundler cache before publishing
  --emit-metadata                                 Emit "eas-update-metadata.json" in the bundle folder with detailed
                                                  information about the generated updates
  --environment=(development|preview|production)  Environment to use for the server-side defined EAS environment
                                                  variables during command execution.
  --input-dir=<value>                             [default: dist] Location of the bundle
  --json                                          Enable JSON output, non-JSON messages will be printed to stderr.
  --non-interactive                               Run the command in non-interactive mode.
  --private-key-path=<value>                      File containing the PEM-encoded private key corresponding to the
                                                  certificate in expo-updates' configuration. Defaults to a file named
                                                  "private-key.pem" in the certificate's directory. Only relevant if you
                                                  are using code signing: https://docs.expo.dev/eas-update/code-signing/
  --rollout-percentage=<value>                    Percentage of users this update should be immediately available to.
                                                  Users not in the rollout will be served the previous latest update on
                                                  the branch, even if that update is itself being rolled out. The
                                                  specified number must be an integer between 1 and 100. When not
                                                  specified, this defaults to 100.
  --skip-bundler                                  Skip running Expo CLI to bundle the app before publishing

DESCRIPTION
  publish an update group

See code: packages/eas-cli/src/commands/update/index.ts

eas update:configure

configure the project to support EAS Update

` USAGE $ eas update:configure [-p android|ios|all] [--environment development|preview|production] [--non-interactive]

FLAGS -p, --platform=(android|ios|all) [default: all] Platform to configure --environment=(development|preview|production) Environment to use for the server-side defined EAS environment

changelog

Changelog

This is the log of notable changes to EAS CLI and related packages.

main

🛠 Breaking changes

🎉 New features

  • Add deploy:delete for deleting worker deployments (#3106 by @kadikraman)
  • Add deploy:alias:delete for deleting worker deployment aliases (#3107 by @kadikraman)

🐛 Bug fixes

🧹 Chores

16.16.0 - 2025-07-16

🎉 New features

🐛 Bug fixes

  • Refactor capabilities syncing to avoid provisioning profiles becoming invalid. (#3088 by @vonovak)
  • Avoid corrupted EAS Hosting batch upload bodies and double-check length and checksums while uploading. (#3103 by @kitten)

16.15.0 - 2025-07-10

🎉 New features

  • Implement new EAS Hosting asset upload protocol, which improves performance by grouping files into batched upload API calls (#3085 by @kitten)

🧹 Chores

  • Update the EAS Hosting worker deployment progress indicator to use a progress bar for asset uploads instead (#3099 by @kitten)

16.14.1 - 2025-07-08

🧹 Chores

16.14.0 - 2025-07-07

🎉 New features

🧹 Chores

16.13.4 - 2025-07-04

🧹 Chores

16.13.3 - 2025-07-01

🐛 Bug fixes

  • Fix suggested command to switch Xcode Developer Tools. (#3079 by @rolfb)
  • Skip configuring build profiles when running eas update:configure if no build profiles exist. (#3084 by @brentvatne)

🧹 Chores

  • Reword how paid plans are described (#3082 by @ide)

16.13.2 - 2025-06-27

🧹 Chores

16.13.1 - 2025-06-25

🐛 Bug fixes

16.13.0 - 2025-06-24

🎉 New features

  • Add --what-to-test option to build command. (#3065 by @vonovak)

🐛 Bug fixes

16.12.0 - 2025-06-20

🎉 New features

  • Add --what-to-test option to the submit command. (#3023 by @vonovak)

🐛 Bug fixes

  • Fixed monorepo support in workflow:run if a project is not connected to a GitHub repository. (#3058 by @sjchmiela)

16.10.1 - 2025-06-13

🐛 Bug fixes

  • Fixed eas build:dev command to correctly use passed build profile. (#3053 by @sebryu)

🧹 Chores

16.10.0 - 2025-06-12

🎉 New features

🧹 Chores

16.9.0 - 2025-06-06

🎉 New features

🐛 Bug fixes

  • [eas-cli] Ensure workflow:runs returns most recent runs. (#3045 by @douglowder)

16.8.0 - 2025-06-04

🎉 New features

🧹 Chores

  • Change location of EAS Update host override config. (#3042 by @wschurman)

16.7.2 - 2025-06-03

🐛 Bug fixes

  • Add support for array flavorDimensions (flavorDimensions = ['version']). (#3043 by @sjchmiela)

16.7.1 - 2025-06-03

🐛 Bug fixes

  • Fix some unit tests by updating mocks. (#3035 by @douglowder)
  • Fix update republishing not including environment or git info. (#3036 by @wschurman)
  • Do not require eas.json or package.json files when creating new workflow runs. (#3028 by @sjchmiela)
  • Add EAS_SKIP_CLI_VERSION_CHECK allowing us to skip eas-cli version check (against eas.json#version). (#3041 by @sjchmiela)

16.7.0 - 2025-05-29

🎉 New features

  • Add support for manifest host and asset host overriding for EAS Update. (#3021 by @wschurman)
  • Add rollout flag to update:republish. (#3029 by @quinlanj)

16.6.2 - 2025-05-23

🧹 Chores

  • Further no longer require owner field for SDK >= 53 or canary. (#3017 by @wschurman)

16.6.1 - 2025-05-14

🐛 Bug fixes

16.6.0 - 2025-05-14

🎉 New features

16.5.0 - 2025-05-13

🎉 New features

16.4.2 - 2025-05-10

🧹 Chores

  • Update eas-build-cache-provider function names to use buildCacheProvider key. (#3002 by @gabrieldonadel)

16.4.1 - 2025-05-07

🧹 Chores

16.4.0 - 2025-05-02

🎉 New features

🧹 Chores

16.3.3 - 2025-04-24

🐛 Bug fixes

🧹 Chores

  • upload assetmap.json when publishing update. (#2994 by @quinlanj)
  • Add error messages for CDN-level upload errors. (#2998 by @kitten)

16.3.2 - 2025-04-17

🧹 Chores

16.3.1 - 2025-04-11

🧹 Chores

16.3.0 - 2025-04-09

🎉 New features

16.2.2 - 2025-04-08

16.2.1 - 2025-04-04

🧹 Chores

16.2.0 - 2025-04-03

🎉 New features

  • Add environment flag to eas fingerprint:compare. (#2954 by @quinlanj)
  • Add build-profile flag to eas fingerprint:generate. (#2966 by @quinlanj)

🧹 Chores

  • Remove hidden flag from eas fingerprint:generate. (#2965 by @quinlanj)
  • Refactor eas update command to improve code readability. (#2976 by @quinlanj)
  • eas update: add warning if no build exists with fingerprint. (#2977 by @quinlanj)

16.1.0 - 2025-03-26

🎉 New features

16.0.1 - 2025-03-20

🐛 Bug fixes

  • Make eas update:configure re-apply configuration from app.json /app.config.js when run multiple times. (#2957 by @brentvatne)

16.0.0 - 2025-03-19

🛠 Breaking changes

  • Add support for .easignore when requireCommit is set to true. (#2942 by @sjchmiela)
    • Up to 15.0.0, if requireCommit was true, .easignore was silently ignored.
    • Versions 15.0.0-15.0.13 started using .easignore to skip files from being bundled into a tarball when requireCommit was true. This was an unexpected change in behavior.
    • To clear this up, versions 15.0.13-15.0.15 were erroring if .easignore was present when requireCommit was true.
    • `eas-cli@16.0.0formalizes the 15.0.0-15.0.13 behavior by adhering to.easignoreeven whenrequireCommitis set totrue`.
    • If you know what you're doing and you want to suppress a warning printed, you can do so by setting EAS_SUPPRESS_REQUIRE_COMMIT_EASIGNORE_WARNING environment variable to true.

🎉 New features

🐛 Bug fixes

  • Use correct logic to determine whether artifacts have expired in eas build:run command. (#2931 by @szdziedzic)

15.0.15 - 2025-03-12

🐛 Bug fixes

  • Pass through the updates version to setUpdatesConfigAsync, which expects it in order to determine which field values to use. (#2934 by @brentvatne).

15.0.14 - 2025-03-06

🐛 Bug fixes

  • In EAS_NO_VCS=1, use Git for repository root when EAS_PROJECT_ROOT is not set. (#2901 by @sjchmiela)

🧹 Chores

  • Suggest using eas build:dev for matching configurations. (#2929 by @szdziedzic)

15.0.13 - 2025-03-04

🐛 Bug fixes

  • Fixed .git being always unexpectedly removed if you had requireCommit: true and .easignore present. (#2925 by @sjchmiela)

🧹 Chores

15.0.12 - 2025-02-22

🐛 Bug fixes

15.0.11 - 2025-02-21

🐛 Bug fixes

🧹 Chores

  • Narrow amount of data queried for basic update channel operations. (#2901 by @wschurman)
  • Fix eas fingerprint:compare description. (#2908 by @quinlanj)
  • Skip auto-creation of TestFlight group when there are already exisitng TestFlight groups and allow to opt out of the behavior by setting EAS_NO_AUTO_TESTFLIGHT_SETUP env var. (#2856 by @szdziedzic)

15.0.10 - 2025-02-11

🐛 Bug fixes

  • Fix files deleted in working directory not being removed from the project archive when requireCommit is false. (#2900 by @sjchmiela)

15.0.9 - 2025-02-09

🐛 Bug fixes

  • Fix files not being ignored when creating a tarball on Windows in Git repository in no requireCommit mode. (#2894 by @sjchmiela)

15.0.8 - 2025-02-09

15.0.7 - 2025-02-09

15.0.6 - 2025-02-07

15.0.5 - 2025-02-06

🐛 Bug fixes

  • Do not copy files over onto a cloned Git repository when packing the project archive if requireCommit is true. (#2885 by @sjchmiela)
  • Fix EISDIR error when archiving project with submodules ignored. (#2884 by @sjchmiela)

15.0.4 - 2025-02-05

🐛 Bug fixes

  • Fixed GitClient not respecting .easignore file. (#2873 by @sjchmiela)
  • Fix symlink support in makeShallowCopyAsync. (#2874 by @sjchmiela)
  • Allow excluding .git directory from project archive by adding it to .easignore. (#2879 by @sjchmiela)

🧹 Chores

15.0.3 - 2025-02-04

🐛 Bug fixes

  • Fixed EAS server environment variables does not pass to npx expo-updates runtimeversion:resolve call. (#2867 by @kudo)

15.0.2 - 2025-02-04

15.0.1 - 2025-02-04

15.0.0 - 2025-02-04

🛠 Breaking changes

  • Use Git to archive projects containing a Git repository. (Previously, Git would only be used if requireCommit flag in eas.json was set to true.) (#2841 by @sjchmiela)

🐛 Bug fixes

🧹 Chores

  • Add update support for fingerprint:compare. (#2850 by @quinlanj)
  • Add update group id support for fingerprint:compare. (#2851 by @quinlanj)
  • Add better interactive support for fingerprint:compare. (#2854 by @quinlanj)

14.7.1 - 2025-01-31

🐛 Bug fixes

  • Account for ios.config.usesNonExemptEncryption in non-exempt encryption status prompt. (#2852 by @EvanBacon)

14.7.0 - 2025-01-30

🎉 New features

🐛 Bug fixes

14.6.0 - 2025-01-30

🎉 New features

  • Prompt to set non-exempt encryption status for the iOS app to support faster store submissions. (#2843 by @EvanBacon)
  • Automatically create internal TestFlight group in EAS Submit command. (#2839 by @evanbacon)
  • Sanitize and generate names for EAS Submit to prevent failures due to invalid characters or taken names. (#2842 by @evanbacon)
  • Release eas fingerprint:compare. (#2821 by @quinlanj)

🧹 Chores

14.5.0 - 2025-01-22

🎉 New features

  • Allow filtering by --fingerprint_hash in eas build:list command. (#2818 by @szdziedzic)

🐛 Bug fixes

  • Ensure that the AASA file is served with content type application/json (#2829 by @kadikraman)
  • Ensure that the AppleID provided in prompt or saved to cache does not contain invalid unprintable characters (#2830 by @radoslawkrzemien)

🧹 Chores

  • Fix logs typos in the eas deploy command. (#2822 by @kadikraman)
  • Make deploy the top level command for hosting. (#2824 by @kadikraman)
  • Allow longer submit profile extension chain (up to 5, same as build profile) (#2831 by @radoslawkrzemien)
  • Make variable naming more explicit, remove deprecated runtimeFingerprintSource uses. (#2816 by @wschurman)

14.4.1 - 2025-01-15

🐛 Bug fixes

🧹 Chores

  • Make automatic env resolution message shorter. (#2806 by @szdziedzic)
  • Make "No remote versions are configured" message green instead of yellow. (#2805 by @szdziedzic)
  • Upload local fingerprint on eas fingerprint:compare. (#2808 by @quinlanj)
  • Upgrade eas-cli-local-build-plugin to 1.0.163 to support Bun's new text-based lock file in local builds. (#2817 by @shiroyasha9)

14.4.0 - 2025-01-09

🎉 New features

  • Load .env variables even when --environment is specified for deploy command. Conflicts will be highlighted by a warning message. (#2783 by @kitten)
  • Silence all non-command output in non-interactive mode of eas env:exec. (#2800 by @wschurman)
  • Unhide deploy and deploy:alias commands (#2807 by @kitten)

14.3.1 - 2025-01-08

🧹 Chores

  • Bump @expo/package-manager@1.7.0 to support Bun text-based lock files. (#2801 by @kudo)

14.3.0 - 2025-01-07

🎉 New features

  • Upload package.json when uploading workflow sources. (#2786 by @sjchmiela)

🐛 Bug fixes

  • Show eas deploy upload error messages. (#2771 by @kadikraman)
  • Prevent EAS CLI dependencies check from running repeatedly. (#2781 by @kitten)
  • Prevent optimistic request body parsing for eas deploy. (#2784 by @kadikraman)

🧹 Chores

14.2.0 - 2024-12-13

🎉 New features

🐛 Bug fixes

🧹 Chores

  • Improve logging and validation in eas env:exec command. (#2762 by @szdziedzic)

14.1.0 - 2024-12-10

🎉 New features

  • Add support for enabeling broadcast Push Notifications capability option, by setting ios.usesBroadcastPushNotifications to true in app config. (#2748 by @szdziedzic)

🧹 Chores

  • Add link to FYI page mentioning the workaround for Apple SMS 2FA issue. (#2752 by @szdziedzic)

14.0.3 - 2024-12-09

🐛 Bug fixes

  • Bump @expo/apple-utils to fix sending two-factor authentication codes via SMS. (#2750 by @EvanBacon)

🧹 Chores

14.0.2 - 2024-12-06

🧹 Chores

  • Print warning instead of throwing an error when validating CFBundleShortVersionString against App Store requirements. (#2741 by @szdziedzic)

14.0.1 - 2024-12-06

🧹 Chores

  • Bump @expo/apple-utils to improve error handling and input validation and change auth headers. (#2745 by @szdziedzic)

14.0.0 - 2024-12-06

🛠 Breaking changes

  • Change behavior of roll-back-to-embedded to not use current project state. (#2722 by @wschurman)

🎉 New features

🐛 Bug fixes

  • Update @expo/config and @expo/config-plugins to fix eas build command for bare iOS projects on Windows. (#2744 by @szdziedzic)

🧹 Chores

13.4.2 - 2024-11-25

🧹 Chores

13.4.1 - 2024-11-22

🧹 Chores

13.4.0 - 2024-11-22

🎉 New features

🧹 Chores

13.3.0 - 2024-11-18

🎉 New features

13.2.3 - 2024-11-15

13.2.2 - 2024-11-15

13.2.1 - 2024-11-14

13.2.0 - 2024-11-13

🎉 New features

  • Add EAS_SKIP_AUTO_FINGERPRINT to skip fingerprint computation on build (#2675 by @quinlanj)
  • Default build-logger-level to debug when EXPO_DEBUG is set. (#2676 by @wschurman)

13.1.1 - 2024-11-08

13.1.0 - 2024-11-07

🎉 New features

  • Compute fingerprint for builds with SDK 52 and higher (#2663 by @quinlanj)

13.0.1 - 2024-11-05

🧹 Chores

  • Upgrade EAS Metadata with new properties from App Store. (#2671 by @byCedric)

13.0.0 - 2024-11-05

🛠 Breaking changes

  • Resolve versioned expo config using npx expo config command instead of using fixed @expo/config version shipped with EAS CLI, if available. (#2529 by @szdziedzic)

🧹 Chores

12.6.2 - 2024-10-29

🐛 Bug fixes

  • Make email case insensitive during Apple authentication. (#2659 by @byCedric)

12.6.1 - 2024-10-25

🧹 Chores

  • Create dynamic logged in context field and clean up erroneous SessionManager context field uses. (#2648 by @wschurman)

12.6.0 - 2024-10-21

🎉 New features

  • Add eas channel:pause and eas channel:resume commands to pause/resume update delivery to builds using specific update channels and display paused status in channel details output. (#2614 by @fiberjw)
  • Add interactivity to eas update:edit command. (#2638 by @wschurman)

12.5.4 - 2024-10-19

12.5.3 - 2024-10-16

12.5.2 - 2024-10-11

🐛 Bug fixes

  • Disallow republishing an update that is being rolled-out. (#2602 by @wschurman)
  • Bump @expo/apple-utils to 2.0.2 resolving the Apple authentication error. (#2641 by @byCedric)

🧹 Chores

12.5.1 - 2024-09-27

🐛 Bug fixes

  • Support assigning dev domain names in non interactive mode. (#2595 by @byCedric)

🧹 Chores

  • Simplify the output of eas deploy --json. (#2596 by @byCedric)
  • Support deploying Expo Router server exports without client directory. (#2597 by @byCedric)
  • Add exit option to eas credentials interactive menu. (#2570 by @szdziedzic)

12.5.0 - 2024-09-23

🎉 New features

  • Log command execution to assist in debugging local builds. (#2526 by @trajano)
  • Allow submitting builds in progress (#2543 by @radoslawkrzemien)
  • Use EAS_DANGEROUS_OVERRIDE_ANDROID_APPLICATION_ID and EAS_DANGEROUS_OVERRIDE_IOS_BUNDLE_IDENTIFIER environment variables as overrides of the Android application ID and iOS bundle identifier in managed workflow too. (#2576 by @sjchmiela)
  • Add destination branch arguments to update:republish command. (#2575 by @wschurman)

🐛 Bug fixes

  • Avoid malforming app.json with empty .expo object. (#2573 by @byCedric)
  • Fix typo causing worker:deploy asset upload errors not to be shown properly. (#2579 by @kitten)

12.4.1 - 2024-09-14

12.4.0 - 2024-09-14

🎉 New features

  • Add worker:alias command to assign aliases from the CLI. (#2548 by @byCedric)
  • Add worker --prod flag to deploy to production from the CLI. (#2550 by @byCedric)
  • Add worker --alias flag to assign custom aliases when deploying. (#2551 by @byCedric))
  • Add worker --id flag to use a custom deployment identifier. (#2552 by @byCedric))
  • Add worker --environment flag to deploy with EAS environment variables. (#2557 by @kitten))
  • Add worker --export-dir flag to select exported directory. (#2560 by @byCedric))
  • Add worker --json flag to allow integrating with 3rd parties and custom tooling. (#2561 by @byCedric))
  • Add worker:alias --json flag to allow integrating with 3rd parties and custom tooling. (#2562 by @byCedric))

🐛 Bug fixes

  • Avoid merging expo.extra plugin-generated data with expo.extra.eas.projectId in eas init. (#2554 by @byCedric))
  • Restore "export not found" error and hide recent export timestamps. (#2566 by @byCedric))
  • Check if export is available before validating project ID in eas worker. (#2569 by @byCedric))

🧹 Chores

  • Make error message for invalid CFBundleShortVersionString more descriptive and actionable. Improve CFBundleShortVersionString validation regex. (#2542 by @szdziedzic)
  • Add missing --non-interactive argument to worker:deploy command. (#2544 by @kitten)
  • Source @expo/env dotenv files for worker deployments. (#2545 by @kitten)
  • Support worker --production and clean up command output. (#2555 by @byCedric))
  • Unify both worker and worker:alias command output. (#2558 by @byCedric))
  • Share similar table/json output in both worker and worker:alias command outputs. (#2563 by @byCedric))
  • Polish the project URL prompt when setting up new projects. (#2564 by @byCedric))
  • Always assume static exports in eas deploy and add modified time. (#2565 by @byCedric))
  • Update the eas worker --help --environment description. (#2567 by @byCedric))
  • Remove the cursor space after selecting project dev domain. (#2568 by @byCedric))
  • Reword the dev domain prompt to mention "preview URL". (#2572 by @byCedric))

12.3.0 - 2024-09-09

🎉 New features

  • Add --non-interactive and --force support when --id is not passed to the eas init command. (#1983 by @mymattcarroll)

12.1.1 - 2024-09-09

🐛 Bug fixes

  • Fixed an issue where extensions retrieved the main app's entitlements instead of their own. (#2532 by @HarrisHan)

12.1.0 - 2024-09-06

🎉 New features

  • Internal/Experimental: Add EAS Worker command (#2447 by @kitten)
  • Upload fingeprint source as part of eas update command. (#2533 by @wschurman)

12.0.0 - 2024-09-04

🛠 Breaking changes

  • Prompt the users to set appVersionSource, while mentioning that remote is the default. (#2411 by @radoslawkrzemien)

🎉 New features

  • Add support for syncing Journaling Suggestions, Managed App Installation UI, and 5G Network Slicing capabilities. (#2525 by @szdziedzic)

11.0.3 - 2024-08-31

🐛 Bug fixes

  • Revert config-related packages to SDK 50 version from SDK 51 version to fix broken entitlements behavior for older SDKs. (#2524 by @szdziedzic)

11.0.2 - 2024-08-27

🐛 Bug fixes

  • Remove unncessary static project config context definition from eas build command context, to fix resolving dynamic projest ID and slug for dynamic app configs. (#2521 by @szdziedzic)

11.0.1 - 2024-08-26

🐛 Bug fixes

  • Make eas config command not require authentication when running in --eas-json-only mode. (#2517 by @szdziedzic)

11.0.0 - 2024-08-26

🛠 Breaking changes

🎉 New features

🧹 Chores

10.2.4 - 2024-08-19

10.2.3 - 2024-08-13

🧹 Chores

  • Add support for EAS_DANGEROUS_OVERRIDE_IOS_BUNDLE_IDENTIFIER for bare workflow iOS builds. (#2469 by @szdziedzic)
  • Update images list in eas.schema.json and warn users when using the deprecated Android images. (#2450 by @szdziedzic)

10.2.2 - 2024-07-31

🐛 Bug fixes

  • Pass correct path to vcsClient.isFileIgnoredAsync check for monorepos to validate that custom build config file is not ignored. (#2470 by @szdziedzic)

🧹 Chores

  • Bump asset upload timeout from 90 to 180 seconds. (#2466 by @quinlanj)

10.2.1 - 2024-07-18

🧹 Chores

  • Indicate if a user is logged in using EXPO_TOKEN when running eas whoami command. (#2461 by @szdziedzic)
  • Throw error when eas login command is run with EXPO_TOKEN environment variable set. (#2461 by @szdziedzic)
  • Check if user is already logged in when running eas login command. (#2461 by @szdziedzic)

10.2.0 - 2024-07-15

🎉 New features

  • Added flag --emit-metadata to emit eas-update-metadata.json in the bundle folder with detailed information about the generated updates (#2451 by @rainst)

🐛 Bug fixes

  • Bump @expo/apple-utils version to use the fallback Apple Developer Portal domain on every internal server error. (#2459 by @szdziedzic)

10.1.1 - 2024-07-04

10.1.0 - 2024-07-02

🎉 New features

10.0.3 - 2024-06-26

🧹 Chores

10.0.2 - 2024-06-17

🐛 Bug fixes

  • Fix parsing of build.gradle file by gradle-to-js parser by filtering out empty single line comments. (#2435 by @szdziedzic)

10.0.1 - 2024-06-17

🧹 Chores

  • Add clarification to private-key flag in command line help. (#2432 by @quinlanj)

10.0.0 - 2024-06-13

🛠 Breaking changes

🐛 Bug fixes

  • Resolve correct submit profile configuration for eas build command with --auto-submit-with-profile flag. (#2425 by @szdziedzic)
  • Correctly parse the EXPO_APPLE_PROVIER_ID environment variable. (#2349 by @louix)

🧹 Chores

  • Update lockfile to only include @types/node@20.11.0. (#2412 by @byCedric)
  • Update test workflow Node versions to 18, 20, and 22. (#2413 by @byCedric)

9.2.0 - 2024-06-06

🎉 New features

  • Add target-profile and source-profile flags to the eas build:resign command. (#2410 by @szdziedzic)
  • Display build profile in the output of eas build:list. (#2408 by @szdziedzic)

🐛 Bug fixes

  • Use the correct app config for no GitHub flow in init:onboarding. (#2397 by @szdziedzic)
  • Disallow picking expired builds as submit archive source. (#2406 by @sjchmiela)

🧹 Chores

  • Print network error message if present. (#2407 by @szdziedzic)
  • Make flags for eas build:list command more aligned with flags for rest of the commands. (#2409 by @szdziedzic)

9.1.0 - 2024-05-23

🎉 New features

9.0.10 - 2024-05-22

9.0.9 - 2024-05-22

9.0.8 - 2024-05-21

🧹 Chores

9.0.7 - 2024-05-17

9.0.6 - 2024-05-15

9.0.5 - 2024-05-13

9.0.4 - 2024-05-13

🧹 Chores

  • Add loader and progress information to the diagnostics command. (#2378 by @simek)

9.0.3 - 2024-05-10

🧹 Chores

9.0.2 - 2024-05-09

9.0.1 - 2024-05-09

🧹 Chores

9.0.0 - 2024-05-08

🛠 Breaking changes

  • Allow modification of provisioning profile in CI, add --freeze-credentials flag. (#2347 by @quinlanj)

🐛 Bug fixes

  • Pass env from process.env and build profile to expo-updates CLI calls where applicable. (#2359 by @wschurman)

🧹 Chores

8.0.0 - 2024-05-01

🛠 Breaking changes

  • Stop creating a channel on eas update and eas update:roll-back-to-embedded unless the --channel flag is specified. (#2346 by @quinlanj)

🐛 Bug fixes

  • Improve login info message for other login options. (#2352 by @wschurman)
  • Show the -s, --sso option in the login command help. (#2353 by @lzkb)

🧹 Chores

7.8.5 - 2024-04-26

🐛 Bug fixes

  • Add explicit workflow arg to expo-update CLI calls. (#2340 by @wschurman)

🧹 Chores

  • Improve error message if the server returns UNAUTHORIZED_ERROR. (#2345 by @szdziedzic)
  • Fill in min expo-updates version for expo-updates CLI. (#2344 by @wschurman)

7.8.4 - 2024-04-24

🧹 Chores

  • Update the list of available Android images. (#2337 by @radoslawkrzemien)
  • Make multi-select for revoking distribution certificates more readable. (#2342 by @szdziedzic)
  • Improve error message displayed when EAS CLI version doesn't satisfy minimal version required specified in eas.json. (#2341 by @szdziedzic)

7.8.3 - 2024-04-23

🐛 Bug fixes

  • Don't prompt to set android.package and ios.bundleIdentifier values when running in non-interactive mode. (#2336 by @szdziedzic)

🧹 Chores

7.8.2 - 2024-04-15

🐛 Bug fixes

  • Fix display of errors when expo-updates CLI command fails. (#2324 by @wschurman)
  • Move credentials endpoints to paginated counterparts. (#2327 by @quinlanj)

🧹 Chores

  • Add progress bar for fetching paginated datasets. (#2326 by @quinlanj)

7.8.1 - 2024-04-11

🐛 Bug fixes

🧹 Chores

7.8.0 - 2024-04-08

🎉 New features

🧹 Chores

7.7.0 - 2024-04-05

🎉 New features

  • Generate metadata file for project archive (#2149 by @khamilowicz)
  • Add --verbose-fastlane flag to eas submit command for more robust fastlane pilot logs. (#2276 by @khamilowicz)
  • Add eas credentials:configure-build subcommand. (#2282 by @fiberjw)

🧹 Chores

  • Add info about the Xcode 15.3 image to eas.schema.json. (#2312 by @szdziedzic)

7.6.2 - 2024-03-27

🧹 Chores

7.6.1 - 2024-03-25

🧹 Chores

7.6.0 - 2024-03-18

🎉 New features

  • Print uncommitted files in non-interactive mode if they fail the execution. (#2288 by @sjchmiela)

🐛 Bug fixes

  • Use a custom build config path with POSIX separator when sending data to the EAS Build server. (#2285 by @szdziedzic)
  • Improve resolving vcsClient as a part of the project context. (#2295 by @szdziedzic)

🧹 Chores

7.5.0 - 2024-03-11

🎉 New features

  • Add --auto-submit option to eas build:internal command. (#2271 by @szdziedzic)

🧹 Chores

7.4.0 - 2024-03-10

🎉 New features

  • Use new expo-updates configuration:syncnative for versioned native sync. (#2269 by @wschurman)

🐛 Bug fixes

🧹 Chores

7.3.0 - 2024-02-19

🎉 New features

🐛 Bug fixes

🧹 Chores

7.2.0 - 2024-02-11

🎉 New features

  • Support configuring a Google Service Account Key via eas credentials, for sending Android Notifications via FCM V1. (#2197 by @christopherwalter)

🐛 Bug fixes

  • Revert expose expo export dev flag as an option in eas update. (#2214 by @wschurman)

🧹 Chores

7.1.3 - 2024-02-07

🧹 Chores

7.1.2 - 2024-01-30

🧹 Chores

7.1.1 - 2024-01-26

🐛 Bug fixes

7.1.0 - 2024-01-26

🎉 New features

🧹 Chores

7.0.0 - 2024-01-19

🛠 Breaking changes

  • Stop generating eas-update-metadata.json on publish. (#2187 by @quinlanj)

🧹 Chores

6.1.0 - 2024-01-18

🎉 New features

🧹 Chores

6.0.0 - 2024-01-12

🛠 Breaking changes

🎉 New features

  • Allow undefined update message for EAS Update publishing when no VCS. (#2148 by @wschurman)

🧹 Chores

  • Upgrade @expo/eas-build-job to 1.0.56, thus removing unused (since #1524) support for S3 project archives. (#2165 by @sjchmiela)

5.9.3 - 2023-12-19

🧹 Chores

5.9.2 - 2023-12-15

🧹 Chores

5.9.1 - 2023-11-20

🐛 Bug fixes

5.9.0 - 2023-11-15

🎉 New features

5.8.0 - 2023-11-13

🎉 New features

🐛 Bug fixes

🧹 Chores

  • Update @expo/package-manager to 1.1.2 to change package manager resolution order. (#2118 by @szdziedzic)

5.7.0 - 2023-11-08

🎉 New features

  • Add EXPO_APPLE_TEAM_ID and EXPO_APPLE_PROVIDER_ID support. (#2091 by @EvanBacon)

🧹 Chores

  • Add link to SDK upgrade page for SDK-gated command error. (#2106 by @wschurman)
  • Add selectedImage and customNodeVersion information to build metadata. (#2113 by @szdziedzic)

5.6.0 - 2023-10-27

🎉 New features

🐛 Bug fixes

  • Added buildArtifactsUrl to eas-cli build:view --json output. (#2102 by @sjchmiela)

5.5.0 - 2023-10-25

🎉 New features

  • Add account type to the items in the prompt to select project owner. (#2083 by @alanjhughes)
  • Gate roll back to embedded to expo-updates >= 0.19.0. (#2094 by @wschurman)

🐛 Bug fixes

  • EAS Update: Increase asset upload timeout to 90s and reset on upload retry for slow connections. (#2085 by @wschurman)

🧹 Chores

5.4.0 - 2023-09-28

🎉 New features

  • Add support for the Tap to Pay on iPhone iOS entitlement. (#2069 by @fobos531)

5.3.1 - 2023-09-28

🧹 Chores

  • Update EAS Build images description in our VSCode plugin. Add new macos-ventura-13.6-xcode-15.0 image. (#2068 by @szdziedzic)

5.3.0 - 2023-09-25

🎉 New features

🐛 Bug fixes

🧹 Chores

5.2.0 - 2023-09-05

🎉 New features

🐛 Bug fixes

  • Update: only print channel-branch pairing if we created a channel. (#2036 by @quinlanj)

🧹 Chores

5.1.0 - 2023-09-01

🎉 New features

🐛 Bug fixes

5.0.2 - 2023-08-29

🐛 Bug fixes

  • Add proper expo cli --platform flag handling when exporting updates. (#1939 by @byCedric)

5.0.1 - 2023-08-28

🐛 Bug fixes

  • Pass platform argument to expo-cli correctly when using the eas update command. (#2028 by @szdziedzic)

5.0.0 - 2023-08-28

🛠 Breaking changes

  • Only export at most ios and android dist for EAS updates. (#2002 by @wschurman)

🎉 New features

  • Add rollback disambiguation command. (#2004 by @wschurman)
  • Detect devices that fail to be provisioned, list them to the user and show the explanation message with the link to the devices page to check actual status. (#2011 by @radoslawkrzemien)
  • Add info to EAS Update asset upload process about asset counts and limits. (#2013 by @wschurman)
  • .nvmrc support for setting node version. (#1954 by @khamilowicz)

🐛 Bug fixes

  • Support republishing roll back to embedded updates. (#2006 by @wschurman)
  • Configure updates as well when somebody tries to run a build with channel set. (#2016 by @wschurman)
  • Fix printing bug: branch with no update. (#2023 by @quinlanj)

🧹 Chores

4.1.2 - 2023-08-10

🧹 Chores

  • Make branch mapping utility files have no dependencies. (#1993 by @quinlanj)

4.1.1 - 2023-08-08

🧹 Chores

  • Logger to say website support is coming soon for rollouts. (#1997 by @quinlanj)

4.1.0 - 2023-08-08

🎉 New features

  • Pass credentials to custom iOS builds. (#1989 by @szdziedzic)
  • Add the withoutCredentials option as a common build profile field in eas.json. (#1994 by @szdziedzic)

4.0.1 - 2023-08-08

🐛 Bug fixes

  • Fix eas channel:* to work with empty branch mappings. (#1992 by @quinlanj)

4.0.0 - 2023-08-07

🛠 Breaking changes

  • Release redesigned eas channel:rollout into developer preview. The set of flag arguments are different, in addition to the workflow. (#1986 by @quinlanj)

🎉 New features

  • Option to add current Apple Silicon device without the need to manually provide the provisioning UDID. (#1943 by @radoslawkrzemien)

🐛 Bug fixes

🧹 Chores

3.18.3 - 2023-08-03

🐛 Bug fixes

🧹 Chores

  • Add relationships flag to rollouts-preview. (#1972 by @quinlanj)
  • Get channel:{view,list,edit} to play nice with rollouts. (#1974 by @quinlanj)
  • Use 'roll out' instead of rollout for verbs. (#1979 by @quinlanj)

3.18.2 - 2023-08-03

🐛 Bug fixes

🧹 Chores

  • Use just a comma instead of , when concatenating keywords in eas metadata. (#1967 by @szdziedzic)

3.18.1 - 2023-08-03

🐛 Bug fixes

🧹 Chores

  • Make new rollouts version available for internal dogfooding. (#1966 by @quinlanj)
  • Change default runtime version policy for EAS Update to appVersion. (#1968 by @quinlanj)

3.18.0 - 2023-08-02

🎉 New features

🧹 Chores

3.17.1 - 2023-07-27

🧹 Chores

3.17.0 - 2023-07-24

🎉 New features

  • Add rollout option for configuring Android submissions. (#1938 by @szdziedzic)

🧹 Chores

  • Added branch mapping utility functions. (#1944 by @quinlanj)
  • Amend branch mapping utility functions. (#1945 by @quinlanj)
  • Handle error thrown when intel-medium resource class is not available as server-side defined error. (#1947 by @szdziedzic)
  • Remove intel-medium from eas.schema.json, so it's not suggested as a valid value by our VSCode plugin. (#1947 by @szdziedzic)

3.16.0 - 2023-07-18

🎉 New features

  • Add styling to SSO auth redirect completion page. (#1929 by @wschurman)
  • Ignore entitlements from native template when /ios is gitignored. (#1906 by @byCedric)
  • Use node server default port selection for SSO login server. (#1930 by @wschurman)

🐛 Bug fixes

  • Fix incorrect handling of valid inProgress Android submission release status. (#1934 by @szdziedzic)

🧹 Chores

  • Print friendly error msg in case account doesn't have required permission. (#1867 by @firasrg)
  • Limit project file upload size to 2GB. (#1928 by @khamilowicz)
  • Bump urql graphql client major version. (#1936 by @quinlanj)

3.15.1 - 2023-07-11

🐛 Bug fixes

  • Ensure useClassicUpdates is not set when using EAS Update commands. (#1915 by @ide)
  • Handle multiple GraphQLErrors when receiving a CombinedError. (#1924 by @radoslawkrzemien)

🧹 Chores

3.15.0 - 2023-06-30

🎉 New features

  • Show build profile when selecting a build for eas build:run. (#1901 by @keith-kurak)
  • Adds -m alias to --message in update/republish and removed README comment. (#1905 by @pusongqi)

🧹 Chores

3.14.0 - 2023-06-20

🎉 New features

🧹 Chores

  • Change sso flag display. (#1890 by @lzkb)
  • Build:configure -- add channels to eas.json if using eas updates. (#1887 by @quinlanj)
  • Eas update: Error gracefully if no git repo. (#1884 by @quinlanj)
  • Error gracefully if expo pkg not installed. (#1883 by @quinlanj)
  • Update eas build:configure command to show the link of eas.json when generated. (#1878 by @amandeepmittal)
  • Create app.json or add the "expo" key if either are missing, before modifying or reading the file. (#1881 by @brentvatne)
  • Include the original stack in re-thrown errors thrown from EAS CLI commands. (#1882 by @brentvatne)
  • Make update:configure less verbose. (#1888 by @quinlanj)
  • Improve validation for values from app config. (#1893 by @wkozyra95)
  • Improve expo-updates validation for builds with channel property set. (#1885 by @szdziedzic)

3.13.3 - 2023-06-05

🐛 Bug fixes

  • Show original GraphQL error message in case of an unexpected error. (#1862 by @dsokal)
  • Fix updates synchronization of native files to include strings.xml for bare projects. (#1865 by @wschurman)

3.13.2 - 2023-05-26

🧹 Chores

3.13.1 - 2023-05-24

🧹 Chores

  • Short format for selecting devices prompt. (#1840 by @khamilowicz)
  • Improve typescript types for user display. (#1851 by @wschurman)
  • Add error for large resource class not available on the free plan to server-side defined errors. (#1848 by @szdziedzic)

3.13.0 - 2023-05-17

🎉 New features

  • Add clear cache flag to eas update. (#1839 by @quinlanj)
  • Print EAS Update assets that timed out during upload or processing. (#1849 by @wschurman)

🐛 Bug fixes

  • Fix building iOS projects with framework targets. (#1835 by @dsokal)

🧹 Chores

3.12.1 - 2023-05-15

🐛 Bug fixes

🧹 Chores

  • Change red apple icon to green apple icon on successful build. (#1828 by @dchhetri)

3.12.0 - 2023-05-08

🎉 New features

🧹 Chores

3.11.0 - 2023-05-05

🎉 New features

  • Add account list to eas whoami/eas account:view. (#1814 by @wschurman)
  • Add large resource class for iOS as allowed value in eas.json. (#1817 by @szdziedzic)

🧹 Chores

  • Print request ID on unforeseen GraphQL error for easier tracking and follow up. (#1813 by @radoslawkrzemien)

3.10.2 - 2023-04-25

🧹 Chores

  • Add info about Xcode 14.3 image to eas.schema.json. (#1808 by @szdziedzic)
  • Allow users to select an app to run using the build:run command if multiple apps are found in the tarball. (#1807 by @szdziedzic)
  • Don't resolve default resource class for iOS in CLI. (#1734 by @szdziedzic)

3.10.1 - 2023-04-25

🧹 Chores

3.10.0 - 2023-04-21

🎉 New features

🐛 Bug fixes

🧹 Chores

  • Throw an error if somebody tries to start iOS build with the large resource class selected using the deprecated --resource-class flag. (#1795 by @szdziedzic)

3.9.3 - 2023-04-18

🐛 Bug fixes

3.9.2 - 2023-04-13

🐛 Bug fixes

  • Fixes the rollout percentages when ending a rollout. (#1781 by @jonsamp)
  • Print meaningful error message if extra.eas.projectId is not a string. (#1788 by @dsokal)

🧹 Chores

3.9.1 - 2023-04-10

🐛 Bug fixes

  • Update apple utilities to work around the maintenance error. (#1780 by @byCedric)

🧹 Chores

  • Don't use defaults for the cache.cacheDefaultPaths build profile field. (#1769 by @szdziedzic)

3.9.0 - 2023-04-06

🎉 New features

🐛 Bug fixes

🧹 Chores

  • Use the eas-cli npm tag for checking for the local build plugin updates. (#1759 by @dsokal)
  • Ignore requireCommit option in eas build:internal. (#1760 by @wkozyra95)
  • Support parsing eas.json from a string. (#1766 by @wkozyra95)

3.8.1 - 2023-03-16

🐛 Bug fixes

🧹 Chores

3.8.0 - 2023-03-13

🎉 New features

3.7.2 - 2023-02-24

🐛 Bug fixes

  • Implement Apple's proprietary Hashcash algorithm for signing authentication requests. (#1719 by @EvanBacon)

3.7.1 - 2023-02-23

🐛 Bug fixes

3.7.0 - 2023-02-23

🎉 New features

  • Support variant detection for package*UniversalApk Gradle Commands. (#1708 by @frw)

3.6.1 - 2023-02-20

🐛 Bug fixes

  • Disable analytics when running behind a proxy. (#1696 by @wkozyra95)
  • Clarify missing owner field error message for Robot users. (#1702 by @wschurman)

🧹 Chores

  • Validate the platform for local builds earlier. (#1698 by @wkozyra95)
  • Display build message when picking build in eas submit, eas build:resign, and eas build:run commands. (#1700 by @szdziedzic)
  • Add a link directly to a build phase logs in the EAS CLI build error message. (#1699 by @szdziedzic)

3.6.0 - 2023-02-14

🎉 New features

  • Use sdkVersion as default runtime version policy when running eas update:configure. (#1669 by @jonsamp)
  • Warn when project ID but no owner specified and mismatch logged in user. (#1667 by @wschurman)
  • Return the build message if one is available. (#1691 by @raulriera)

🐛 Bug fixes

  • Fix suggested application identifier to match owning account name. (#1670 by @wschurman)

🧹 Chores

3.5.2 - 2023-02-05

🐛 Bug fixes

  • Use the new developer-mdn.apple.com subdomain instead of developer.apple.com. (#1673 by @brentvatne)

3.5.1 - 2023-02-01

🐛 Bug fixes

  • Fix the issue with the eas.json envs being not available when resolving dynamic config. (#1666 by @szdziedzic)

3.5.0 - 2023-01-31

🎉 New features

  • Set m1-medium resource class for SDK version >=48 and RN version >=0.71 builds with unspecified resource class. (#1655 by @szdziedzic)

🐛 Bug fixes

  • Fix undefined branchMappingLogic. (#1653 by @quinlanj)
  • Fix using local credentials for internal distribution builds with universal provisioning. (#1657 by @wkozyra95)

🧹 Chores

  • Move image validation to the server side and better handle server validation errors in the eas-cli. (#1650 by @szdziedzic)
  • Update metadata on the worker when using git-based builds. (#1651 by @wkozyra95)

3.4.1 - 2023-01-23

🐛 Bug fixes

  • Fix incorrect exit code for successful local builds. (#1649 by @dsokal)

3.4.0 - 2023-01-20

🎉 New features

  • Add --json flag to eas config command. (#1568 by @wkozyra95)
  • Add M1 resource class configuration to default eas.json when running eas build:configure on a new project. (#1637 by @brentvatne)
  • Add prompt to switch iOS builds to M1 if the build queue is long. (#1642 by @dsokal)

🐛 Bug fixes

  • Fix running commands with --json flag when EAS_NO_VCS is set. (#1641 by @wkozyra95)

🧹 Chores

  • Remove unnecessary workaround for trailing backslash in .gitignore. (#1622 by @wkozyra95)
  • Internal command that will be run on EAS worker when building from GitHub. (#1568 by @wkozyra95)
  • Make the disabled tier error message more descriptive. (#1635 by @dsokal)
  • Control some of the EAS Build error messages server-side. (#1639 by @wkozyra95)

3.3.2 - 2023-01-12

🐛 Bug fixes

  • Add missing key information about updates in eas update --json and eas update:view --json. (#1619 by @byCedric)

🧹 Chores

3.3.1 - 2023-01-11

🐛 Bug fixes

  • Revert missing key information about updates in eas update --json and eas update:view --json. (d20db0f by @ide)

3.3.0 - 2023-01-11

🎉 New features

  • Add ability to select resource class for a build in build profile. (#1609 by @dsokal)
  • Deprecate --resource-class flag. (#1615 by @dsokal)
  • Add new resource classes and update already available. (#1616 by @szdziedzic)

🐛 Bug fixes

  • Add missing key information about updates in eas update --json and eas update:view --json. (#1611 by @byCedric)

3.2.1 - 2023-01-09

🐛 Bug fixes

3.2.0 - 2023-01-09

🎉 New features

  • Add --channel option to update:republish. (#1580 by @byCedric)
  • Use appVersion as default runtime version policy when running eas update:configure. (#1588 by @jonsamp)
  • Support --json flag in webhook list command. (#1605 by @sheddy7)

🐛 Bug fixes

  • Makes eas.json configuration to only run on update:configure. (#1598 by @jonsamp)
  • Fix issue with invisible build info in some terminals in the eas build:run and eas build:resign commands. (#1602 by @szdziedzic)
  • Fix issues with invisible build info in some terminals while using the eas submit command. (#1603 by @szdziedzic)
  • Use the completedAt timestamp as the build finish date instead of the updatedAt timestamp in the eas build:run command. (#1604 by @szdziedzic)

🧹 Chores

  • Make all URLs in logs clickable in terminals supporting hyperlinks. (#1591 by @Simek)
  • Use paginated select prompt for the eas build:run command. (#1601 by @szdziedzic)

3.1.1 - 2022-12-19

🐛 Bug fixes

  • Fix update --channel and --branch flag validation. (#1579 by @byCedric)

3.1.0 - 2022-12-17

🎉 New features

3.0.0 - 2022-12-07

🛠 Breaking changes

🐛 Bug fixes

  • Make the not recognized image error handler run only if the image is present under a valid key and has an invalid value. (#1565 by @szdziedzic)
  • Fix the node:assert import error by using imports from assert instead of from node:assert. (#1569 by @szdziedzic)

🧹 Chores

  • Remove old republish code from the update command. (#1535 by @byCedric)

2.9.0 - 2022-12-05

🎉 New features

  • Add caching for eas build:run command. (#1542 by @szdziedzic)
  • Add isGitWorkingTreeDirty to EAS Update records. (#1550 by @FiberJW)
  • Prompt developer to download the app after the simulator build is finished. (#1554 by @szdziedzic)

🐛 Bug fixes

  • Ask for the missing application identifier consistently in eas build:version:sync command. (#1543 by @wkozyra95)
  • Disable selecting builds whose artifacts have expired in the eas build:run command. (#1547 by @szdziedzic)
  • Change intent with which the eas build:run command opens an Android app to android.intent.action.MAIN. (#1556 by @szdziedzic)

2.8.0 - 2022-11-28

🎉 New features

🐛 Bug fixes

  • Only create a new channel when update branch is new. (#1507 by @byCedric)

🧹 Chores

  • Better wording in eas submit. (#1527 by @dsokal)
  • Upload project sources for EAS Build and archives for EAS Submit to GCS. (#1524 by @wkozyra95)
  • Add a better error message for when an invalid image is set in eas-json. (#1531 by @szdziedzic)
  • Remove internal expo id from device formatter. (#1541 by @dsokal)

2.7.1 - 2022-11-16

🐛 Bug fixes

  • Use envs from the build profile to resolve credentials in eas credentials. (#1520 by @wkozyra95)

🧹 Chores

2.7.0 - 2022-11-11

🎉 New features

  • Support uploading different platform combinations in eas update. (#1461 by @EvanBacon)
  • Add Git commit to EAS Update record. (#1499 by @fiberjw)
  • Use local CLI for expo export in SDK +46. (#1474 by @EvanBacon)
  • Validate icon PNGs before running Android build. (#1477 by @dsokal)

🐛 Bug fixes

  • Fixed the values of the distribution enum on the build profile schema receiving the incorrect descriptions. (#1504 by @macksal)
  • Remove hard dependency on expo package being installed to init a project. (#1517 by @brentvatne)

🧹 Chores

  • Remove friction from the initial EAS update setup. (#1479 by @byCedric)
  • Improve choice formatting when selecting a build to submit in the eas submit command. (#1502 by @szdziedzic)

2.6.0 - 2022-10-27

🎉 New features

  • Add custom metadata validation command with more complex rules. (#1416 by @byCedric)
  • Add eas build:run command which runs iOS simulator builds from the CLI. (#1447 by @szdziedzic)
  • Add feature gate support. (#1475 by @wschurman)
  • Warn about outdated build deployment when configuring EAS Update. (#1467 by @fiberjw)

🧹 Chores

2.5.1 - 2022-10-24

🐛 Bug fixes

2.5.0 - 2022-10-24

🎉 New features

🐛 Bug fixes

  • Initialize analytics consistently and move analytics into context. (#1444 by @wschurman)
    • Skip using --non-interactive and --experimental-bundle flags when local Expo CLI is installed. (#1460 by @EvanBacon)

🧹 Chores

2.4.1 - 2022-10-17

🐛 Bug fixes

  • Bump eas-cli-local-build-plugin to 0.0.144 to not require yarn for local builds. (c05ef by @dsokal)

🧹 Chores

  • Remove EAS Submit errors from codebase. The errors have been moved to the server side. (#1443 by @dsokal)

2.4.0 - 2022-10-14

🎉 New features

  • Handle more common errors for EAS Submit. (#1440 by @dsokal)

🧹 Chores

2.3.0 - 2022-10-10

🎉 New features

2.2.1 - 2022-10-05

🐛 Bug fixes

2.2.0 - 2022-10-04

🛠 Breaking changes

  • Prompt before configuring EAS project. (#1356 by @wschurman)
  • Adds paginated support to device commands. Removes the ability to delete multiple devices at once. (#1381 by @kgc00)

🎉 New features

  • Add -e as a shortcut for --profile flag. (#1342 by @szdziedzic)
  • Support JSON5 in eas.json. (#1350 by @dsokal)
  • Add pagination and interactivity to update commands. (#1323 by @kgc00)
  • Add support for uploading files to EAS Secret. (#1354 by @dsokal)
  • Add pagination to channel commands. (#1352 by @kgc00)
  • Add pagination to build commands. (#1353 by @kgc00)
  • Provide suggestions for developers when archive size is large. (#1363 by @szdziedzic)
  • Improve eas init command. (#1376 by @wschurman)
  • Warn about outdated channel configuration before build when using eas update. (#1397 by @kbrandwijk)
  • Validate that owner and projectId and slug all are in alignment. (#1405 by @wschurman)

🐛 Bug fixes

  • Fix automatic eas.json generation when running eas build. (#1415 by @wkozyra95)

🧹 Chores

2.1.0 - 2022-09-05

🎉 New features

  • Add tvOS credentials compatibility for Adhoc and App store builds. (#1325 by @quinlanj)
  • Add eas open command for opening project page in web browser. (#1337 by @dsokal)
  • Add support for buildArtifactPaths. Rename artifactPath to applicationArchivePath. (#1321 by @dsokal)

🐛 Bug fixes

  • Fix viewing branch list when a branch has no associated platforms. (#1326 by @hbiede)
  • Fix description of help command in help prompt. (#1341 by @Simek)
  • Resolve paths from the root when checking for gitignored values. (#1336 by @wkozyra95)

🧹 Chores

2.0.0 - 2022-09-01

🛠 Breaking changes

  • Fix typo in cli.promptToConfigurePushNotifications field in eas.json. EAS CLI will throw an error if the old field name is in eas.json. (#1332 by @dsokal)

🐛 Bug fixes

1.2.0 - 2022-08-29

🎉 New features

  • Add 2022 Apple capabilities. (#1307 by @EvanBacon)
  • Print warning when eas-cli is installed as project dependency. (#1310 by @dsokal)
  • Add eas.json to skip push notifications credentials setup. (#1315 by @dsokal)
  • Warn about EAS outages when running build, submit, and update commands. (#1312 by @szdziedzic)

🐛 Bug fixes

  • Replace promptToCreateProjectIfNotExistsAsync with getProjectIdAsync. (#1303 by @wschurman)
  • Use AppQuery instead of ProjectQuery. (#1304 by @wschurman)

🧹 Chores

  • Improve instructions on setting extra.eas.projectId in app configuration. (#1316 by @dsokal)
  • Improve copy in EAS Submit - "e-mail" -> email, and make the link to app on App Store go directly to the TestFlight tab. (#1318 by @brentvatne)

1.1.1 - 2022-08-23

🎉 New features

  • Add support for autoIncrement option at the root of the build profile. (#1298 by @szdziedzic)

🐛 Bug fixes

  • Handle trailing backslash in .gitignore. (#1306 by @wkozyra95)
  • Retry ASC Api Key downloads if it has not fully propagated on Apple's infrastructure. (#1302 by @quinlanj)

1.1.0 - 2022-08-23

🎉 New features

  • Add support for passing platform flag to credentials command. (#1277 by @Simek)

🐛 Bug fixes

  • Prevent throwing dynamic app config write error when configuring project ID. (#1301 by @wschurman)

🧹 Chores

  • Remove unused dependency and devDependency from the CLI. (#1297 by @Simek)

1.0.0 - 2022-08-22

🛠 Breaking changes

  • Remove timeout when waiting for build / submission. (#1289 by @dsokal)

🎉 New features

  • Add metadata support for dynamic store.config.js files. (#1270 by @byCedric)
  • Improve reliability of update asset presigned upload requests. (#1278 by @wschurman)

🐛 Bug fixes

  • Rebind console.info correctly after ora instance stops. (#1113 by @EvanBacon)
  • Fix initializing git repository in monorepo. (#1279 by @dsokal)
  • Limit the number of SignedAssetUploadSpecifications fetched at a time. (#1287 by @wschurman)

🧹 Chores

0.60.0 - 2022-08-12

🎉 New features

🧹 Chores

  • Add JSON Schema metadataPath to iOS submission profile. (#1269 by @byCedric)
  • Add warning when appVersion runtime policy is not supported. (#1271 by @wkozyra95)

0.59.0 - 2022-08-10

🐛 Bug fixes

  • Fix building Android projects locally that don't have execute permissions set for gradlew. (82231 by @dsokal)
  • Disable nativeVersion policy only for remote version source. (#1261 by @wkozyra95)

🧹 Chores

0.58.0 - 2022-08-09

🎉 New features

🧹 Chores

  • Do not include sources in eas-json npm package. (#1248 by @wkozyra95)
  • Swallow error when unable to track file in no commit workflow. (#1109 by @brentvatne)

0.57.0 - 2022-08-03

🎉 New features

  • Add new option to eas device:create - allow importing devices from Apple Developer Portal. (#1236 by @dsokal)
  • Add support for attaching messages to builds. (#1237 by @dsokal)
  • Introduce interactive pagination for branch commands. (#1213 by @kgc00)

0.56.0 - 2022-07-28

🎉 New features

🐛 Bug fixes

  • Show spinner instead of silently timing out during asset upload. (#1206 by @wschurman)
  • Fix build archive S3 URLs. (#1207 by @dsokal)
  • autoIncrement option on iOS will update versions of all targets that depend on an application target. (#1219 by @wkozyra95)

🧹 Chores

  • Increase max number of chained "extends" in build profiles. (#1208 by @wkozyra95)
  • Change wording on build warning for bundle id/package name. (#1211 by @kbrandwijk)

0.55.1 - 2022-07-12

🐛 Bug fixes

0.55.0 - 2022-07-11

🎉 New features

🐛 Bug fixes

🧹 Chores

  • Update validation rules for metadata info locales. (#1174 by @byCedric)
  • Improve store configuration defaults and schema documentation. (#1183 by @byCedric)
  • Improve store config categories configuration. (#1187 by @byCedric)
  • Remove deprecated idfa and price tier from store config. (#1193 by @byCedric)

0.54.1 - 2022-06-15

🎉 New features

  • Add App Store Connect link after eas metadata:push. (#1168 by @byCedric)

🐛 Bug fixes

  • Surface ASC errors in metadata for normal API rejections. (#1167 by @byCedric)
  • Add metadata schema to bundled eas-cli package. (#1166 by @byCedric)

0.54.0 - 2022-06-15

🛠 Breaking changes

🎉 New features

  • eas update now provides more information about the publish process including real-time feedback on asset uploads, update ids, and website links. (#1152 by @kgc00)
  • Added first beta of eas metadata to sync store information using store configuration files (#1136 by @bycedric)

🐛 Bug fixes

  • Improved support for working on branches with many updates. (#1144, #1148 by @kgc00)
  • eas update project links no longer contain a ) on unsupported terminals. (#1152 by @kgc00)

🧹 Chores

0.53.1 - 2022-06-07

🐛 Bug fixes

  • No longer timeout on publishing updates for branches with many updates. (#1119 by @kgc00)

🧹 Chores

  • Display project archive docs before compressing/uploading to EAS Build. (#1127 by @dsokal)
  • Add new common error code for submits. (#1129 by @dsokal)

0.53.0 - 2022-05-30

🛠 Breaking changes

🐛 Bug fixes

🧹 Chores

0.52.0 - 2022-04-26

🎉 New features

0.51.0 - 2022-04-19

🎉 New features

  • Add non-interactive flag to eas update command. (#1066 by @wschurman)
  • Handle new EAS Submit common error - expired Apple's certificates. (#1068 by @dsokal)

🐛 Bug fixes

  • Enable full bundling logging for eas update when debugging. (#1070 by @byCedric)

🧹 Chores

  • Upgrade @expo/apple-utils@0.0.0-alpha.31 (now with license). (#1064 by @EvanBacon)
  • Unify Google Service Account key prompts. (#1063 by @dsokal)

0.50.0 - 2022-04-11

🎉 New features

  • Provide queue position progress and estimated wait time. (#1049, #1058 by @dsokal)
  • Enable App Store authentication for ASC Api Keys with environment variables. (#1051 by @quinlanj)

🐛 Bug fixes

  • Prompt for user/password authentication where required. (#1055 by @quinlanj)
  • Require private-key-path to be specified for updating when code signing configured. (#1059 by @wschurman)

0.49.0 - 2022-04-05

🎉 New features

  • Added experimental App Store Connect API provisioning profile regeneration. (#1038 by @EvanBacon)
  • Experimental support for iOS App Extensions in managed projects. (#1039 by @wkozyra95)

🐛 Bug fixes

🧹 Chores

0.48.2 - 2022-03-21

🎉 New features

🐛 Bug fixes

0.48.1 - 2022-03-15

🐛 Bug fixes

  • Fix code signing error when not yet configured. (#1018 by @wschurman)
  • Fix link to build details page to use project.slug. (#1021 by @giautm)

🧹 Chores

  • Improve apple login prompt for internal distribution builds. (#1016 by @wkozyra95)

0.48.0 - 2022-03-14

🎉 New features

🐛 Bug fixes

  • Fix "Unknown status" error when a build is canceled. (#1012 by @wkozyra95)

🧹 Chores

0.47.0 - 2022-02-08

🐛 Bug fixes

  • Return informative error when running eas channel:rollout with a channel that does not exist. (#930 by @jkhales)
  • Check if expo-updates is installed before publish. (#953 by @jkhales)

🧹 Chores

0.46.0 - 2022-01-26

🛠 Breaking changes

  • Drop support for building iOS builds on macOS Catalina. (#939 by @dsokal)

🐛 Bug fixes

  • Fix URL placeholder for iOS submits. (#941 by @dsokal)

🧹 Chores

0.45.1 - 2022-01-19

🎉 New features

  • Add json output for started builds when using --no-wait. (#921 by @kbrandwijk)
  • Add support to eas build for specifying a custom prebuildCommand in eas.json. (#919 by @kbrandwijk)

🧹 Chores

0.45.0 - 2022-01-18

🎉 New features

🧹 Chores

0.44.1 - 2022-01-11

🐛 Bug fixes

  • Fix build:configure expo-updates configuration to only run on generic projects. (#904 by @brentvatne)

🧹 Chores

  • Upgrade node-forge to 1.0.0. (#902 by @dependabot, @dsokal)
  • Replace @expo/plugin-autocomplete with @oclif/plugin-autocomplete. Upgrade oclif deps. (#903 by @dsokal)

0.44.0 - 2022-01-11

🛠 Breaking changes

  • No longer enable APNS (iOS Push Notifications) capability by default anymore. (#797 by @EvanBacon)
  • Don't configure Android projects locally. Clean up old Gradle signing config. Streamline expo-updates configuration. (#888 by @dsokal)

🎉 New features

🐛 Bug fixes

  • Fix creating project archive with symlink cycle. (#891 by @wkozyra95)
  • Sign Android debug builds with the correct keystore. Previously, all debug builds would be signed with a default debug keystore. (#888 by @dsokal)

0.43.0 - 2022-01-03

🎉 New features

🐛 Bug fixes

  • Fix saving build:inspect results to project subdirectory. (#863 by @wkozyra95)

0.42.4 - 2021-12-21

🐛 Bug fixes

  • Add missing dependency - @oclif/plugin-help. (#865 by @dsokal)

0.42.3 - 2021-12-21

🐛 Bug fixes

  • Allow select eas commands to be run outside of a project. (#851 by @jkhales)

🧹 Chores

  • Replace all oclif dependencies with @oclif/core. (#858 by @dsokal)

0.41.1 - 2021-12-16

🎉 New features

  • Adds commands for EAS Update, which is now in preview for subscribers. EAS Update makes fixing small bugs and pushing quick fixes a snap in between app store submissions. It accomplishes this by allowing an end-user's app to swap out the non-native parts of their app (for example, JS, styling, and image changes) with a new update that contains bug fixes and other updates. (#854 by @jonsamp)
    • Adds eas update, which can bundle and publish updates on a branch.
    • Adds eas branch, which manages branches. Branches contain a list of updates and are linked to channels.
    • Adds eas channel, which manages channels. Channels are specified inside builds and are linked to branches, allowing us to link specific updates with specific builds.
    • Read more in our feature preview docs.

🐛 Bug fixes

  • Fix eas submit displaying a prompt in non-interactive mode when some ASC API credentials are missing in eas.json. (#841 by @barthap)

0.41.0 - 2021-12-13

🎉 New features

🐛 Bug fixes

🧹 Chores

  • Warn when building managed project with SDK < 41. (#833 by @dsokal)

0.40.0 - 2021-12-08

🛠 Breaking changes

  • [eas-cli] change eas update:publish to eas update. (#830 by @jkhales)

🐛 Bug fixes

  • Pass build profile environment to credentials command. (#828 by @quinlanj)

0.39.0 - 2021-12-06

🎉 New features

  • Set runtime version in eas update:configure. (#811 by @jkhales)
  • Print project workflow in eas diagnostics. (#822 by @dsokal)

🐛 Bug fixes

🧹 Chores

0.38.3 - 2021-11-29

🐛 Bug fixes

0.38.2 - 2021-11-26

🎉 New features

  • Add support for extending submit profiles. (#794 by @dsokal)
  • Add command: eas update:configure. (#800 by @jkhales)

🐛 Bug fixes

  • Fix reading app version and app build version of iOS projects. (#798 by @dsokal)
  • Fix push notifications entitlements. (#801 by @brentvatne)

0.38.1 - 2021-11-25

🐛 Bug fixes

  • Fix building iOS projects with whitespace in the project name. (#792 by @dsokal)

0.38.0 - 2021-11-24

🎉 New features

🐛 Bug fixes

🧹 Chores

  • Upgrade typescript to 4.5.2. Upgrade oclif dependencies. (#781 by @dsokal)
  • Make missing git command error message more descriptive. (#784 by @dsokal)

0.37.0 - 2021-11-18

🛠 Breaking changes

  • Require explicitly defined applicationId/bundleIdentifier for EAS Submit in case of bare projects consisting of multiple product flavors on Android or multiple schemes/targets on iOS. (#765 by @wkozyra95)

🎉 New features

  • Auto create channel on publish. (#766 by @jkhales)
  • Interactively configure Git user.name and user.email. (#772 by @dsokal)

🐛 Bug fixes

  • Validate release channel in eas.json. (#764 by @dsokal)
  • Make the missing profile error message more descriptive. (#761 by @dsokal)

🧹 Chores

  • Better error message when missing eas.json. (#770 by @quinlanj)

0.36.1 - 2021-11-15

🐛 Bug fixes

  • Fix dateformat import issue when building with --local flag. (a520d by @dsokal)

0.36.0 - 2021-11-15

🛠 Breaking changes

  • Do not require manual eas-cli-local-build-plugin installation. An existing global installation (either with yarn global add or npm install -g) will not be used anymore. (#753 by @dsokal)

🎉 New features

  • Use Keystore Service when keytool is not installed. (#754 by @dsokal)
  • Add applicationId/bundleIdentifier fields to the submit profile. (#765 by @wkozyra95)

🐛 Bug fixes

  • Fix auto-submitting with --auto-submit-with-profile. (#748 by @dsokal)
  • Pass env from build profile when resolving entitlements. (#751 by @wkozyra95)
  • Only prompt for Apple Id username if authenticating with an App Specific Password. (#745 by @quinlanj)

🧹 Chores

  • Use same URL paths for local development of EAS CLI as production. (#750 by @ide)
  • Grammar: Api -> API. (#755 by @quinlanj)
  • Add analytics for EAS Submit. (#752 by @quinlanj)
  • Add an 'attempt' event to build and submit analytics. (#757 by @quinlanj)

0.35.0 - 2021-11-08

🎉 New features

  • Add ASC API Key generation workflow. (#718 by @quinlanj)
  • Add support for removal of ASC API Keys. (#721 by @quinlanj)
  • Allow users to assign an ASC API Key to their project. (#719 by @quinlanj)
  • Add setup support for ASC API Keys. (#733 by @quinlanj)
  • Show initiating user display name when selecting a build to submit. (#730 by @barthap)
  • Handle Apple servers maintenance error in eas submit. (#738 by @barthap)
  • Integrate ASC API Key with submissions workflow. (#737 by @quinlanj)
  • Change EAS API server domain. (#744 by @ide)

🧹 Chores

0.34.1 - 2021-11-02

🐛 Bug fixes

  • Don't show commit prompt in no-commit workflow after installing expo-dev-client. (#722 by @wkozyra95)

🧹 Chores

  • Add App Store Connect API Key graphql type and print support. (#717 by @quinlanj)

0.34.0 - 2021-11-01

🛠 Breaking changes

🐛 Bug fixes

  • Better error message when eas.json is invalid. (#707 by @dsokal)
  • Fix credentials workflow for new users: add additionalTypenames for credentials. (#703 by @quinlanj)

🧹 Chores

0.33.1 - 2021-10-22

🎉 New features

  • Compute runtime version using config-plugins. (#697 by @jkhales)

🐛 Bug fixes

  • [eas-cli] Skip validating updates scripts integration, which no longer exist in SDK 43+ (#706 by @brentvatne)

0.33.0 - 2021-10-20

🎉 New features

  • Make "production" the default profile for building and submitting. (#677 by @jonsamp)
    • Previously, the default profile when running eas build or eas submit was "release". We're changing it to a more recognizable name that is consistent with our docs, which is now "production". You can always specify a profile manually with the --profile flag. For this major version, if you do not have a profile named "production", and still have a profile named "release", we will fall back to the "release" profile as the default, however you'll see a warning as we're going to remove that behavior in the next major release of EAS CLI.
    • To upgrade, update eas.json to have a "production" profile in both the build and submit objects. If you already have a project set up, this will replace the existing "release" profile. After the change, eas.json should have the following profiles:
        {
          "build": {
            "production": { ... }
          },
          "submit": {
            "production": { ... }
          }
        }

🐛 Bug fixes

  • Skip the second prompt for Apple ID if the user is already signed in with Apple. (#691 by @dsokal)
  • Unify reading app.json. (#692 by @dsokal)

0.32.0 - 2021-10-15

🎉 New features

  • Add App Store Connect API Key support to iOS submissions. (#678 by @quinlanj)
  • Create/list/revoke App Store Connect Api keys via Apple apis. (#687 by @quinlanj)
  • Add ability to select a build from a list in eas submit interactive mode. (#688 by @barthap)

🐛 Bug fixes

  • Fix printing App Store Connect URL after submission. (#683 by @brentvatne)

🧹 Chores

  • Add App Store Connect API Key fields to eas.json. (#684 by @quinlanj)
  • Enable no-underscore-dangle eslint rule. (#686 by @dsokal)

0.31.1 - 2021-10-08

🐛 Bug fixes

  • Google Service Account Keys: Fix non-interactive bug in credentials service workflow (#682 by @quinlanj)

0.31.0 - 2021-10-08

🛠 Breaking changes

  • Don't resolve the iOS builder image on the client side. EAS Build will use the appropriate iOS image for a given Expo SDK version unless the image is defined. This only applies to managed projects. (#675 by @wkozyra95, @dsokal)

🎉 New features

  • Integrate credentials service with Android submissions. (#664 by @quinlanj)
  • Add option to review ad-hoc devices when reusing provisioning profile. (#673 by @dsokal)

0.30.1 - 2021-10-06

🐛 Bug fixes

  • Fix --json flag when running EAS CLI on GitHub actions. (#669 by @dsokal)
  • Fix "ios: mods.ios.infoPlist: Failed to find Info.plist linked to Xcode project." warning when running eas build in a managed project. (#670 by @brentvatne)
  • Fix building monorepo projects on Windows. (#671 by @dsokal)

0.30.0 - 2021-10-05

🛠 Breaking changes

🧹 Chores

  • Ports detection for Google Service Account Keys into the credentials service. (#660 by @quinlanj)
  • Improve iOS credentials printing. (#657 by @quinlanj)
  • Automate eas-cli releases. (#668 by @dsokal)

0.29.1 - 2021-09-29

🎉 New features

  • More upload support for Google Service Account Keys. (#649 by @quinlanj)
  • Allow the user to assign an existing Google Service Account Key to their project. (#650 by @quinlanj)
  • Allow the user to remove a Google Service Account Key from their account. (#658 by @quinlanj)
  • Adds setup support for Google Service Account Keys. (#659 by @quinlanj)

🐛 Bug fixes

  • Fix double prompt for Apple credentials when running eas build --auto-submit. (#654 by @dsokal)

🧹 Chores

0.29.0 - 2021-09-28

🎉 New features

🐛 Bug fixes

  • Credentials manager: stop prompting for an Android build profile every iteration. (#641 by @quinlanj)
  • Don't display prompt in non-interactive mode when the metro config seems invalid. (#644 by @dsokal)
  • Read versions from correct Info.plist. (#635 by @wkozyra95)

🧹 Chores

  • Move away from weird convention of exports. (#647 by @quinlanj)

0.28.2 - 2021-09-23

🐛 Bug fixes

  • Use log-symbols to unify green ticks style. (#639 by @dsokal)
  • Fix eas build --auto-submit in fresh projects. (#640 by @dsokal)

0.28.1 - 2021-09-22

🐛 Bug fixes

  • Prevent ora spinners breaking when debug logs are enabled. (#575 by @EvanBacon)
  • Do not fail eas build when transient network errors occur. (#638 by @dsokal)

🧹 Chores

  • Add GraphQL support for GoogleServiceAccountKey. (#632 by @quinlanj)
  • Remove GraphQL support for the App Specific Password. (#633 by @quinlanj)

0.28.0 - 2021-09-20

🎉 New features

  • Use envs from build profile to resolve app config when auto-submitting. (#614 by @dsokal)
  • Support multi flavor Android projects. (#595 by @wkozyra95)
  • Improve experience when using the build details page as a build artifact URL in eas submit. (#620 by @dsokal)
  • Better error message when eas.json is invalid JSON. (#618 by @dsokal)
  • Add warning about the legacy build service IDs in eas submit. (#624 by @dsokal)
  • Validate that project includes expo-dev-client when building with developmentClient flag. (#627 by @dsokal)
  • Better experience when not logged in in non-interactive mode. (#628 by @dsokal)

🧹 Chores

  • Reduce eas-cli size by almost getting rid of lodash from dependencies. (#605 by @dsokal)
  • Enforce explicit return type in all functions. (#619 by @wkozyra95)
  • Enforce Async suffix for async functions. (#623 by @dsokal)

0.27.1 - 2021-09-10

🐛 Bug fixes

  • Fixed force-creation, app secret creation, and secret deletion mutations. (#606 by @fiberjw)

0.27.0 - 2021-09-10

🎉 New features

  • Implement support for --platform all in eas submit. (#598 by @dsokal)
  • Implement support for --non-interactive in eas submit. (#600 by @dsokal)
  • Add auto-submit feature. Run eas build --auto-submit to submit automatically on build complete. (#603 by @dsokal)
  • Allow using env var for android.serviceAccountKeyPath in submit profiles. (#604 by @dsokal)

🐛 Bug fixes

0.26.0 - 2021-09-08

🛠 Breaking changes

🎉 New features

🐛 Bug fixes

  • Fix eas build from throwing an exception when detecting the git core.ignorecase setting. (#592 by @mwillbanks)
  • Support app names that consist only of unicode characters. (#596 by @wkozyra95)

0.25.0 - 2021-09-01

🛠 Breaking changes

🎉 New features

  • Support --no-wait in eas submit. (#578 by @dsokal)
  • Detect changes when core.ignorecase is set to true. (#570 by @wkozyra95)

🐛 Bug fixes

  • Fix wrong warning for metro.config.js check on Windows. (#588 by @louisgv)
  • Fix detecting googleServicesFile with EAS_NO_VCS=1. (#583 by @wkozyra95)

🧹 Chores

  • Replace @hapi/joi with joi. Upgrade typescript to 4.4.2. Upgrade dependencies. (#582 by @dsokal)
  • Change typescript target from ES2017 to ES2019. (#584 by @dsokal)
  • Use ts-jest instead of babel-jest. (#585 by @dsokal)

0.24.1 - 2021-08-25

🐛 Bug fixes

  • Fix wrong EasJsonReader import causing eas submit to fail. (951ee by @dsokal)

0.24.0 - 2021-08-25

🛠 Breaking changes

  • Allow publishing of multiple update groups. (#566 by @jkhales)

🎉 New features

🐛 Bug fixes

  • Fix --sku flag being ignored when running eas submit -p ios. (#559 by @barthap)
  • Set correct distribution for simulator builds. (#556 by @wkozyra95)

🧹 Chores

  • Add warnings around common issues (NODE_ENV=production, git ignored googleServicesFile). (#569 by @wkozyra95)

0.23.0 - 2021-08-05

🛠 Breaking changes

  • Stop including deprecated storageBucket field when publishing. (#547 by @jkhales)

🐛 Bug fixes

  • Pass through metadata context to app version resolver. (#550 by @brentvatne)

0.22.4 - 2021-08-02

🐛 Bug fixes

  • Fix build profile schema validation when simulator key is present for iOS. (#546 by @sallar)

0.22.2 - 2021-08-02

🛠 Breaking changes

  • Introduce new format of eas.json (old eas.json will be migrated automatically). (#537 by @wkozyra95)

🎉 New features

  • Validate metro config for managed workflow projects. (#534 by @dsokal)
  • Add more filter params to build:list. (#540 by @dsokal)
  • Evaluate interpolated iOS version strings for metadata. (#541 by @dsokal)

🐛 Bug fixes

  • Validate metadata client side to print better errors. (#542 by @wkozyra95)
  • Fix new build status when building both paltforms. (#543 by @wkozyra95)
  • Fix link to build details page where previously we used project.name instead of project.slug - leave out project segment entirely and depend on redirect. (#554 by @brentvatne)

0.22.1 - 2021-07-28

🎉 New features

  • Include the file extension for update's assets in the manifest fragment. (#535 by @jkhales)
  • Use env variables from eas.json when evaluating app.config.js. (#532 by @dsokal)

🐛 Bug fixes

🧹 Chores

0.22.0 - 2021-07-23

🎉 New features

  • Added support for automatically creating and linking iOS capability identifiers (Apple Pay, iCloud Containers, App Groups). (#524 by @EvanBacon)
  • Add secret:create --force command to overwrite existing secrets. (#513 by @bycedric)
  • Fall back to APK when building for internal distribution. (#527 by @dsokal)
  • Add iosEnterpriseProvisioning to build metadata. (#522 by @dsokal)
  • Autodetect Google Services JSON key path in eas submit -p android. (#520 by @barthap)

🐛 Bug fixes

  • Fix iOS capability syncing on build. (#521 by @EvanBacon)
  • Fix unhandled error when amplitude domains are blocked. (#512 by @wkozyra95)
  • Use default value for appBuildVersion in build metadata when building an Android managed project. (#526 by @dsokal)

0.21.0 - 2021-07-12

🎉 New features

  • Add project:* commands. (#500 by @jkhales)
  • Added support for iOS 15 capabilities: Communication Notifications, Time Sensitive Notifications, Group Activities, and Family Controls. (#499 by @EvanBacon)
  • Show more build metadata in build:view and build:list. (#504, #508 by @dsokal)
  • Add runtime version to build metadata. (#493 by @dsokal)

0.20.0 - 2021-07-09

🛠 Breaking changes

  • Unifify generic and managed workflow, deprecate workflow field. (#497 by @wkozyra95)

🐛 Bug fixes

  • Fix runtime version checks. (#495 by @dsokal)
  • Resolve --android-package correctly in eas submit command. (#494 by @wkozyra95)

0.19.1 - 2021-07-02

🎉 New features

  • Improve project workflow detection (fixes the case where the android and/or ios directories are git-ignored). (#490 by @dsokal)
  • Improve credentials workflow with project creation and current working directories (#491 by @quinlanj)

🐛 Bug fixes

0.19.0 - 2021-07-01

🎉 New features

  • Auto-suggest application id and bundle identifier when running eas build:configure for a managed project. (#487 by @dsokal)
  • Support configuring one platform at a time when running eas build. (#483 by @brentvatne)

0.18.3 - 2021-06-28

🎉 New features

  • Support bundle identifiers that begin with .. (#459 by @EvanBacon)
  • Push Key setup integrated with ios build command (#473 by @quinlanj)

🐛 Bug fixes

0.18.2 - 2021-06-25

🎉 New features

  • Change default iOS image for projects with Expo SDK <= 41 (SDK 41 won't build with Xcode 12.5). (#479 by @dsokal)
  • Make Apple team optional in appropriate cases. (#468 by @quinlanj)
  • Show projects that depend on a push key. (#472 by @quinlanj)

🐛 Bug fixes

  • Fix inverted conditional so we actually only prompt about commit when index is dirty. (#481 by @brentvatne)

0.18.1 - 2021-06-24

🎉 New features

  • Add basic printing support for Apple App Specific Password. (#474 by @quinlanj)

🐛 Bug fixes

  • Fix CLI UI getting blocked on credentials migration, leading to partially migrated state. (#477 by @brentvatne)

0.18.0 - 2021-06-24

🛠 Breaking changes

  • Drop support for experimental.npmToken in credentials.json, EAS Secrets can be used instead. (#444 by @dsokal)
  • Remove --allow-experimental flag from eas build:configure as it has no effect now. (#444 by @dsokal)

🎉 New features

  • Make credentials manager work with multi-target iOS projects. (#441 by @dsokal)
  • Copy over credentials from Expo Classic to EAS. (#445 by @quinlanj)
  • Add Big Sur image for iOS builds. (#457 by @wkozyra95)
  • New version of Android credentials manager. (#460 by @quinlanj)
  • Add an internal distribution with dev client to build:configure defaults. (#465 by @fson)
  • Add updates.channel to build metadata. (#461 by @jkhales)
  • iOS push key setup and management now available in eas-cli credentials. (#469, #470 by @quinlanj)
  • Support new build status: new. (#475 by @dsokal)

🧹 Chores

0.17.0 - 2021-06-02

🐛 Bug fixes

  • Fix bundle identifier resolution when native target is not provided. (#434 by @dsokal)
  • Fix git repo root path getter on Windows. (#429 by @brentvatne)
  • Fix resolving Android application identifier. (#431 by @quinlanj)

🧹 Chores

  • Android credentials setup now on Graphql API. (#427 by @quinlanj)

0.16.0 - 2021-05-26

🎉 New features

  • Opt out of capability syncing with EXPO_NO_CAPABILITY_SYNC=1. (#426 by @brentvatne)
  • Add more verbose logging around capability syncing to help debug reported issues. (#426 by @brentvatne)
  • Add managed credentials support for multi-target iOS projects. (#414 by @dsokal)

0.15.1 - 2021-05-25

🎉 New features

  • Support auto capabilities in managed workflow using Expo config plugin introspection. (#419 by @EvanBacon)

🐛 Bug fixes

  • Fix sending appBuildVersion as part of the build metadata. (#423 by @dsokal)

0.15.0 - 2021-05-20

🛠 Breaking changes

  • Remove "Auto" option for schemeBuildConfiguration and make the old "Auto" behaviour the default. (#394 by @randomhajile)
  • Remove experimental.disableIosBundleIdentifierValidation flag from eas.json. (#407 by @dsokal)
  • Deprecate android.package and ios.bundleIdentifier in app config for generic projects. EAS CLI depends on the values in native code now. (#407 by @dsokal)
  • Remove application id synchronization (android.package and ios.bundleIdentifier) between app.json and native code when running builds. (#407 by @dsokal)

🎉 New features

🐛 Bug fixes

  • Fix failure when publishing without the platform flag. (#415 by @jkhales)
  • Pin versions in package.json. (#399 by @dsokal)
    • Revert 0ac2f as the root cause of the issue has been fixed in #399.
  • Include development-client in valid buildType for internal distribution. (#410 by @brentvatne)

0.14.1 - 2021-05-11

🐛 Bug fixes

  • Make the default urql requestPolicy 'network-only'. (#397 by @jkhales)

0.14.0 - 2021-05-10

🛠 Breaking changes

  • Make eas branch:publish work with expo-cli >= 4.4.3 (#366 by @jkhales)
  • Create asset keys without an extension. (#366 by @jkhales)

🎉 New features

🧹 Chores

0.13.0 - 2021-04-22

🎉 New features

  • Implement offline distribution certificate validation when running a build in non-interactive mode. (#344 by @dsokal)
  • Add support for building internal distribution apps for Apple Enterprise Teams. (#344 by @dsokal)

🐛 Bug fixes

  • Display descriptive error message when API for EAS Build changes. (#359 by @wkozyra95)

0.12.0 - 2021-04-22

🎉 New features

  • Add the initiating user's username to the build metadata. (#354 by @dsokal)
  • Add --clear-cache flag for eas build. (#355 by @wkozyra95)

🐛 Bug fixes

  • Fix the bug where the account name was used as the username. (#354 by @dsokal)

0.11.1 - 2021-04-20

🎉 New features

🐛 Bug fixes

  • Bump version of @expo/apple-utils to fix capabilities sync immediately after initial identifier registration. (593c4 by @brentvatne)

0.11.0 - 2021-04-20

🛠 Breaking changes

  • "credentialsSource": "auto" is now deprecated. The option will use "remote" as the default value. (#345 by @dsokal)

🎉 New features

  • Add validation when setting up ad-hoc provisioning profile in non-interactive mode. (#338 by @dsokal)
  • Allow for registering devices when running an ad-hoc build for the first time. (#340 by @dsokal)

🐛 Bug fixes

  • Fix the bug where all Android managed builds produced AAB archives. The buildType property from eas.json is not ignored now. (#349 by @dsokal)

0.10.0 - 2021-04-16

🛠 Breaking changes

  • secrets:<COMMAND> is renamed to secret:<COMMAND> (#315 by @fiberjw)
  • secret:delete now accepts id through a flag rather than an argument (#315 by @fiberjw)

🎉 New features

  • Use special Expo SDK runtime version for managed projects (#336 by @wschurman)

🐛 Bug fixes

  • Fix the behavior where the provisioning profile was invalidated after syncing bundle id capabilities. (#334 by @dsokal)

🧹 Chores

  • Change build credentials summary format. (#321 by @dsokal)

0.9.1 - 2021-04-09

🐛 Bug fixes

  • Fix provisioning profile validation to actually check status. (#318 by @quinlanj)

🧹 Chores

0.9.0 - 2021-04-09

🎉 New features

  • Retry graphQL call on network or transient server errors. (#320 by @jkhales)
  • Display more friendly error messages when eas submit fails. (#311 by @barthap)
  • Add support for managing webhooks (new commands: webhook:create, webhook:view, webhook:list, webhook:update, and webhook:delete). (#314 by @dsokal)
  • Support for local builds [experimental]. (#305 by @wkozyra95)

🐛 Bug fixes

  • Fix the issue where the first iOS build fails for a project without ios.bundleIdentifier set in app.json. (#319 by @dsokal)
  • Bump @expo/config-plugins to fix eas build:configure on Windows. (d0f3e by @brentvatne)
  • Replace REST API calls with GraphQL counterparts. (#333 by @barthap)

0.8.1 - 2021-04-06

🐛 Bug fixes

  • Fix the issue where the build status never got updated when running eas build. (#310 by @dsokal)

0.8.0 - 2021-04-06

🛠 Breaking changes

  • Change the way of disabling cache - add cache.disabled field. (#295 by @dsokal)
  • secrets:create now uses flags rather than positional arguments (#300 by @fiberjw)
  • secrets:create's target arg is now called scope (#300 by @fiberjw)
  • secrets:list's target property is now called scope (#300 by @fiberjw)
  • secrets:delete's ID arg is now optional (#309 by @fiberjw)
  • secrets:delete's now allows users to choose secrets from a list (#309 by @fiberjw)

🎉 New features

  • build:view and build:list now showing the distribution type (store / internal) and release channel. (#284 by @vthibault)
  • Add analytics to EAS Build. (#162 by @wkozyra95)
  • Improve tar archive support in EAS Submit. (#297 by @barthap)

🐛 Bug fixes

  • Fix environment secret creation prompt. (#298 by @fiberjw)

🧹 Chores

0.7.0 - 2021-03-22

🎉 New features

  • Print common error messages when builds fail. (#272 by @dsokal)
  • Commit automatically if EAS_BUILD_AUTOCOMMIT is set. (#271 by @wkozyra95)
  • Allow for installing custom bundler version on EAS Build. (#277 by @dsokal)
  • Add support for managing environment secrets. (#275 by @fiberjw)

🐛 Bug fixes

  • Fix eas submit local archive prompt for .aab files when submitting for iOS. (#273 by @barthap)
  • Verify whether "name" field in app.json contains any alphanumeric characters. (#280 by @wkozyra95)
  • Detect dependency cycles in eas.json build profiles. (#283 by @wkozyra95)

0.6.0 - 2021-03-09

🛠 Breaking changes

  • Generic iOS projects: build release builds by default. (#266 by @dsokal)

🎉 New features

  • Log the size of the archived project when uploading. (#264 by @wkozyra95)
  • Add more build metadata (release channel, build profile name, git commit hash). (#265 by @dsokal)
  • Display App Store link after successful submission. (#144 by @barthap)
  • Add experimental.disableIosBundleIdentifierValidation flag to eas.json. (#263 by @wkozyra95)
  • Support internal distribution in non-interactive builds. (#269 by @dsokal)

🐛 Bug fixes

  • Print Apple Team ID in the output of device:list when the team name is unknown. (#268 by @wkozyra95)

0.5.0 - 2021-03-02

🎉 New features

  • Add support for build cache. (#247 by @wkozyra95)
  • Enable internal distribution support for self-managed credentials. (#256 by @dsokal)

🐛 Bug fixes

🧹 Chores

  • Upgrade @expo/eas-build-job from 0.2.12 to 0.2.13. (#245 by @dsokal)

0.4.3 - 2021-02-23

🎉 New features

  • Add support for iOS simulator builds. (#240 by @dsokal)

🐛 Bug fixes

0.4.2 - 2021-02-18

🐛 Bug fixes

  • Fix detecting application target (iOS builds). (#238 by @dsokal)

0.4.1 - 2021-02-16

🐛 Bug fixes

0.4.0 - 2021-02-16

🎉 New features

  • Add build:cancel command. (#219 by @wkozyra95)
  • Implement version auto increment for iOS builds. (#231 by @dsokal)
  • Add support for builder environment customizations. (#230 by @wkozyra95)
  • Add schemeBuildConfiguration option for generic iOS builds. (#234 by @dsokal)

🐛 Bug fixes