[Expo Client App] [SDK 27] Deep Linking scheme outdated

Deep linking is failing on client app.

Situation

(With newest expo ios client app + SDK v27 app)
(Only tested on ios)

  • Open standalone-scheme:// → my standalone opened
  • Open exp://exp.host/@xxx/xxxx/ → expo client opened → my app loaded
  • Open standalone-scheme://home/login → my standalone opened → navigated to login screen
  • Open exp://exp.host/@xxx/xxxx/home/login → expo client opened → error (as follow)
  • Open exp://exp.host/@xxx/xxxx/+home/login → expo client opened → my app loaded → no navigation (because registered scheme not match)

The error is as follow:

Origin of problem

Before SDK 27, deeplink format is something like scheme://+ for standalone and exp://exp.host/@xxx/xxxx/+ for client app.

As of SDK 27, the format should have been changed into scheme:// and exp://exp.host/@xxx/xxxx/.

But is seems the client app cannot handle it correctly yet.

Hi @carsonwah - starting in SDK 27 the + has been replaced by /--/ in the Expo client only. So if you open exp://exp.host/@xxx/xxxx/--/home/login it should open correctly. (FYI, this would have been the output if you had used Expo.Linking.makeUrl('/home/login') to generate the link.)

Sorry for this change – it was necessary to have some separation between the app slug and the deep link so that the client knows where to find the app. Hope that makes sense!

@esamelson Thanks. It works now.

I am creating the url from my backend so we won’t know this constraint. I beg others will also encounter the same problem. Could you open an issue for improving the document on this?

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.