Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[EAS Update] Documentation is not clear enough #1899

Closed
ildaneta opened this issue Jun 26, 2023 · 3 comments
Closed

[EAS Update] Documentation is not clear enough #1899

ildaneta opened this issue Jun 26, 2023 · 3 comments
Assignees
Labels
eas update needs review Issue is ready to be reviewed by a maintainer

Comments

@ildaneta
Copy link

ildaneta commented Jun 26, 2023

Summary

The first point is about the inclusion of the runTimeVersion value within the app.config.ts file, which in the documentation does not specify that you can only include policy if the project is managed, because I was having an error because my project was bare and I was only able to solve it later to do as follows:

runtimeVersion: "exposdk:47.0.0",

Described in this issue that is open and where other people are going through the same situation.
#1689

The error it gave me was:

Runtime version policies are only supported in the managed workflow. In the bare workflow, runtime version needs to be set manually.

However, my main doubt in this issue is about how EAS Update works in an OTA sense. I've already used Microsoft's code push with React Native and for me the operation was clear, that is, I published an interface update, ran the command, the publication was available on their website and when I closed my application in production, or generate a build with variant release on my device and opening it again, it already showed the update.

But how does it work with EAS Update? Is it exactly the same?
I've read the documentation a few times, in addition to having already done the whole process of configuring builds, configuring the eas update and performing an update, but this part of the update being available was not clear to me.

For example, I published an update with the EAS Update for my production branch, from that moment on, will my users who already have the settings that I made in the eas update have these updates automatically? (when closing and opening the phone again)

Managed or bare?

Bare

Environment

expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 12.5.1
      Shell: 5.8.1 - /bin/zsh
    Binaries:
      Node: 14.20.1 - ~/.nvm/versions/node/v14.20.1/bin/node
      Yarn: 1.22.19 - ~/.nvm/versions/node/v14.20.1/bin/yarn
      npm: 9.7.1 - ~/.nvm/versions/node/v14.20.1/bin/npm
      Watchman: 2022.10.10.00 - /usr/local/bin/watchman
    Managers:
      CocoaPods: 1.11.3 - /usr/local/bin/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 22.2, iOS 16.2, macOS 13.1, tvOS 16.1, watchOS 9.1
      Android SDK:
        API Levels: 30, 31, 33
        Build Tools: 29.0.2, 30.0.3, 31.0.0, 33.0.0
        System Images: android-27 | Google APIs ARM 64 v8a, android-28 | Google APIs ARM 64 v8a, android-28 | Google ARM64-V8a Play ARM 64 v8a, android-29 | Google APIs ARM 64 v8a, android-29 | Google Play ARM 64 v8a, android-32 | Google Play ARM 64 v8a, android-33 | Google APIs ARM 64 v8a, android-33 | Google Play ARM 64 v8a
    IDEs:
      Android Studio: 2021.3 AI-213.7172.25.2113.9123335
      Xcode: 14.2/14C18 - /usr/bin/xcodebuild
    npmPackages:
      expo: ~47.0.14 => 47.0.14 
      react: 18.1.0 => 18.1.0 
      react-native: 0.70.8 => 0.70.8 
    npmGlobalPackages:
      eas-cli: 3.13.3
      expo-cli: 6.0.6
    Expo Workflow: bare
npx expo-doctor         
✔ Check package.json for common issues
✔ Validate global prerequisites versions
✔ Validate Expo Config
✔ Check compatible dependency versions for the installed Expo SDK
✔ Check for conflicting global packages in project
✔ Check for incompatible packages
✔ Verify prebuild support package versions are compatible

EAS json

{
  "cli": {
    "version": ">= 3.13.3"
  },
  "build": {
    "development": {
      "distribution": "internal",
      "android": {
        "gradleCommand": ":app:assembleDebug"
      },
      "ios": {
        "buildConfiguration": "Debug"
      },
      "channel": "development"
    },
    "preview": {
      "distribution": "internal",
      "channel": "preview"
    },
    "production": {
      "channel": "production"
    }
  },
  "submit": {
    "production": {}
  }
}

Error output

No response

Reproducible demo or steps to reproduce from a blank project

  1. Create a new project with expo
  2. Has the following dependencies:
    "@expo-google-fonts/inter": "^0.2.3",
    "@react-native-async-storage/async-storage": "~1.17.3",
    "@react-navigation/bottom-tabs": "^6.5.7",
    "@react-navigation/native": "^6.1.6",
    "@react-navigation/native-stack": "^6.9.12",
    "@types/react": "~18.0.24",
    "@types/react-native": "~0.70.6",
    "axios": "^1.3.4",
    "expo": "~47.0.14",
    "expo-device": "~5.0.0",
    "expo-font": "~11.0.1",
    "expo-splash-screen": "~0.17.5",
    "expo-status-bar": "~1.4.2",
    "expo-updates": "~0.15.6",
    "react": "18.1.0",
    "react-native": "0.70.8",
    "react-native-safe-area-context": "4.4.1",
    "react-native-screens": "~3.18.0",
    "react-native-svg": "13.4.0",
    "typescript": "^4.6.3"
  },
  1. Has a published production version by the stores
  2. Create a update with eas
    eas update --branch production --message "Fixed a bug."
@ildaneta ildaneta added the needs review Issue is ready to be reviewed by a maintainer label Jun 26, 2023
@quinlanj quinlanj self-assigned this Jun 29, 2023
@quinlanj
Copy link
Member

hey @ildaneta , thanks for the helpful feedback. Regarding the runtimeVersion error, I've opened a PR to fix it, you can track it at #1910

How does it work with EAS Update? Is it exactly the same?

By default, expo-updates checks for updates every time the app is loaded, which means the update will be applied when the user restarts their app. If this is not suitable for your usecase, you can implement a custom update strategy with the Updates API and app config.

For example, I published an update with the EAS Update for my production branch, from that moment on, will my users who already have the settings that I made in the eas update have these updates automatically? (when closing and opening the phone again)

Yes, this is correct.

To visualize which updates your users will receive, if you've built your app with our EAS Build service, you can see which updates your build is supposed to receive in the Deployments page. If you've built your app yourself, you can also check out the Channels, Branches and Updates pages to visualize the updates you've published against the builds you've made.

@ildaneta
Copy link
Author

ildaneta commented Jul 2, 2023

Thank you @quinlanj for all your explanation and attention.

@ildaneta ildaneta closed this as completed Jul 2, 2023
@ollyde
Copy link

ollyde commented Jan 6, 2025

I know this is an old thread, but I cannot get this to work no matter what I do. I get this message.

Screenshot 2025-01-06 at 10 51 17

Tried probably 30-40 configurations now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
eas update needs review Issue is ready to be reviewed by a maintainer
Projects
None yet
Development

No branches or pull requests

3 participants