Android testing not using correct releaseChannel

I’m trying out the bare workflow to add in-app purchases to my app, and I’m just stuck on what I hope is the last hurdle. I’m using eas build --profile staging and uploading the two resulting files to their respective stores. For iOS, the release channel from Updates.releaseChannel is giving me staging, but for Android it’s showing production. This is what I have for my eas.json, perhaps there is a setting I need to change? I’m using “Closed Testing” from the Play Store, if that makes a difference.

{
  "builds": {
    "android": {
      "release": {
        "workflow": "generic",
        "releaseChannel": "production"
      },
      "staging": {
        "workflow": "generic",
        "gradleCommand": ":app:assembleRelease",
        "artifactPath": "android/app/build/outputs/apk/release/app-release.apk",
        "releaseChannel": "staging"
      }
    },
    "ios": {
      "release": {
        "workflow": "generic",
        "releaseChannel": "production"
      },
      "staging": {
        "workflow": "generic",
        "image": "latest",
        "releaseChannel": "staging"
      }
    }
  }
}

And in my AndroidManifest.xml I have added this line:

<meta-data android:name="expo.modules.updates.EXPO_RELEASE_CHANNEL" android:value="staging" />

Not sure what else I can post that is relevant. I think once I can get Android using the right releaseChannel and can push updates with expo publish --release-channel staging (works on iOS) I’ll be golden.

For any futures wanderers, I looked closely at this article https://blog.expo.io/over-the-air-updates-from-expo-are-now-even-easier-to-use-376e2213fabf

My app didn’t use the old version of expo-updates, but I was missing a line of my build.gradle file.

project.ext.react = [
     entryFile: "index.js", <--- this line was missing.
     enableHermes: false
 ]

Not sure how it got into that state, but adding that line made it work properly.

I did get this warning while running expo publish:

  • URL mismatch: No standalone app has been built with SDK 41.0.0 and release channel “staging” for this project before.
    OTA updates only work for native projects that have the same SDK version and release channel. Learn more.

But it still worked.