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

#1

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.

#2

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!

#3

@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?

closed #4

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