0

I have an expo-managed app with native packages that runs fine on my simulator with npx expo run:ios. I can also run it on my physical device with npx expo run:ios --device

However, when I try to use eas build --profile development --platform ios, although the build is finished successfully, upon scanning the QR code with my iPhone, I get this error:

No bundle URL present.

Make sure you're running a packager server or have included a .jsbundle file in your application bundle.

enter image description here

My eas.json:

{
  "cli": {
    "version": ">= 3.17.0"
  },
  "build": {
    "development": {
      "distribution": "internal",
      "android": {
        "gradleCommand": ":app:assembleDebug"
      },
      "ios": {
        "buildConfiguration": "Debug"
      },
      "env": {
        "BE_BASE_URL": "https://api.sotravel.me"
      }
    },
    "preview": {
      "distribution": "internal"
    },
    "production": {
      "env": {
        "BE_BASE_URL": "https://api.sotravel.me"
      }
    }
  },
  "submit": {
    "production": {}
  }
}
Nathan Tew
  • 432
  • 1
  • 5
  • 21

1 Answers1

0

I eventually fixed this by adding "distribution": "internal", to my eas.json after seeing this page on the Expo docs:

{
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "preview": {
      "distribution": "internal"
    },
    "production": {}
  }
}

With this option set to true, the EAS CLI then prompted me to install expo-dev-client. Although it's equivalent to the fields:

      "android": {
        "gradleCommand": ":app:assembleDebug"
      },
      "ios": {
        "buildConfiguration": "Debug"
      },

... those didn't prompt me to install expo-dev-client, which was apparently necessary to run the development build. And those were the auto-generated configs from eas build:configure. Hm....

Nathan Tew
  • 432
  • 1
  • 5
  • 21