Ce guide de migration se concentre sur l'utilisation de liens associés à l'application et de liens universels, et peut utiliser Firebase Hosting pour héberger vos fichiers d'association d'application et de site.
Cette migration remplace les fonctionnalités Firebase Dynamic Links suivantes:
Fonctionnalité | Firebase Dynamic Links | Liens vers une application / Liens universels |
---|---|---|
Dirigez les utilisateurs vers le magasin correspondant à leur appareil d'un simple clic sur un lien. | ★ | |
Permettre aux utilisateurs de poursuivre leur parcours après avoir téléchargé et installé votre application à l'aide d'un lien profond différé | ★ | |
Offrez aux utilisateurs une expérience contextuelle à l'aide de contenus avec lien profond dans votre application (lorsqu'elle est déjà installée). | ||
Fournir des données d'analyse liées aux événements de clic sur un lien dynamique | ||
Possibilité de créer des URL de liens courts |
Si vous avez toujours besoin d'autres fonctionnalités Firebase Dynamic Links pour votre migration qui ne sont pas prises en charge dans ce guide, consultez d'autres scénarios de migration dans la documentation Questions fréquentes sur l'abandon de Dynamic Links.
Supposons que vous disposiez d'un lien Firebase Dynamic Links qui se présente comme suit:
Exemple de lien dynamique | |
---|---|
Nom du lien | Bienvenue sur Example.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 Firebase Dynamic Links comme suit:
https://example.page.link/m9Mm
Avec des liens profonds vers une application ou un lien universel qui se présentent comme suit:
https://your-project-domain.web.app/welcome
Notez que le lien profond vers l'application / le lien universel fournit les éléments suivants à vos utilisateurs:
- Un lien profond sur lequel ils peuvent cliquer pour ouvrir votre application lorsqu'elle est déjà installée
- Poursuite de son parcours utilisateur en le redirigeant vers une partie spécifique de votre application lorsqu'elle est ouverte
Toutefois, le lien profond vers l'application / le lien universel ne fournira pas les comportements suivants pour vos utilisateurs (comme le faisaient auparavant les liens dynamiques Firebase):
- Rediriger les utilisateurs vers la plate-forme de téléchargement d'applications appropriée pour leur appareil afin qu'ils puissent télécharger et installer votre application
- Poursuite du parcours utilisateur après le téléchargement, l'installation et l'ouverture de l'application pour la première fois
Notez les différences de comportement et de fonctionnalité de ces liens vers une application / liens universels par rapport aux liens dynamiques Firebase indiqués dans le tableau ci-dessus.
Avant de commencer
Firebase Dynamic Links utilise des liens vers une application (sur Android) et des liens universels (sur iOS) dans sa propre implémentation sous-jacente afin de fournir une fonctionnalité de liens profonds une fois votre application installée.
Ce guide explique comment créer vos propres liens d'application et liens universels à l'aide de Firebase Hosting pour remplacer cette partie de la fonctionnalité fournie par Firebase Dynamic Links lors de la migration de vos liens dynamiques Firebase vers la nouvelle solution de migration des liens d'application / liens universels.
Vous avez besoin des informations suivantes pour effectuer la migration:
- Les Firebase Dynamic Links que vous souhaitez migrer
- Les paramètres d'URL de lien profond 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 d'exportation des métadonnées des liens dynamiques pour exporter vos métadonnées de lien existantes et obtenir les informations listé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 de lien d'application / lien universel à 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 des liens d'application / liens universels correspondant au schéma de lien profond utilisé dans vos Firebase Dynamic Links.
Mettez à jour vos applications Android / iOS et votre code d'application pour recevoir des liens profonds.
Tester l'intégration de vos liens 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 est commune aux flux de migration des liens vers une application ou des liens universels. Le reste varie en fonction de la plate-forme. Accédez donc à la section du guide ci-dessous en fonction de la plate-forme que vous souhaitez migrer en premier.
- Procédure de migration pour les liens vers des applications Android
- Procédure de migration des liens universels sur iOS
Provisionner un nouveau domaine pour héberger vos fichiers de configuration d'App Link / Lien universel à l'aide de Firebase Hosting
Choisir un domaine
La première étape consiste à choisir un domaine que vous souhaitez utiliser pour vos liens d'application/liens universels. Il s'agit du domaine qui sera utilisé pour les nouveaux liens que vous partagerez avec vos utilisateurs.
Si vous utilisez Firebase Hosting, les sous-domaines de projet au format your-project-domain.web.app
ou your-project-domain.firebaseapp.com
sont automatiquement provisionnés sans frais. Vous pouvez également utiliser un domaine personnalisé avec ou sans Firebase Hosting pour héberger vos fichiers de configuration d'App Link / Lien universel.
Configurer Firebase Hosting
Ensuite, vous devez configurer votre instance Firebase Hosting.
Lorsque vous aurez terminé la configuration de votre instance Firebase Hosting, vous disposerez d'un domaine semblable à your-project-domain.web.app
ou d'un domaine personnalisé si vous préférez.
Procédure de migration pour les liens vers une application Android
Créer et héberger 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 à suivre 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 liens d'application. Le fichier assetlinks.json lui-même doit être hébergé à la racine du domaine Web sous le chemin d'accès suivant: /.well-known
.
Pour effectuer cette configuration, procédez comme suit:
Créez le dossier
.well-known
sous le dossier public dans le répertoire racine de Firebase Hosting.Créez un fichier nommé
assetlinks.json
dans le dossier.well-known
.Copiez le contenu suivant dans votre fichier assetlinks.json, en notant 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 fournirpackage_name
: fait référence à l'applicationId déclaré dans le fichierbuild.gradle
de l'applicationsha256_cert_fingerprints
: fait référence à l'empreinte SHA256 du fichier keystore 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 trouverez le fichier à l'emplacement
/Users/<username>/.android/debug.keystore
sur Mac et Linux, et à l'emplacementC:\Users\<username>\.android\debug.keystore
sous Windows.À partir de ce keystore, vous pouvez extraire la valeur SHA256 à l'aide de keytool.
Pour en savoir plus sur cette étape, consultez cette section de la documentation sur les liens d'application.
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 App Links.
Mettez à jour votre fichier firebase.json pour l'indexer à des fins d'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 devez disposer de 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éer des liens d'application correspondant au schéma de lien profond utilisé dans vos Firebase Dynamic Links
À cette étape, vous allez recréer les liens profonds de vos liens dynamiques Firebase à l'aide d'URL de lien profond standards correspondant au nouveau domaine que vous avez créé pour vos liens d'application.
Par exemple, imaginons que vous disposiez du Firebase Dynamic Link suivant:
Exemple de lien dynamique | |
---|---|
Nom du lien | Bienvenue sur Example.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 devez extraire le paramètre de lien profond (par exemple, https://example.web.app/welcome) et l'utiliser comme paramètre d'App Link pour votre application.
Vous devrez répéter cette procédure pour chaque lien dynamique Firebase que vous souhaitez migrer vers des liens vers une application / des liens universels, et répliquer le schéma de lien profond que vous avez utilisé.
Par exemple, consultez l'ensemble suivant de liens courts Firebase Dynamic Links, de paramètres de lien profond et de valeurs de lien profond migrées:
Lien court | Paramètre du lien profond | Lien profond migré |
---|---|---|
votreapp.page.lien/bienvenue | https://example.com/welcome | yourapp.web.app/welcome |
votreapp.page.lien/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 Firebase Dynamic Links 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 anciens Firebase Dynamic Links.
Mettre à jour votre application Android et son code pour recevoir des liens profonds
Une fois que vous avez sélectionné un domaine, choisi un schéma de liens profonds et migré vos Firebase Dynamic Links vers App Links, l'étape suivante consiste à mettre à jour votre application Android et le code de votre application afin de recevoir les nouveaux liens profonds.
Nous vous recommandons de consulter la documentation complète sur les liens d'application ou le guide Android Studio sur la configuration de votre application pour gérer les liens profonds. Voici les principales étapes:
- Identifier les activités devant gérer les liens profonds respectifs
- Ajouter un filtre d'intent pour ces activités dans votre fichier AndroidManifest.xml
- Recevoir le lien profond dans le code d'application de vos activités
Imaginons que vous souhaitiez utiliser MainActivity pour gérer certains de vos liens profonds. Pour ce faire, vous devez ajouter le filtre d'intent 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>
Au cours de 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 du chemin de bienvenue. 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.
Enfin, vous devrez ajouter le code dans votre MainActivity pour récupérer les données de lien profond et les utiliser pour générer l'expérience de lien profond dans votre application. Cela ressemble à la logique que vous avez peut-être déjà codée dans votre application lorsque vous l'avez intégrée à 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()
}
Tester les liens vers une application
Vous pouvez tester les liens d'application que vous venez de créer en exécutant votre application sur un appareil physique ou dans Android Emulator.
Vous devrez créer un lien cliquable à l'aide du domaine configuré pour vos liens vers une application, puis cliquer dessus pour vous assurer qu'il s'ouvre dans votre application et vous redirige vers l'activité souhaitée.
Vous pouvez également tester l'intégration de vos liens vers une application à l'aide de l'assistant d'App Links dans Android Studio ou utiliser la commande suivante pour une URL App Links que vous avez configurée afin de vous assurer qu'elle lance correctement l'activité correspondante:
adb shell am start -a android.intent.action.VIEW -d <your_deep_link_url>
Remplacer vos Firebase Dynamic Links publiés ou partagés par des liens d'application
La dernière étape de la migration consiste à 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 manière de procéder varie selon l'emplacement et la méthode de publication de vos Firebase Dynamic Links. Toutefois, pour vous aider à identifier ceux qui existent, vous pouvez exporter les métadonnées de vos Firebase Dynamic Links existantes. Consultez le guide d'exportation des métadonnées Dynamic Links.
Procédure de migration pour les liens universels sur iOS
Créer et héberger vos fichiers de configuration Universal Links sur votre nouveau domaine d'hébergement
Pour utiliser des liens universels, 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 appelé fichier AASA).
Étapes pour créer et héberger le fichier d'association de site apple-app-site-association
Le fichier AASA nous permet de fournir une liste d'applications autorisées pouvant gérer le contenu du domaine Web que nous utiliserons pour nos liens universels. Le fichier AASA doit être hébergé à la racine du domaine Web sous le chemin d'accès : /.well-known.
Pour effectuer cette configuration, procédez comme suit:
Créez le dossier .well-known sous le dossier public dans le répertoire racine de Firebase Hosting.
Créez un fichier nommé apple-app-site-association dans le dossier ".well-known".
Copiez le contenu suivant dans votre fichier d'association de site apple-app-site-association, en tenant compte de la signification de chaque champ ci-dessous:
{ "applinks": { "apps": [], "details": [ { "appId": "$TEAM_ID.com.firebase.UniversalLinks", "paths": [ "NOT /_/*", "/*" ] } ] } }
- $TEAM_ID.BundleId : nom complet de l'application autorisée à gérer les liens
Mettez à jour votre fichier firebase.json afin d'indexer le fichier pour l'héberger.
"headers": [ { "source": "/.well-known/apple-app-site-association", "headers": [ { "key": "Content-Type", "value": "application/json" } ] } ]
Maintenant que le fichier AASA est en place, effectuez un 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éer des liens universels correspondant au schéma de lien profond utilisé dans vos Firebase Dynamic Links
À cette étape, vous allez recréer les liens profonds de vos liens dynamiques Firebase à l'aide d'URL de lien profond standards correspondant au nouveau domaine que vous avez créé pour vos liens universels.
Par exemple, imaginons que vous disposiez du Firebase Dynamic Link suivant:
Exemple de lien dynamique | |
---|---|
Nom du lien | Bienvenue sur Example.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 devez extraire le paramètre de lien profond (par exemple, https://example.web.app/welcome) et l'utiliser comme paramètre de lien universel pour votre application.
Vous devrez répéter cette procédure pour chaque lien dynamique Firebase que vous souhaitez migrer vers des liens vers une application / des liens universels, et répliquer le schéma de lien profond que vous avez utilisé.
Par exemple, consultez l'ensemble suivant de liens courts Firebase Dynamic Links, de paramètres de lien profond et de valeurs de lien profond migrées:
Lien court | Paramètre du lien profond | Lien profond migré |
---|---|---|
votreapp.page.lien/bienvenue | https://example.com/welcome | yourapp.web.app/welcome |
votreapp.page.lien/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 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.
Mettre à jour votre application iOS et son code pour recevoir des liens profonds
Après avoir sélectionné un domaine, choisi un schéma de lien profond et migré vos Firebase Dynamic Links vers des liens universels, vous devez mettre à jour votre application iOS et son code pour recevoir les nouveaux liens profonds.
Nous vous recommandons de suivre la documentation complète sur les liens universels pour configurer votre application afin de gérer les liens profonds. Voici les étapes principales:
Mettez à jour la configuration de votre projet pour permettre à votre application de gérer les liens profonds de votre nouveau domaine.
Recevoir le lien profond dans le code de votre application
Pour mettre à jour la configuration de votre projet afin de permettre à votre application de gérer les liens profonds, vous devez ajouter un domaine associé supplémentaire à votre projet dans xCode pour le domaine que vous prévoyez d'utiliser pour héberger votre fichier apple-app-site-associate.
Pour ce faire, procédez comme suit:
- Ouvrir Xcode
- Sélectionner votre projet dans l'explorateur de fichiers
- Accédez à l'onglet "Signature et fonctionnalités" des paramètres de votre projet.
- Faites défiler la page jusqu'à la section "Domaines associés".
- Cliquez 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, commencez par mettre à 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 du lien universel et consigne l'URL du lien profond, le cas échéant.
Nous allons maintenant appeler la même méthode showReceivedUrl
à partir 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 du lien universel dans SceneDelegate
est celui qui est appelé.
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 un simulateur.
Vous devrez créer un lien cliquable à l'aide du domaine configuré pour vos liens universels, puis cliquer dessus pour vous assurer qu'il s'ouvre dans votre application et vous redirige vers l'écran souhaité.
Prise en charge des bannières d'application intelligentes
Nous vous recommandons vivement d'utiliser les bannières d'application intelligentes pour offrir à vos utilisateurs une expérience similaire à celle de Firebase Dynamic Links.
Si vous utilisez des bannières d'application intelligentes, vos utilisateurs seront redirigés vers l'App Store pour votre fiche d'application, si celle-ci n'est pas déjà installée sur leur appareil. Vous pouvez également configurer un paramètre à transmettre à votre application après son téléchargement et son installation afin de fournir aux utilisateurs la suite de leur parcours. Si votre application est déjà installée, elle s'ouvre et transmet le paramètre à votre application pour aider votre utilisateur à accéder au contenu approprié en fonction de la bannière d'application intelligente sur laquelle il a cliqué.
Remplacer vos Firebase Dynamic Links publiés ou partagés par des liens d'application
La dernière étape de votre migration consistera à remplacer, dans la mesure du possible, vos liens universels Firebase publiés ou partagés par des liens universels. Vous continuerez à utiliser des liens universels à l'avenir.
La procédure à suivre pour effectuer cette étape varie selon l'emplacement et la méthode de publication de vos liens dynamiques Firebase.
Pour vous aider à suivre la migration de Firebase Dynamic Links, nous allons publier un guide expliquant comment exporter vos métadonnées de liens courts à partir de Firebase Dynamic Links. Pour en savoir plus, consultez notre document de questions fréquentes sur l'abandon des liens dynamiques.