Skip to content

Commit 17108e2

Browse files
committed
Add instructions for universal links on Expo
1 parent 6360558 commit 17108e2

File tree

1 file changed

+52
-1
lines changed

1 file changed

+52
-1
lines changed

versioned_docs/version-7.x/deep-linking.md

Lines changed: 52 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ function App() {
8181
</TabItem>
8282
</Tabs>
8383

84-
The reason that is necessary to use `Linking.createURL` is that the scheme will differ depending on whether you're in the client app or in a standalone app.
84+
It is necessary to use `Linking.createURL` since the scheme differs between the [Expo Dev Client](https://docs.expo.dev/versions/latest/sdk/dev-client/) and standalone apps.
8585

8686
The scheme specified in `app.json` only applies to standalone apps. In the Expo client app you can deep link using `exp://ADDRESS:PORT/--/` where `ADDRESS` is often `127.0.0.1` and `PORT` is often `19000` - the URL is printed when you run `expo start`. The `Linking.createURL` function abstracts it out so that you don't need to specify them manually.
8787

@@ -93,6 +93,57 @@ const linking = {
9393
};
9494
```
9595

96+
### Universal Links on Expo
97+
98+
To set up iOS universal Links in your Expo app, you need to configure your [app config](https://docs.expo.dev/workflow/configuration) to include the associated domains and entitlements:
99+
100+
```json
101+
{
102+
"expo": {
103+
"ios": {
104+
"associatedDomains": ["applinks:app.example.com"],
105+
"entitlements": {
106+
"com.apple.developer.associated-domains": ["applinks:app.example.com"]
107+
}
108+
}
109+
}
110+
}
111+
```
112+
113+
You will also need to setup [Associated Domains](https://developer.apple.com/documentation/Xcode/supporting-associated-domains) on your server.
114+
115+
See [Expo's documentation on iOS Universal Links](https://docs.expo.dev/linking/ios-universal-links/) for more details.
116+
117+
### App Links on Expo
118+
119+
To set up Android App Links in your Expo app, you need to configure your [app config](https://docs.expo.dev/workflow/configuration) to include the `intentFilters`:
120+
121+
```json
122+
{
123+
"expo": {
124+
"android": {
125+
"intentFilters": [
126+
{
127+
"action": "VIEW",
128+
"autoVerify": true,
129+
"data": [
130+
{
131+
"scheme": "https",
132+
"host": "app.example.com"
133+
}
134+
],
135+
"category": ["BROWSABLE", "DEFAULT"]
136+
}
137+
]
138+
}
139+
}
140+
}
141+
```
142+
143+
You will also need to [declare the association](https://developer.android.com/training/app-links/verify-android-applinks#web-assoc) between your website and your intent filters by hosting a Digital Asset Links JSON file.
144+
145+
See [Expo's documentation on Android App Links](https://docs.expo.dev/linking/android-app-links/) for more details.
146+
96147
## Set up with bare React Native projects
97148

98149
### Setup on iOS

0 commit comments

Comments
 (0)