Validateur Universal Links et App Links
Collez votre apple-app-site-association ou assetlinks.json et voyez ce qui ne va pas avant Apple ou Google.
Avant la mise en ligne
- Servez le fichier en HTTPS dans /.well-known/ sur chaque domaine utilisé par les liens, sans redirection.
- Envoyez-le en application/json (pour apple-app-site-association, sans extension .json).
- Utilisez le certificat de signature de la version que les gens installent : Google Play App Signing a le sien.
- Après une modification du fichier, réinstallez l’app : les appareils le mettent en cache.
Comment ça marche
- Le fichier est vérifié dans votre navigateur : structure, identifiants d’app, chemins et empreintes de certificat.
- Un navigateur ne peut pas récupérer les fichiers d’un autre site : collez le contenu plutôt qu’une URL.
- Un fichier valide, c’est la moitié du travail ; la liste ci-dessous couvre l’autre moitié.
Pourquoi les Universal Links ouvrent Safari au lieu de l’app
iOS télécharge apple-app-site-association via le CDN d’Apple au moment de l’installation de l’app, pas quand on touche un lien. Si le fichier était absent, redirigé ou mal formé à ce moment-là, les liens s’ouvrent dans Safari jusqu’à la réinstallation de l’app ou au rafraîchissement du cache.
Les causes habituelles : l’entrée appIDs utilise le bundle ID sans le Team ID de 10 caractères devant ; les paths ou components ne correspondent pas au lien ; le fichier est servi avec une redirection ou depuis le mauvais hôte (www au lieu du domaine nu) ; ou l’entitlement Associated Domains de l’app ne contient pas « applinks: » suivi de l’hôte exact.
Encore une : un lien touché sur le même domaine que la page où vous êtes reste dans Safari, par conception. Testez depuis Notes, Messages ou un autre site.
Pourquoi les App Links Android ouvrent le navigateur
Android vérifie assetlinks.json pour chaque hôte d’un intent filter avec android:autoVerify="true". Si la vérification échoue pour l’un d’eux, aucun des liens n’ouvre l’app automatiquement.
La plupart des échecs viennent des empreintes : le fichier liste la clé de debug ou d’importation, alors que les gens installent la version signée par Google Play App Signing. Copiez le SHA-256 depuis la Play Console, sous Intégrité de l’application, et listez chaque clé qui signe une version installée par les utilisateurs.
Sur Android 12 et versions ultérieures, vous pouvez vérifier l’état avec adb shell pm get-app-links suivi du nom de votre package, et relancer la vérification après avoir corrigé le fichier.
Questions fréquentes
Où apple-app-site-association doit-il être hébergé ?
À l’adresse https://your-domain/.well-known/apple-app-site-association, en HTTPS, sans redirection, servi en application/json et sans extension .json.
Où assetlinks.json doit-il être hébergé ?
À l’adresse https://your-domain/.well-known/assetlinks.json, en HTTPS, sans redirection, servi en application/json.
Pourquoi ne puis-je pas valider à partir d’une URL ?
Les navigateurs ne laissent pas une page lire les fichiers d’un autre site, sauf si ce site l’autorise, ce qui n’est généralement pas le cas pour ces fichiers. Ouvrez l’URL, copiez le contenu et collez-le ici.
De quelle empreinte SHA-256 ai-je besoin ?
Celle du certificat qui signe la version que les gens installent. Avec Google Play App Signing, c’est la clé de signature de l’app affichée dans la Play Console, pas votre clé d’importation. Ajoutez les deux si vous distribuez aussi des versions signées avec votre propre clé.
J’ai corrigé le fichier mais les liens ouvrent toujours le navigateur. Pourquoi ?
Les appareils mettent le résultat en cache. Sur iOS, réinstallez l’app ; sur Android, relancez la vérification ou réinstallez. Vérifiez aussi que les Associated Domains ou les intent filters de l’app nomment l’hôte exact.
Autres outils gratuits
- Générateur de QR code pour l’App Store et Google Play
- Générateur de liens App Store et Google Play
- Testeur de redirection de lien intelligent
- Générateur apple-app-site-association et assetlinks.json
Un lien et un QR code pour tous les stores
SetLinks envoie chaque visiteur vers son store et compte chaque clic. Démarrage gratuit.
Créer un lien intelligent