Le débogage des liens universels qui ne parviennent pas à ouvrir votre application nécessite une approche systématique, consistant à vérifier à la fois la configuration de votre application et celle de votre serveur web. Voici un guide complet :
1. Vérifiez la configuration de base et testez l'environnement
- Utilisez un appareil réel, pas un simulateur : les liens universels se comportent souvent différemment sur les simulateurs. Testez-les toujours sur un appareil iOS physique.
- Supprimez et réinstallez l'application : après avoir apporté des modifications, supprimez toujours l'application de votre appareil et réinstallez-la. Cela oblige iOS à télécharger à nouveau le fichier
apple-app-site-association(AASA). - Testez à partir de sources appropriées : les liens universels ne fonctionneront pas si vous les collez directement dans la barre d'adresse du navigateur. Testez-les en appuyant sur des liens provenant d'autres applications telles que Notes, Mail, iMessage ou Slack. Certaines applications telles qu'Instagram, Twitter ou Facebook peuvent ne pas prendre directement en charge les liens universels.
2. Vérifiez le fichier apple-app-site-association (AASA)
Le fichier AASA est essentiel pour les liens universels. iOS télécharge ce fichier depuis votre serveur web afin de déterminer les liens que votre application peut traiter.
- Emplacement du fichier : le fichier AASA doit être hébergé à l'adresse
https://yourdomain.com/apple-app-site-associationouhttps://yourdomain.com/.well-known/apple-app-site-association. - HTTPS et absence de redirections : le fichier doit être servi via HTTPS et sans aucune redirection 3xx.
- En-tête Content-Type : assurez-vous que le serveur renvoie l'en-tête
Content-Typecorrect pour le fichier AASA. - Validité JSON : le fichier AASA doit être un fichier JSON valide et respecter le schéma spécifié. Vous pouvez utiliser des validateurs en ligne (tels que le validateur AASA de Branch.io) pour vérifier son exactitude.
appIDet chemins d'accès : vérifiez que l'appIDde votre fichier AASA correspond à l'ID d'équipe et à l'identifiant de bundle de votre application (par exemple,ABC123DEF.com.example.app). Assurez-vous également que le tableaupathsspécifie correctement les chemins d'accès URL que votre application doit gérer.- Journaux du serveur : vérifiez les journaux HTTPS de votre serveur web pour confirmer que le fichier AASA est téléchargé par iOS lorsque votre application est installée.
3. Configuration de l'application dans Xcode
- Droit d'accès aux domaines associés : dans votre projet Xcode, accédez à l'onglet « Signing & Capabilities » (Signature et capacités) et assurez-vous que l'option « Associated Domains » (Domaines associés) est activée. Ajoutez votre domaine au format
applinks:votredomaine.com. - Débogage ou publication : si vous effectuez un débogage en cours de développement, assurez-vous de modifier la version de débogage de « Signing & Capabilities ». Pour contourner le CDN Apple Universal Links en cours de développement, configurez vos domaines de débogage comme suit :
applinks:votredomaine.com?mode=developer. - App Delegate/Scene Delegate : vérifiez que l'
AppDelegate(ouSceneDelegatepour iOS 13+) de votre application implémente correctement la méthodeapplication(_:continueUserActivity:restorationHandler:)pour gérer les objetsNSUserActivityentrants pour les liens universels.
4. Débogage spécifique à l'appareil
- Journaux de console : connectez votre appareil à Xcode et ouvrez la console (Fenêtre > Appareils et simulateurs > [Votre appareil] > Ouvrir la console). Filtrez les journaux pour « swcd » (Shared Web Credentials Daemon) afin de voir si l'enregistrement de votre lien universel a fonctionné ou échoué.
- Paramètres développeur (iOS 13+) :
- Activez le « Mode développeur » dans Paramètres > Confidentialité et sécurité > Mode développeur.
- Dans Réglages > Développeur > Liens universels, activez « Développement de domaines associés ».
- Utilisez l'outil « Diagnostics » dans la section Liens universels pour saisir l'URL de votre lien universel et vérifier s'il est valide pour votre application installée.
- Redémarrez l'appareil : le redémarrage de votre appareil peut effacer les caches des liens universels iOS et résoudre les problèmes.
- Testez sur différents appareils/versions iOS : cela permet d'exclure les problèmes de configuration spécifiques à l'appareil.
- Réactivez les liens universels : si un lien universel s'ouvrait auparavant dans Safari, il a peut-être été désactivé pour ce lien spécifique. Appuyez longuement sur le lien dans une application telle que Notes et sélectionnez « Ouvrir dans [nom de votre application] » pour le réactiver. Si vous voyez une bannière Smart App Banner dans Safari, appuyez sur « OUVRIR » dans la bannière pour réactiver les liens universels.
5. Dépannage avancé
sysdiagnoseJournaux : pour obtenir des informations plus détaillées, vous pouvez accéder aux journauxsysdiagnosesur votre appareil iOS (Paramètres > Confidentialité et sécurité > Analyses et améliorations > Données d'analyse). Ces journaux peuvent fournir des informations détaillées sur la manière dont iOS traite vos liens universels.- Outils tiers : utilisez des outils tels que l'outil de validation de l'API App Search d'Apple ou d'autres validateurs tiers pour vérifier la configuration de votre site web.
En suivant systématiquement ces étapes, vous pouvez identifier et résoudre la plupart des problèmes qui empêchent vos liens universels d'ouvrir votre application.