expoeas

Can I upload an Expo Dev Client to testflight?


I am trying to upload an expo-devclient using the development-testflight build profile (and I also tried EAS submit)

{
  "cli": {
    "version": ">= 5.9.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "development-simulator": {
      "developmentClient": true,
      "distribution": "internal",
      "ios": {
        "simulator": true
      }
    },
    "development-testflight": {
      "developmentClient": true
    },
    "preview": {
      "distribution": "internal"
    },
    "production": {}
  },
  "submit": {
    "production": {},
    "development-testflight": {},
  }
}

But it fails without any error on the Transporter app.

When using EAS submit I get this error eas submit ios fails with Asset validation failed The app references non-public selectors in Payload (the question I linked is because someone was trying to upload a devclient as the produciton build inadvertently, but in my case I am intending to upload the devclient)

I am trying to do this to simplify the distribution of the customized dev client for the developers so we don't have to register devices.


Solution

  • This will be possible in Expo SDK 53. Set the following eas.json:

    
    {
      "cli": {
        "version": ">= 16.0.1",
        "appVersionSource": "remote"
      },
      "build": {
        "production": {
          "autoIncrement": true
        },
        "development": {
          "autoIncrement": true,
          "developmentClient": true
        }
      },
      "submit": {
        "production": {},
        "development": {}
      }
    }
    

    Then run eas build -p ios --profile development --submit

    You'll get an email from TestFlight when the build is ready to be downloaded, when you launch the app it will open to the expo-dev-client UI.