App Link : ce que c'est, principe de fonctionnement et configuration

Auteur : IT Sectr Publié le : 2026-05-14 Temps de lecture : 9 min

App Link est un mécanisme Android (Android 6.0+) qui ouvre automatiquement les liens web dans l'application installée, en contournant la boîte de dialogue de choix. Le terme a été introduit par Google en 2015 avec Android 6.0 Marshmallow. Selon Android Developers, App Link utilise Digital Asset Links — une vérification cryptographique via un fichier sur le serveur, confirmant que le domaine appartient au développeur de l'application.

Points clés

  • App Link — un lien https qui ouvre automatiquement l'application sans boîte de dialogue de choix
  • Digital Asset Links — fichier JSON assetlinks.json sur le serveur, vérifiant la connexion du domaine à l'application
  • Empreinte SHA256 du certificat — élément clé de vérification reliant le développeur au domaine
  • Intent Filter — composant Android déclarant quels liens l'application traite
  • Sécurité — App Link élimine la boîte de dialogue « Ouvrir dans l'application ou le navigateur », augmentant la conversion

App Link (Android App Link) est un lien HTTPS standard qui, lorsqu'on clique sur un appareil Android, ouvre automatiquement l'application installée sans afficher la boîte de dialogue standard de choix entre navigateur et application. Google a introduit App Link dans Android 6.0 (API 23) comme solution au problème de la « boîte de dialogue de choix », qui réduisait la conversion des deep links en raison du clic supplémentaire et de la confusion de l'utilisateur.

L'innovation clé : la vérification. Android vérifie que le domaine appartient réellement au développeur de l'application via l'API Digital Asset Links. Google Play Store vérifie App Link lors de la publication et peut rejeter une mise à jour si la vérification échoue. Cela rend App Link plus sécurisé que Custom URL Scheme : aucune autre application ne peut intercepter un lien vers votre domaine.

Digital Asset Links est un protocole ouvert que Google utilise non seulement pour App Link, mais aussi pour lier des sites web à des applications dans les résultats de recherche, Google Assistant et Smart Lock for Passwords. Le protocole est basé sur une vérification cryptographique : dans assetlinks.json, l'empreinte SHA256 du certificat de signature de l'application est spécifiée, ce qui élimine la contrefaçon.

Le processus de fonctionnement d'App Link comprend trois étapes : la vérification des Digital Asset Links, le traitement via Intent Filter et la redirection automatique. Chaque étape est obligatoire. Si la vérification échoue, Android affiche une boîte de dialogue de choix — ce deep link fonctionne normalement mais sans l'avantage de la transition automatique.

Digital Asset Links (assetlinks.json)

Asset Links est un fichier JSON placé sur le serveur à l'adresse https://domain/.well-known/assetlinks.json. Le fichier contient un tableau d'objets avec des champs : relation (tableau de chaînes décrivant le type de relation), target (objet avec namespace et package_name de l'application, ainsi que sha256_cert_fingerprints — tableau d'empreintes SHA256 du certificat de signature).

json
// assetlinks.json — configuration minimale d'App Link
[{
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
        "namespace": "android_app",
        "package_name": "com.example.app",
        "sha256_cert_fingerprints": [
            "14:6D:E9:83:C5:73:06:50:D8:EE:B9:95:2F:34:FC:64:AD:A4:C5:AD:6B:01:14:79:6B:CB:12:6B:21:39:6F:EA"
        ]
    }
}]

L'empreinte SHA256 est obtenue à partir du certificat utilisé pour signer l'application. Pour les builds de débogage, le certificat de débogage standard Android est utilisé ; pour les builds de publication, le certificat de Google Play Console ou le vôtre. Important : lors du changement de certificat de signature (par exemple, lors du passage à App Signing by Google Play), il est nécessaire de mettre à jour assetlinks.json sur le serveur, sinon App Link cessera de fonctionner.

Intent Filter et vérification

Android vérifie App Link au premier clic sur un lien. Le système télécharge assetlinks.json depuis le serveur, compare package_name et l'empreinte SHA256 avec le certificat de l'application installée. Si les données correspondent, Android marque l'Intent Filter comme vérifié, et tous les liens suivants vers ce domaine s'ouvrent automatiquement, sans dialogue.

xml
// AndroidManifest.xml — Intent Filter pour App Link
<activity
    android:name=".ui.ProductActivity"
    android:exported="true">
    <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:scheme="https"
            android:host="example.com"
            android:pathPrefix="/product" />
    </intent-filter>
</activity>

autoVerify="true" est un attribut obligatoire qui ordonne à Android de vérifier assetlinks.json. Sans cet attribut, l'Intent Filter ne sera pas vérifié et App Link ne sera pas activé. Android prend en charge plusieurs Intent Filters dans une même Activity — pour différents hôtes. Le système vérifie chaque hôte séparément. La vérification est effectuée de manière asynchrone et peut prendre jusqu'à 20 secondes au premier clic.

Redirection automatique

Après une vérification réussie, Android ouvre automatiquement l'application lors du clic sur tout lien correspondant à l'Intent Filter vérifié. L'utilisateur ne voit pas de boîte de dialogue de choix — l'application s'ouvre instantanément. Si l'application n'est pas installée, le lien s'ouvre dans le navigateur (comme une page web normale). C'est l'expérience utilisateur idéale : une transition fluide sans actions inutiles.

Important : la redirection automatique fonctionne uniquement pour le schéma https. App Link ne prend pas en charge http (protocole non sécurisé). Si un utilisateur ouvre manuellement un lien http (par exemple, depuis SMS), Android n'effectue pas la vérification et affiche une boîte de dialogue de choix. Il est recommandé d'utiliser https pour tous les liens menant à l'application et de configurer la redirection HTTP vers HTTPS sur le serveur.

App Link est l'évolution du Deep Link sur Android, pas un remplacement. La différence entre eux est fondamentale. Deep Link ordinaire (Custom URL Scheme) fonctionne via un Intent Filter avec un schéma personnalisé (myapp://) et sans autoVerify. Android ne vérifie pas si l'application est réellement associée à ce schéma — n'importe quelle application peut enregistrer myapp:// et intercepter des liens.

App Link résout trois problèmes du Deep Link. Premièrement : la sécurité — la vérification via Digital Asset Links empêche l'interception de liens. Deuxièmement : l'expérience utilisateur — l'absence de boîte de dialogue de choix augmente la conversion vers l'action cible de 20 à 40%. Troisièmement : l'indexation — Google indexe les URLs https d'App Link et peut les afficher dans les résultats de recherche comme des liens vers du contenu dans l'application.

Compatibilité : App Link fonctionne sur Android 6.0+ (99% des appareils). Pour Android 5.x (Lollipop), on utilise un Deep Link ordinaire avec boîte de dialogue de choix. Par conséquent, il est recommandé de prendre en charge les deux mécanismes : App Link pour les appareils modernes et Custom URL Scheme comme fallback pour les versions anciennes. Un Intent Filter avec autoVerify="true" ne casse pas la rétrocompatibilité — sur Android < 6, l'attribut est ignoré.

CaractéristiqueDeep LinkApp Link
SchémaPersonnalisé (myapp://)HTTPS (https://domain)
VérificationNonassetlinks.json
Boîte de dialogueAffichéeRedirection automatique
Version AndroidAPI 1+API 23+ (6.0+)
Indexation GoogleNonOui (URL https)

La configuration d'App Link nécessite trois étapes : configuration de l'Intent Filter dans le manifeste, placement de assetlinks.json sur le serveur et vérification de la vérification. La première étape consiste à ajouter un Intent Filter avec android:autoVerify="true" dans AndroidManifest.xml. Il est important de spécifier le schéma https, l'hôte et les chemins que l'application doit traiter. Les chemins peuvent contenir des jokers (*) pour les sous-dossiers.

La deuxième étape est la création de assetlinks.json. Le fichier peut être généré via Android Studio (Tools → App Links Assistant). L'assistant aide également au débogage et aux tests. Le fichier est placé sur le serveur à /.well-known/assetlinks.json. Le serveur doit renvoyer Content-Type: application/json et être accessible via HTTPS sans redirections. La Google Play Console affiche également le statut de vérification d'App Link dans la section Publishing.

  1. Ajouter un Intent Filter avec android:autoVerify="true" dans AndroidManifest.xml
  2. Obtenir l'empreinte SHA256 du certificat (keytool ou App Links Assistant)
  3. Créer assetlinks.json avec package_name et sha256_cert_fingerprints
  4. Placer le fichier à /.well-known/assetlinks.json sur un serveur HTTPS
  5. Vérifier la vérification via adb : adb shell dumpsync domain_verification

Tests — la troisième étape. Utilisez adb pour vérifier : la commande adb shell am start -W -a android.intent.action.VIEW -d « https://example.com/product/42 » ouvre l'application. Si le navigateur s'ouvre à la place de l'application, vérifiez assetlinks.json et autoVerify. Android Studio App Links Assistant contient un testeur intégré : il affiche le statut de vérification pour chaque domaine et chemin. Pour les tests automatisés, utilisez Android Testing Library avec Intent Matcher.

Caractéristiques d'implémentation

Android 12 (API 31) a introduit des changements dans le traitement d'App Link. Une nouvelle vérification spécifique au domaine a été ajoutée : le système vérifie chaque lien individuellement, pas l'ensemble de l'Intent Filter. Cela améliore la sécurité, mais nécessite la mise à jour du fichier assetlinks.json lors de l'ajout de nouveaux chemins. Android 12 a également introduit Android App Links Assistant inclus avec ADB — des commandes pour gérer la vérification via le shell.

Plusieurs domaines est un scénario typique pour la production. L'application peut traiter des liens de example.com, m.example.com et example.org. Chaque domaine nécessite un assetlinks.json séparé sur le serveur correspondant. Dans le manifeste, plusieurs Intent Filters sont ajoutés — un par domaine. Tous les domaines doivent être accessibles via HTTPS et réussir la vérification indépendamment.

App Link et Jetpack Navigation est la méthode recommandée pour gérer App Link dans les applications Android modernes. Jetpack Navigation prend en charge les deep links déclaratifs dans nav_graph.xml ou via NavDeepLinkRequest. Cela simplifie la navigation : le développeur décrit quel écran s'ouvre pour une URL donnée, et le composant Navigation traite lui-même l'Intent et restaure la pile de navigation. Google recommande d'utiliser Jetpack Navigation pour App Link.

kotlin
// Traitement d'App Link via Jetpack Navigation
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        handleDeepLink(intent)
    }

    override fun onNewIntent(intent: Intent) {
        super.onNewIntent(intent)
        handleDeepLink(intent)
    }

    private fun handleDeepLink(intent: Intent) {
        intent.data?.let { uri ->
            navController.handleDeepLink(NavDeepLinkRequest
                .Builder
                .fromUri(uri)
                .build()
            )
        }
    }
}

Google Play Store vérifie App Link lors de la publication. Si le manifeste contient un Intent Filter avec autoVerify mais que assetlinks.json est indisponible ou incorrect, Google Play peut rejeter la mise à jour avec un avertissement. Dans la console développeur (Policy and Programs → App Links), le statut de vérification de chaque domaine est affiché. Avant la publication, vérifiez toujours le statut — le corriger après le rejet de la mise à jour retarde la sortie.

Questions fréquentes

En quoi App Link diffère-t-il de Deep Link sur Android ?

App Link est un Deep Link avec vérification via Digital Asset Links. Les principales différences : App Link utilise un schéma https au lieu d'un schéma personnalisé, n'affiche pas de boîte de dialogue de choix et est indexé par Google. Un Deep Link ordinaire fonctionne sur toutes les versions d'Android mais nécessite une sélection manuelle de l'application.

Où placer assetlinks.json ?

Le fichier est placé à la racine du serveur HTTPS à /.well-known/assetlinks.json. Le serveur doit renvoyer Content-Type: application/json. Le fichier doit être mis à jour lors du changement du certificat de signature ou de l'ajout de nouveaux domaines.

Pourquoi App Link n'ouvre-t-il pas l'application automatiquement ?

Raisons principales : absence de android:autoVerify="true" dans l'Intent Filter, assetlinks.json indisponible via HTTPS, empreinte SHA256 incorrecte, certificat de signature différent (debug vs release). Vérifiez le statut de vérification via adb shell dumpsync domain_verification.

Peut-on utiliser App Link sans domaine propre ?

Non — App Link nécessite un serveur HTTPS avec assetlinks.json accessible. Si vous n'avez pas de domaine, utilisez Firebase Hosting ou GitHub Pages pour héberger le fichier. Alternative : Custom URL Scheme (sans vérification) ou Firebase Dynamic Links.

App Link fonctionne-t-il sur Android 5 ?

Non — App Link est pris en charge sur Android 6.0 (API 23) et supérieur. Sur Android 5, l'Intent Filter avec android:autoVerify="true" ignore l'attribut et fonctionne comme un Deep Link ordinaire avec boîte de dialogue de choix. Il est recommandé de prendre en charge les deux mécanismes pour la rétrocompatibilité.

Résumé

  • App Link — l'évolution du Deep Link pour Android : lien https avec transition automatique vers l'application
  • Digital Asset Links — vérification cryptographique via assetlinks.json sur le serveur
  • Empreinte SHA256 du certificat de signature — élément clé reliant le développeur au domaine
  • android:autoVerify="true" — attribut obligatoire de l'Intent Filter pour activer App Link
  • Sécurité — App Link empêche l'interception de liens par des applications tierces
  • Google Play Store vérifie la vérification d'App Link lors de la publication et rejette en cas d'erreurs
  • Jetpack Navigation — la méthode recommandée pour gérer App Link avec des deep links déclaratifs

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi