The documentation for EAS Update’s integration with Sentry was recently improved - see Current state of Sentry sourcemap uploading with EAS Update - #2 by kbrandwijk and Using Sentry - Expo Documentation .
In reading the updated docs, I think I’m either confused or there’s some opportunity for clarification/improvement.
Namely, the new docs say the release should be set to (pseudocode) [bundleId]@[version]+[buildId]
. It’s not stated explicitly but I imagine this is intended to be consistent with the native binary that the update will apply against.
My problem understanding this is that OTA update compatibility is based on the runtimeVersion
, not necessarily the version+buildId pair. It’s possible that you could have a number of app store binaries in the wild that have different version codes but share the same native code and thus runtimeVersion
. Specifying the sourcemaps with this pattern would, I think, mean you could leave out a subset of devices’ reports. (Assuming of course that release channels are in play; let’s assume they are all the same in this example.)
So my questions are:
- Would it make more sense to specify a custom release string for Sentry that is equal to the
runtimeVersion
? (That is, set it in the plugin config and use this same value for builds and updates.) This also makes running the sourcemap upload command less difficult to create. - Regarding versioning, there seem to be a few questions over the years (e.g., Expo OTA updates and versions and OTA updates versionCode not increase) pertaining to the correct way to handle versions and updates. In my case, I’m choosing to do something semver-esque and increment major versions when bumping the
runtimeVersion
, and incrementing my version every time I build or push a release. I’m storing the version in an environment file and importing that value intoapp.config.js
for Expo and my runtime code, e.g. for indicating the app version in HTTPuser-agent
strings. I think it might help to make App version management - Expo Documentation clearer on the correctness of version strings after updates are applied.