constants.installationid migration path?

Please provide the following:

  1. SDK Version: 41
  2. Platforms(Android/iOS/web/all): all

While upgrading to Expo SDK 41 I just noticed that constants.installationid got deprecated. I appreciate that it is communicated early and only removed in sdk 44. But still why is the Expo Team deprecating something without providing a easy migration path?

Our application depends on installationIds for device-user connections. Implementing our own installationId solution works but there is no backward-compatible approach.

Only solution that I came up with would be to release an update with such a logic:

  • check if constants.installationId is still available, otherwise generate an own one (for sdk 44 onwards)
  • store that installationId in secure-storage
  • always use installationId from secure-storage

That way for all users from the release until sdk44 the existing constants.installationId is used and saved in store. Afterwards the own implementation is used.

But that kind of feels like a hack. If a user does not log in for a long time and updates later to a version with sdk44 the old installationId was never saved in storage. Also until sdk44 is released there would be warnings for the deprecate usage.
As secure storage persists across installs on iOS I’m also not sure if it can happen that multiple iOS devices end up with the same id?

Am I missing something? Is there a better solution? I think a lot of developers will run into that issue. Unfortunately that deprecation was not communicated that well and I would have expected some clear backward-compatible migration path offered by the expo team.