EAS Building: ignore version checks?

Hi, I am trying to build my app with EAS build (eas build --platform android --local). Expo version 46. With the old tools I was able to make a web version and an Android_apk but would like to move to the updated tool chain.

I am running into issues with the strict version checks in EAS. Some conflicting package version numbers are updated in version 47 but that expo version is not released yet. Some 3rd party packages are not yet updated at all. If I comment out all conflicting packages I can build but lose functionality.

It seems the version checking is stricter than what I need for my development. Is there a way to override the version checks and complete the build even with some warnings? I will worry about the precise versions later or remove some less maintained packages eventually when getting closer to production.

Also, it seems the EAS build is ignoring the following line in the .npmrc file, how would you use EAS against github packages? What is the official way of accessing prerelease versions?

expo:registry=https://npm.pkg.github.com

Thanks for your help,
Johannes

PS. Here are the deps against the prerelease expo version:

  "dependencies": {
    "@babel/preset-env": "^7.20.2",
    "@babel/runtime": "^7.20.1",
    "@react-google-maps/api": "^2.16.0",
    "@react-native-picker/picker": "^2.4.8",
    "@react-navigation/bottom-tabs": "^6.4.0",
    "@react-navigation/material-top-tabs": "^6.3.0",
    "@react-navigation/native": "^6.0.13",
    "@react-navigation/stack": "^6.3.4",
    "@rneui/base": "^4.0.0-rc.7",
    "@shopify/flash-list": "1.3.1",
    "@types/google.maps": "^3.50.5",
    "@types/markerclustererplus": "^2.1.33",
    "expo": "47",
    "expo-barcode-scanner": "~12.0.0",
    "expo-checkbox": "~2.2.2",
    "expo-dev-client": "~2.0.0",
    "expo-linking": "~3.2.3",
    "expo-localization": "~14.0.0",
    "expo-modules-autolinking": "1.0.0",
    "expo-splash-screen": "~0.17.3",
    "expo-status-bar": "~1.4.2",
    "expo-updates": "~0.15.4",
    "i18next": "^22.0.4",
    "react": "18.1.0",
    "react-art": "18.0",
    "react-dom": "18.1.0",
    "react-i18next": "^12.0.0",
    "react-native": "0.70.5",
    "react-native-gesture-handler": "~2.8.0",
    "react-native-maps": "1.3.2",
    "react-native-pager-view": "6.0.1",
    "react-native-safe-area-context": "4.4.1",
    "react-native-screens": "~3.18.0",
    "react-native-svg": "13.4.0",
    "react-native-tab-view": "^3.3.0",
    "react-native-table-component-2": "^2.0.0",
    "react-native-vector-icons": "^9.2.0",
    "react-native-web": "~0.18.7",
    "react-native-webview": "11.23.1",
    "util": "^0.12.5"
  },

Hi @evpp.energy

If you want to try out Expo SDK 47 before it’s released, you can try:

EXPO_BETA=1 expo-cli upgrade

See the SDK 47 Beta blog post for more details.

Could you paste the version check info you’re seeing? Normally there’s an expo doctor step, but that does only warn. It does not prevent the build from proceeding if it detects a problem.

Do you have .npmrc in your .gitignore file? If so, it will not be uploaded to the build server.
You could either remove it from .gitignore or create it on the build servers using a build hook.

See the following:

I see that Expo SDK 47 has now been released.

https://blog.expo.dev/expo-sdk-47-a0f6f5c038af

Thanks, I should have waited one more day before asking as the release came so soon, which was most welcome. Here is some extra FYI.

With the new SDK and a bit of tweaking I was able to build on the expo server but not locally. To solve this I updated the Android studio and everything within it that could be updated clicking around the studio and SDK/NDK. Not sure this had any effect though. Then I ran the
./gradlew :app:assembleRelease
command from the command line in the android directory manually. There I could see that the jlink command was failing as the right JDK version was not installed. For some reason I did not see the error message when running either eas build -p android --local or npx expo run:android
The fix was easy
sudo apt-get install openjdk-11-jdk-headless
In addition I had to set these
export ANDROID_NDK_HOME=~/Android/sdk/ndk/
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/

I also used some commands that maybe were needed maybe not
eas build:configure
expo prebuild --clean
and added some configurations into eas.json
The result was a working apk and working npx:expo run:android

What might have saved some time would have been to have a prebuild step check for all the tools and their versions being there before building giving some clear error messages. Anyway, I just wanted to report this in case it is helpful to anybody else.

Cheers,
Johannes

1 Like

Great :slight_smile: I’m glad you got it working.

I’ve just found out about npx react-native doctor
It’s possible that command would have told you something was wrong, but I’m not sure