Comment servir correctement les fichiers App Link pour iOS et Android

Explique comment héberger et mettre à disposition correctement le fichier `apple-app-site-association` │ pour les liens universels iOS et le fichier `assetlinks.json` pour les liens d'application Android.

Intermediate

Pour diffuser correctement les fichiers App Link sur iOS et Android, vous devez configurer à la fois votre site web et vos applications mobiles. Cela implique de créer et d'héberger des fichiers spécifiques sur votre serveur web, ainsi que d'effectuer les configurations correspondantes dans vos projets iOS et Android.

Liens universels iOS

Pour iOS, vous devez configurer des liens universels, qui permettent aux utilisateurs de cliquer sur un lien vers votre site web et d'être redirigés de manière transparente vers votre application installée.

  1. Créez le fichier « apple-app-site-association » :

    • Créez un fichier JSON nommé apple-app-site-association (sans .json extension).
    • Ce fichier indique les URL que votre application peut gérer.
    • Le fichier doit contenir un applinks dictionnaire. À l'intérieur applinks, incluez un apps tableau et un details tableau. Chaque objet du details tableau doit spécifier le appID (votre identifiant Apple Team suivi de l'identifiant de bundle de votre application) et un tableau de paths que votre application peut gérer. Vous pouvez utiliser des caractères génériques (* et ?) pour la correspondance de chemins.
    • Exemple de contenu du fichier `apple-app-site-association` : json { "applinks": { "apps": [], "details": [ { "appID": "YOUR_TEAM_ID.com.yourcompany.yourapp", "paths": [ "/path/to/content/*", "/another/path/*", "NOT /path/to/exclude" ] } ] } }
  2. Hébergez le fichier sur votre serveur web :

    • Le apple-app-site-association fichier doit être hébergé à la racine de votre domaine ou dans le .well-known sous-répertoire (par exemple, https://yourdomain.com/apple-app-site-association ou https://yourdomain.com/.well-known/apple-app-site-association).
    • Il doit être servi via HTTPS avec un certificat SSL valide.
    • Le fichier doit être accessible directement, sans aucune redirection HTTP (301 ou 302).
    • Le type MIME du fichier doit être application/json.
    • La taille du fichier non compressé ne doit pas dépasser 128 Ko.
    • Si vous prenez en charge plusieurs domaines ou sous-domaines, chaque domaine doit disposer de son propre apple-app-site-association fichier.
  3. Configurez votre application iOS :

    • Dans Xcode, activez la fonctionnalité « Associated Domains » pour votre projet.
    • Ajoutez les domaines pris en charge par votre application à la liste « Associated Domains », en leur ajoutant le préfixe applinks: (par exemple, applinks:yourdomain.com).
    • Implémentez les méthodes nécessaires dans le fichier AppDelegate ou SceneDelegate de votre application pour gérer les URL Universal Link entrantes.

Liens d'application Android

Sur Android, les liens d'application offrent une expérience similaire et fluide, permettant aux liens vérifiés de s'ouvrir directement dans votre application sans boîte de dialogue de désambiguïsation.

  1. Créez le fichier « assetlinks.json » :

    • Créez un fichier JSON nommé assetlinks.json.
    • Ce fichier établit une association de confiance entre votre site web et votre application Android.
    • Le fichier doit contenir un tableau JSON avec un objet qui spécifie le relation (par exemple, delegate_permission/common.handle_all_urls), target (y compris namespace comme android_app, l' package_name, et le sha256_cert_fingerprints du certificat de signature de votre application).
    • Vous pouvez obtenir l'empreinte SHA256 à l'aide de la keytool ou depuis la console Google Play si vous utilisez la signature d'application Play.
    • Exemple de contenu du fichier `assetlinks.json` : json [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.yourcompany.yourapp", "sha256_cert_fingerprints": ["AA:BB:CC:DD:EE:FF:11:22:33:44:55:66:77:88:99:00:11:22:33:44:55:66:77:88:99:00:AA:BB:CC:DD:EE:FF"] } }]
  2. Hébergez le fichier sur votre serveur web :

    • Le assetlinks.json fichier doit être hébergé à l'adresse https://yourdomain.com/.well-known/assetlinks.json.
    • Il doit être servi via HTTPS avec un certificat SSL valide.
    • Le fichier doit être accessible directement sans aucune redirection HTTP (301 ou 302).
    • Le type MIME du fichier doit être application/json.
    • Si les liens de votre application prennent en charge plusieurs domaines hôtes, vous devez publier le assetlinks.json fichier sur chaque domaine.
  3. Configurez votre application Android :

    • Ajoutez un <intent-filter> à la section AndroidManifest.xml pour les URL que vous souhaitez gérer.
    • Incluez android:autoVerify="true" dans le <intent-filter>. Cela indique à Android de vérifier le domaine hôte.
    • Le <intent-filter> devrait inclure ACTION_VIEW, BROWSABLE, et DEFAULT catégories.
    • Spécifiez le <data> schéma (par exemple, https), l'hôte et tout préfixe ou modèle de chemin facultatif.
    • Exemple de filtre d'intention «AndroidManifest.xml» : xml <activity android:name=".MainActivity"> <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="yourdomain.com" android:pathPrefix="/path/to/content" /> </intent-filter> </activity>
    • Gérer l'URL entrante Intent dans l'activité de votre application pour extraire les données de l'URL et accéder au contenu approprié.

Bonnes pratiques générales

  • Le protocole HTTPS est obligatoire pour les liens universels iOS et les liens d'application Android.
  • Évitez les redirections lors de la diffusion de ces fichiers d'association.
  • Testez minutieusement sur des appareils réels et utilisez des outils de validation (par exemple, l'API Digital Asset Links de Google pour Android et divers validateurs en ligne pour les fichiers AASA iOS) afin de garantir une configuration correcte.
  • Assurez-vous d'être propriétaire des domaines pour lesquels vous configurez des liens d'application.