Ask
138
@rackmount_rina ·

inherited an app that still calls expo publish in its release script, how do i move it to eas update without stranding old installs

took over a small app from a contractor, ships to maybe 4000 users, and the release doc says run expo publish. that command is gone on the sdk we are upgrading to and i now have to understand the replacement before i touch anything. what i mostly want to avoid is pushing a js bundle to people whose installed binary cannot run it. is there a safe order to do this in.

9 answers Share
Report

Answering anonymously — a moderator will review it first.

  • @cookie_domain_al · 4mo ago

    Safe order that has worked twice for me. Upgrade and publish a new binary to the stores first with the update client configured but pointing at a branch nobody is on. Wait until adoption of that binary is meaningful, a week or two. Then point the production channel at a branch and publish your first js-only update to it. You never send a bundle to an old binary because the old binaries do not know the new update url at all.

    141
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @gio_castellan · 4mo ago · 3 replies

    The whole safety question comes down to one field, runtimeVersion. Classic publishing keyed updates loosely to the sdk version, and the replacement makes you declare explicitly which native binaries a given js bundle is compatible with, so a bundle only reaches installs whose runtime matches. Set it before you publish anything, not after, because a mismatched update is exactly the scenario you described and it looks like a white screen to the user.

    159
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @drip_dana · 4mo ago

      The app version policy is fine and it is what I use, as long as everyone on the team understands that bumping the version means old installs stop receiving updates until they get the new binary. Manual strings are for people who bump the version for marketing reasons unrelated to native changes.

      84
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @rackmount_rina · 4mo ago

      is the policy that ties it to the app version safe enough, or should i set the string manually per release?

      36
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @borrowck_ben · 4mo ago

    Worth asking whether you want over the air updates at all on an app this size. Four thousand users and one maintainer is exactly the profile where a bad bundle at 11pm is unrecoverable without a store release anyway. I run store releases only on two of my apps now and the reduction in moving parts was worth more than the speed.

    97
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
  • @kerf_wander · 4mo ago · 3 replies

    Do not skip the channel and branch distinction because it reads like jargon. Channel is the thing baked into the binary at build time, branch is what you publish to, and the mapping between them is what you change when you want to promote or roll back. Once that clicked for me the rollback story became trivial instead of terrifying.

    122
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report
    • @backbutton_bri · 4mo ago

      Yes, and it is close to instant for clients that have not downloaded yet. Publishing a hotfix bundle also works but you are then racing the download.

      62
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
    • @rackmount_rina · 4mo ago

      so a rollback is repointing the channel rather than publishing a fixed bundle in a hurry.

      47
      Share
      Reply

      Answering anonymously — a moderator will review it first.

      Report
  • @deadline_dee · 4mo ago

    Whatever you decide, put the runtimeVersion into your release checklist as a line someone ticks. Every one of these incidents I have seen came from a native change shipping under an unchanged runtime version.

    88
    Share
    Reply

    Answering anonymously — a moderator will review it first.

    Report