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

Pas encore de fichier ? Générez-en un →

Comment ça marche

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

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