Ce guide de migration se concentre sur l'utilisation d'App Links et d'Universal Links , en utilisant éventuellement Firebase Hosting pour héberger vos fichiers d'association application-site.
Cette migration remplace les fonctionnalités Firebase Dynamic Links suivantes :
Fonctionnalité | Liens dynamiques Firebase | Liens d'application/liens universels |
---|---|---|
Dirigez les utilisateurs vers le magasin approprié pour leur appareil à partir d'un simple clic sur un lien | ★ | |
Offrez aux utilisateurs la poursuite du parcours après le téléchargement et l'installation de votre application à l'aide d'un lien profond différé | ★ | |
Offrez aux utilisateurs une expérience contextuelle en utilisant le contenu à liens profonds dans votre application (lorsqu'elle est déjà installée) | ||
Fournir des données analytiques liées aux événements de clic sur un lien dynamique | ||
Offrir la possibilité de créer des URL de liens courts |
Si vous continuez à avoir besoin d'autres fonctionnalités Firebase Dynamic Link pour votre migration qui ne sont pas prises en charge dans ce guide, consultez d'autres scénarios de migration dans la documentation FAQ sur la dépréciation de Dynamic Links .
Supposons que vous disposiez d'un lien dynamique Firebase qui ressemble à ceci :
Exemple de lien dynamique | |
---|---|
Nom du lien | Bienvenue sur Exemple.com |
Lien profond | https://example.web.app/welcome |
Application Android | com.example.android |
Application Apple | com.example.ios |
Lien dynamique long | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Lien dynamique court | https://example.page.link/m9Mm |
L'objectif de ce guide de migration est de remplacer les liens dynamiques Firebase comme ceci :
https://example.page.link/m9Mm
Avec des liens profonds App Link / Universal Link qui ressemblent à ceci :
https:// your-project-domain .web.app/welcome
Notez que le lien profond App Link/Universal Link fournira les éléments suivants à vos utilisateurs :
- Un lien profond sur lequel ils peuvent cliquer et qui ouvrira votre application une fois déjà installée
- Une suite de leur parcours utilisateur en les dirigeant vers une partie spécifique de votre application lors de son ouverture
Cependant, le lien profond App Link/Universal Link ne fournira pas les comportements suivants à vos utilisateurs (ce que Firebase Dynamic Links faisait auparavant) :
- Diriger les utilisateurs vers le magasin approprié pour leur appareil afin de télécharger et d'installer votre application
- Assurer la poursuite du parcours utilisateur après le téléchargement, l'installation et la première ouverture de l'application
Notez les différences de comportement et de fonctionnalité de ces App Links/Universal Links par rapport aux Firebase Dynamic Links mentionnées dans le tableau ci-dessus.
Avant que tu commences
Firebase Dynamic Links utilise App Links (sur Android) et Universal Links (sur iOS) dans sa propre implémentation sous-jacente afin de fournir une fonctionnalité de liens profonds une fois votre application déjà installée.
Ce guide explique comment créer vos propres App Links et Universal Links à l'aide de Firebase Hosting pour remplacer la partie des fonctionnalités fournies par Firebase Dynamic Links lors de la migration de vos Firebase Dynamic Links vers la nouvelle solution de migration App Links / Universal Links.
Vous aurez besoin des informations suivantes pour terminer votre migration :
- Les liens dynamiques Firebase que vous souhaitez migrer
- Les paramètres d'URL de liens profonds inclus dans vos liens dynamiques
- Le domaine que vous prévoyez d'utiliser pour remplacer votre ancien domaine Firebase Dynamic Links (le cas échéant)
Vous pouvez utiliser le guide Exporter les métadonnées de liens dynamiques pour exporter vos métadonnées de lien existantes et obtenir les informations répertoriées ci-dessus.
Présentation des étapes de migration
Provisionnez un nouveau domaine (si vous n'en avez pas déjà un que vous souhaitez utiliser) pour héberger vos fichiers de configuration App Link / Universal Link à l'aide de Firebase Hosting.
Créez et hébergez vos fichiers de configuration App Link / Universal Link sur votre domaine d'hébergement.
Créez de nouveaux liens d'application/liens universels correspondant au schéma de liens profonds utilisé dans vos liens dynamiques Firebase.
Mettez à jour vos applications Android/iOS et le code de votre application pour recevoir des liens profonds.
Test de vos intégrations App Links / Universal Links.
Remplacez vos liens dynamiques Firebase publiés ou partagés par des liens d'application et des liens universels.
La première étape sera commune aux flux de migration App Links ou Universal Link. Le reste varie en fonction de la plateforme, alors accédez à la section du guide ci-dessous en fonction de la plateforme que vous souhaitez migrer en premier.
- Étapes de migration pour les liens d'application Android
- Étapes de migration pour les liens universels sur iOS
Provisionnez un nouveau domaine pour héberger vos fichiers de configuration App Link / Universal Link à l'aide de Firebase Hosting
Choisissez un domaine
La première étape consiste à choisir un domaine que vous souhaitez utiliser pour vos App Links / Universal Links. Ce sera le domaine qui sera utilisé pour les nouveaux liens que vous partagerez avec vos utilisateurs.
Si vous utilisez Firebase Hosting , les sous-domaines du projet au format your-project-domain .web.app
ou your-project-domain .firebaseapp.com
sont automatiquement provisionnés sans frais. Vous pouvez éventuellement utiliser un domaine personnalisé avec ou sans Firebase Hosting pour héberger également vos fichiers de configuration App Link/Universal Link.
Configurer l'hébergement Firebase
Ensuite, vous devrez installer et configurer votre instance Firebase Hosting .
Une fois que vous aurez terminé de configurer votre instance Firebase Hosting, vous disposerez d'un domaine similaire au your-project-domain .web.app
`, ou d'un domaine personnalisé si vous préférez.
Étapes de migration pour les liens d'application Android
Créez et hébergez vos fichiers de configuration App Link sur votre nouveau domaine d'hébergement
Pour utiliser App Links, vous devez héberger un fichier de configuration qui permet d'établir une association sécurisée entre le domaine utilisé dans vos liens et votre application. Pour App Links, il s’agit du fichier assetlinks.json
.
Étapes pour créer et héberger le fichier Assetlinks.json
Le fichier assetlinks.json
nous permet de fournir une liste d'applications autorisées pouvant gérer le contenu du domaine Web que nous utiliserons pour nos App Links. Le fichier Assetlinks.json lui-même doit être hébergé à la racine du domaine Web sous le chemin : /.well-known
.
Suivez les étapes ci-dessous pour terminer cette configuration :
Créez le dossier
.well-known
sous le dossier public dans le répertoire racine de votre hébergement Firebase.Créez un fichier nommé
assetlinks.json
sous le dossier.well-known
.Copiez le contenu suivant dans votre fichier Assetlinks.json, en prenant note de la signification de chaque champ ci-dessous :
[{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.example.android", "sha256_cert_fingerprints": ["01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF:01:23:45:67:89:AB:CD:EF"] } }]
-
namespace
- fait référence au nom de l'application que vous souhaitez fournir -
package_name
- fait référence à l'applicationId déclaré dans le fichierbuild.gradle
de l'application -
sha256_cert_fingerprints
- fait référence à l'empreinte SHA256 du fichier de clés que vous utilisez pour signer l'application.
Vous pouvez utiliser le fichier debug.keystore utilisé par Android Studio pour générer un enregistrement sha256_cert_fingerprints à des fins de débogage. Vous pouvez trouver le fichier dans
/Users/<username>/.android/debug.keystore
sur Mac et Linux etC:\Users\<username>\.android\debug.keystore
sous Windows.À partir de ce magasin de clés, vous pouvez récupérer la valeur SHA256 à l'aide du keytool.
Reportez-vous à cette section de la documentation App Links pour plus d'instructions sur la réalisation de cette étape.
Vous pouvez également utiliser l' Assistant App Links dans Android Studio pour générer le contenu du fichier Assetlinks.json et configurer votre application pour gérer les App Links.
-
Mettez à jour votre fichier firebase.json pour indexer le fichier pour l'hébergement.
"headers": [ { "source": "/.well-known/assetlinks.json", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Maintenant que le fichier Assetlinks.json est en place, exécutez
firebase deploy
pour héberger les modifications.Notez que vous devrez installer la CLI Firebase pour exécuter la commande de déploiement ci-dessus.
firebase deploy --only hosting
Vérifiez le fichier Assetlinks.json en accédant à
https:// your-project-domain .web.app/.well-known/assetlinks.json
Créez de nouveaux liens d'application correspondant au schéma de liens profonds utilisé dans vos liens dynamiques Firebase
Au cours de cette étape, vous allez recréer les liens profonds à partir de vos liens dynamiques Firebase en utilisant des URL de liens profonds classiques correspondant au nouveau domaine que vous avez créé pour vos liens d'application.
Par exemple, disons que vous disposez du lien dynamique Firebase suivant :
Exemple de lien dynamique | |
---|---|
Nom du lien | Bienvenue sur Exemple.com |
Lien profond | https://example.web.app/welcome |
Application Android | com.example.android |
Application Apple | com.example.ios |
Lien dynamique long | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Lien dynamique court | https://example.page.link/m9Mm |
Dans ce cas, vous extrairez le paramètre de lien profond - c'est-à-dire https://example.web.app/welcome et l'utiliserez désormais comme paramètre App Link pour votre application.
Vous souhaiterez répéter ce processus pour chaque lien dynamique Firebase vers lequel vous souhaitez migrer à l'aide d'App Links/Universal Links et répliquer le schéma de liens profonds que vous avez utilisé.
Par exemple, veuillez consulter l'ensemble suivant de liens courts Firebase Dynamic Links, de paramètres de liens profonds et de valeurs de liens profonds migrés :
Lien court | Paramètre de lien profond | Lien profond migré |
---|---|---|
votreapp.page.link/welcome | https://exemple.com/bienvenue | votreapp.web.app/welcome |
votreapp.page.link/c7sn | https://example.com/main/?p=23&t=1 | yourapp.web.app/main/?p=23&t=1 |
votreapp.page.link/social | https://example.com/friendinvite/?add=1 | yourapp.web.app/friendinvite/?add=1 |
Ensuite, vous devrez remplacer toutes les instances de liens dynamiques Firebase qui ont été publiées ou partagées par les nouveaux liens profonds migrés afin que les utilisateurs cliquent sur ces liens d'application au lieu des liens dynamiques Firebase précédents.
Mettez à jour votre application Android et le code de votre application pour recevoir des liens profonds
L'étape suivante après la sélection d'un domaine, le choix d'un schéma de liens profonds et la migration de vos liens dynamiques Firebase vers App Links consiste à mettre à jour votre application Android et le code de votre application pour recevoir les nouveaux liens profonds.
Nous vous recommandons de suivre la documentation complète d'App Links ici ou bien le guide Android Studio sur la configuration de votre application pour gérer les liens profonds, mais les principales étapes incluent :
- Identifier les activités qui doivent gérer les liens profonds respectifs
- Ajout d'un filtre d'intention pour ces activités dans votre fichier AndroidManifest.xml
- Réception du lien profond dans le code applicatif de vos activités
Disons que vous souhaitiez utiliser votre MainActivity pour gérer certains de vos liens profonds. Pour ce faire, vous devrez ajouter le filtre d'intention suivant à MainActivity dans votre fichier AndroidManifest.xml :
<activity android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:host="example.web.app" android:scheme="http"
android:pathPrefix="/welcome" />
<data android:host="example.web.app" android:scheme="https"
android:pathPrefix="/welcome" />
</intent-filter>
</activity>
Dans cette étape, vous spécifiez que MainActivity est la destination de gestion des liens profonds du domaine wxample.web.app et qu'elle inclut le préfixe de chemin /welcome. Notez que vous devrez également spécifier l'attribut android:autoVerify="true", qui vous permet de désigner votre application comme gestionnaire par défaut pour ce type de lien donné.
Enfin, vous devrez ajouter le code dans votre MainActivity pour récupérer les données de lien profond et les utiliser pour piloter l'expérience de lien profond dans votre application. Ceci est similaire à la logique que vous avez peut-être déjà codée dans votre application lors de l'intégration de Firebase Dynamic Links.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main)
val data: Uri? = intent?.data
val toast = Toast.makeText(this, data, duration)
toast.show()
}
Test des liens d'application
Vous pouvez tester les App Links que vous venez de créer en exécutant votre application sur un appareil physique ou dans l' émulateur Android .
Vous devrez créer un lien cliquable à l'aide du domaine configuré pour vos liens d'application, puis cliquer sur ce lien pour vous assurer qu'il s'ouvre dans votre application et vous dirige vers l'activité prévue.
Vous pouvez également tester votre intégration App Links à l'aide de l' Assistant App Links dans Android Studio, ou utiliser la commande suivante pour une URL App Link que vous avez configurée afin de vous assurer qu'elle lance correctement l'activité de correspondance :
adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>
Remplacez vos liens dynamiques Firebase publiés ou partagés par des liens d'application
La dernière étape de votre migration consistera à remplacer vos liens dynamiques Firebase publiés ou partagés par des liens d'application dans la mesure du possible, et à continuer à utiliser les liens d'application à l'avenir.
La réalisation de cette étape varie en fonction de l'endroit et de la manière dont vous publiez vos liens dynamiques Firebase, mais pour vous aider à suivre lesquels existent, vous pouvez exporter vos métadonnées Firebase Dynamic Link existantes. Consultez le guide Exporter les métadonnées de liens dynamiques .
Étapes de migration pour les liens universels sur iOS
Créez et hébergez vos fichiers de configuration Universal Links sur votre nouveau domaine d'hébergement
Pour utiliser Universal Links, vous devez héberger un fichier de configuration qui permet d'établir une association sécurisée entre le domaine utilisé dans vos liens et votre application. Pour les liens universels, il s'agit du fichier apple-app-site-association
(également connu sous le nom de fichier AASA).
Étapes pour créer et héberger le fichier apple-app-site-association
Le fichier AASA nous permet de fournir une liste d'applications autorisées capables de gérer le contenu du domaine Web que nous utiliserons pour nos liens universels. Le fichier AASA lui-même doit être hébergé à la racine du domaine Web sous le chemin : /.well-known.
Suivez les étapes ci-dessous pour terminer cette configuration :
Créez le dossier " .well-known " sous le dossier public dans le répertoire racine de votre hébergement Firebase.
Créez un fichier nommé « apple-app-site-association » dans le dossier « .well-known ».
Copiez le contenu suivant dans votre fichier apple-app-site-association, en prenant note de la signification de chaque champ ci-dessous :
{ "applinks": { "apps": [], "details": [ { "appId": "$TEAM_ID.com.firebase.UniversalLinks", "paths": [ "NOT /_/*", "/*" ] } ] } }
- $TEAM_ID.BundleId - le nom complet de l'application autorisée à gérer les liens
Mettez à jour votre fichier firebase.json pour indexer le fichier pour l'hébergement.
"headers": [ { "source": "/.well-known/apple-app-site-association", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Maintenant que nous avons le fichier AASA en place, effectuez le déploiement Firebase pour héberger les modifications.
Vérifiez le fichier AASA en accédant à https:// your-project-domain .web.app/.well-known/app-app-site-association
Créez de nouveaux liens universels correspondant au schéma de liens profonds utilisé dans vos liens dynamiques Firebase
Au cours de cette étape, vous allez recréer les liens profonds à partir de vos liens dynamiques Firebase en utilisant des URL de liens profonds classiques correspondant au nouveau domaine que vous avez créé pour vos liens universels.
Par exemple, disons que vous disposez du lien dynamique Firebase suivant :
Exemple de lien dynamique | |
---|---|
Nom du lien | Bienvenue sur Exemple.com |
Lien profond | https://example.web.app/welcome |
Application Android | com.example.android |
Application Apple | com.example.ios |
Lien dynamique long | https://example.page.link/?link=https://example.web.app/welcome&apn=com.example.android&isi=123456789&ibi=com.example.iuos |
Lien dynamique court | https://example.page.link/m9Mm |
Dans ce cas, vous extrairez le paramètre de lien profond - c'est-à-dire https://example.web.app/welcome et l'utiliserez désormais comme paramètre de lien universel pour votre application.
Vous souhaiterez répéter ce processus pour chaque lien dynamique Firebase vers lequel vous souhaitez migrer à l'aide d'App Links/Universal Links et répliquer le schéma de liens profonds que vous avez utilisé.
Par exemple, veuillez consulter l'ensemble suivant de liens courts Firebase Dynamic Links, de paramètres de liens profonds et de valeurs de liens profonds migrés :
Lien court | Paramètre de lien profond | Lien profond migré |
---|---|---|
votreapp.page.link/welcome | https://exemple.com/bienvenue | votreapp.web.app/welcome |
votreapp.page.link/c7sn | https://example.com/main/?p=23&t=1 | yourapp.web.app/main/?p=23&t=1 |
votreapp.page.link/social | https://example.com/friendinvite/?add=1 | yourapp.web.app/friendinvite/?add=1 |
Ensuite, vous devrez remplacer toutes les instances de liens dynamiques Firebase qui ont été publiées ou partagées par les nouveaux liens profonds migrés afin que les utilisateurs cliquent sur ces liens universels au lieu des liens dynamiques Firebase précédents.
Mettez à jour votre application iOS et le code de votre application pour recevoir des liens profonds
L'étape suivante après la sélection d'un domaine, le choix d'un schéma de liens profonds et la migration de vos liens dynamiques Firebase vers des liens universels consiste à mettre à jour votre application iOS et le code de votre application pour recevoir les nouveaux liens profonds.
Nous vous recommandons de suivre la documentation complète sur les liens universels ici pour configurer votre application pour gérer les liens profonds, mais les principales étapes incluent :
Mettez à jour la configuration de votre projet pour permettre à votre application de gérer les liens profonds de votre domaine nouvellement créé
Recevez le lien profond dans votre code d'application
Afin de mettre à jour la configuration de votre projet afin de permettre à votre application de gérer les liens profonds, vous devrez ajouter un domaine associé supplémentaire à votre projet dans xCode pour le domaine que vous envisagez maintenant d'utiliser pour héberger votre site d'application Apple. fichier associé.
Cela peut être fait par :
- Ouverture de Xcode
- Sélection de votre projet dans le navigateur de fichiers
- Accédez à l'onglet Signature et capacités des paramètres de votre projet
- Accédez à la section Domaines associés
- En cliquant sur le bouton + pour ajouter le domaine supplémentaire à votre projet au format « applinks :
".
Enfin, vous devez mettre à jour le code de votre application pour pouvoir recevoir les liens profonds entrants.
Pour ce faire, mettez d'abord à jour le fichier AppDelegate.swift pour répondre à un lien universel en ajoutant le code suivant :
func application(_ application: UIApplication, continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
AppDelegate.showReceivedUrl(userActivity: userActivity);
return true
}
static func showReceivedUrl(userActivity: NSUserActivity) {
if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
let url = userActivity.webpageURL!
print(url.absoluteString)
}
Le code ci-dessus remplace la méthode de rappel Universal Link et enregistre l'URL du lien profond, le cas échéant.
Nous allons maintenant appeler également la même méthode showReceivedUrl
de la classe SceneDelegate, car si l'application est déjà ouverte au moment où l'utilisateur a cliqué sur le lien universel, le rappel de lien universel à l'intérieur SceneDelegate
sera celui qui sera invoqué.
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
AppDelegate.showReceivedUrl(userActivity: userActivity)
}
Test des liens universels
Vous pouvez tester les liens universels que vous venez de créer en exécutant votre application sur un appareil physique ou sur un simulateur .
Vous devrez créer un lien cliquable à l'aide du domaine configuré pour vos liens universels, puis cliquer sur ce lien pour vous assurer qu'il s'ouvre dans votre application et vous dirige vers l'écran prévu dans votre application.
Prise en charge des bannières d'applications intelligentes
Nous vous recommandons fortement d'utiliser les bannières d'applications intelligentes afin d'offrir à vos utilisateurs une expérience similaire à Firebase Dynamic Links.
Grâce aux bannières d'applications intelligentes, vos utilisateurs seront redirigés vers l'App Store pour consulter la liste de vos applications si votre application n'est pas déjà installée sur leur appareil. Vous pouvez également éventuellement configurer un paramètre à transmettre à votre application une fois celle-ci téléchargée et installée afin de permettre à vos utilisateurs de poursuivre leur parcours. Si votre application est déjà installée, elle s'ouvrira en transmettant le paramètre à votre application pour aider votre utilisateur à naviguer vers le contenu approprié en fonction de la bannière d'application intelligente sur laquelle il a cliqué.
Remplacez vos liens dynamiques Firebase publiés ou partagés par des liens d'application
La dernière étape de votre migration consistera à remplacer vos liens dynamiques Firebase publiés ou partagés par des liens universels dans la mesure du possible, et à continuer à utiliser les liens universels à l'avenir.
La réalisation de cette étape varie en fonction de l'endroit et de la manière dont vous publiez vos liens dynamiques Firebase.
Pour vous aider à suivre les Firebase Dynamic Links existants à migrer, nous publierons un guide sur la façon d'exporter vos métadonnées de liens courts à partir de Firebase Dynamic Links. Veuillez consulter notre document FAQ sur la dépréciation des liens dynamiques pour plus de mises à jour.