AppleDidacticielsiOS 10iOS 11iOS 9Lien profondLiens universelsMarketing mobileTechnique

Comment configurer une liaison universelle pour qu’il devienne une liaison ciblée sur Apple iOS

By octobre 30, 2017 No Comments

Mise à jour: À la base, ce rapport fut publié le 24 juillet 2015, mais fut mis à jour depuis avec les toutes dernières informations sur iOS 9.2. Maintenant qu’Apple ne prend plus en charge les schémas d’URI pour les liaisons ciblées, , les développeurs doivent mettre en place des liaisons universelles pour obtenir des liaisons ciblées correctes sur iOS. Si vous êtes déjà un utilisateur des schémas d’URI, consultez notre blog sur le passage aux liaisons ciblées 

Chez Branch, toute notre vie tourne autour des liaisons ciblées mobiles. Nous avons créé une liaison unique que vous pouvez utiliser partout : chaque plate-forme, chaque appareil et chaque application le stocke pour diriger les utilisateurs vers votre application. Il s’agit d’une liaison unique, entièrement configuré pour diriger vers votre application à partir de n’importe quel canal (Facebook, Twitter, Gmail, etc.) et pour être répertorié dans tous les portails de recherche (indexation d’application par Google, recherche Bing, Apple Spotlight).

C’est tout simple et ça marche. En fait, nous avons déjà écrit des articles dans le blog sur la manière de configurer l’indexation d’application par Google и liaison ciblée sur Facebook, et la consulter.

Slide1

Lorsque Apple a annoncé des liaisons universelles lors de son discours à la dernière WWDC, nous étions impatients de l’intégrer dans la plate-forme de création de liaisons ciblées de Branch. Nous étions loin de savoir qu’il serait si compliqué de réussir à le faire fonctionner. Après avoir passé beaucoup trop de temps dessus en nous aidant de la très maigre documentation fournie, nous avons pensé qu’il serait intéressant de créer un guide pour partager la manière d’agir en vue d’aider toutes les autres personnes.

Comment fonctionnent les liaisons universelles dans iOS 9?

Avant l’utilisation des liaisons universelles, le principal moyen d’ouvrir une application après son installation était d’essayer de la rediriger vers un schéma d’URI de l’application (ainsi enregistré dans la PLIST de l’application) dans Safari. Cela mettait en place la logique de routage mais il n’y avait aucun moyen de vérifier si l’application était installée ou non. Cela signifiait que les développeurs devaient passer 100% de leur temps a essayer d’appeler le schéma d’URI, dans l’éventualité improbable où l’application serait installée avant de se replier dignement sur l’App Store en l’absence d’utilisation d’un minuteur.

Le but des liaisons universelles iOS 9 était de remédier à cela. Au lieu de d’abord ouvrir Safari après avoir cliqué sur une liaison, iOs vérifie si une liaison universelle a été enregistrée pour le domaine associé à la liaison, puis il vérifie si l’application correspondante est installée. Si l’application est actuellement installée, elle s’ouvre. Si ce n’est pas le cas, Safari s’ouvre et la liaison du ou des http(s) se charge.

De manière fonctionnelle, cela vous permet d’avoir une seule liaison qui ouvre soit votre application, soit votre site mobile.

Guide d’intégration de la liaison universelle

Voici les étapes générales pour que les liaisons universelles fonctionnent pour votre application:

1. Configurez votre application pour enregistrer les domaines approuvés

  1. Enregistrez votre application sur developer.apple.com.
  2.  Activez Domaines associés sur l’identificateur de votre application
  3. Activez Domaines associés dans votre projet Xcode
  4. Ajoutez le droit correspondant au domaine
  5. Assurez-vous que le fichier des droits est inclus lors de la création

Si vous utilisez Branch, il n’est pas utile d’aller plus loin. Sinon, passez à la partie deux.

2. Configurez votre site Web pour l’hébergement du fichier apple-app-site-association

  1. Achetez un nom de domaine ou choisissez-en un parmi ceux que vous possédez
  2. Obtenez la certification SSL pour le nom du domaine
  3. Créez un fichier JSON apple-app-site-association structuréприложения Apple и сайта JSON.
  4. Signez le fichier JSON avec la certification SSL
  5. Configurez le serveur de fichiers

Si vous utilisez le service Branch, nous vous évitons toute la complexité de la création des certifications SSL, de la signature et de l’hébergement du fichier JSON de votre serveur, aussi il vous suffit de modifier le code de votre application pour l’exploiter. Nous en parlerons à la fin de cet article.

Remarque: Nous avons également construit un outil permettant de vérifier si votre fichier apple-app-site-association est configuré correctement.

Section 1: Configuration des droits de votre application

Afin d’enregistrer votre projet Xcode pour avoir les liaisons universelles, vous devez créer un ID d’application dans le portail pour développeur Apple et activer les droits concernés. Cela ressemble beaucoup à la configuration requise pour des achats dans l’application.

Vous ne pouvez pas utiliser un identifiant de l’application à caractères génériques pour les liaisons universelles

Enregistrez votre application sur developers.apple.com

Rendez-vous d’abord sur developer.apple.com et connectez-vous. Puis cliquez sur Certificat, identifiants et profils avant de cliquer sur Identifiants.

Apple Developer Portal for Universal LinksApple Dev Portal for Universal Links

Si vous ne disposez pas déjà d’un identifiant d’application enregistré, vous devez en créer un en cliquant sur le signe +. Si vous en avez un, passez à la partie suivante.

Ici, vous devez compléter 2 champs : nom et ID de l’offre groupée. En ce qui concerne le nom, vous saisissez ce que vous voulez. En ce qui concerne l’ID de l’offre groupée, vous devez compléter le champ avec la valeur de l’offre groupée

Explicit App ID for Universal Links

 

Vous pouvez la récupérer en regardant dans l’onglet Généralités de votre projet Xcode pour trouver la cible correct de la version.

Setting up Universal Links in xcode

Activez Domaines associés dans votre identificateur d’applications sur developers.apple.com

Pour trouver votre identificateur d’application pré-existant ou actif, faites défiler jusqu’à la dernière partie et cochez les services Domaines Associés.

Setting up App ID for Universal Links

 

Faites défiler et cliquez sur Enregistrer.

Activez Domaines associés dans votre projet Xcode

Maintenant, vous allez devoir activer le droit des Domaines associés à l’intérieur de votre projet Xcode. Assurez-vous d’abord que votre projet Xcode dispose de la même Équipe sélectionnée que celle dans laquelle vous venez d’enregistrer votre identificateur d’applications. Puis passez à l’onglet Capacités du fichier de votre projet.

Universal Links in xcode

Faites défiler et activez Domaines associés afin que l’accordéon s’ouvre.

setting up associated domain for Universal Links

Si vous constatez une erreur telle que celle-ci, vérifiez que:

  1. la bonne équipe est sélectionnée
  2. l’identifiant de l’offre groupée de votre projet Xcode correspond à celui utilisé pour enregistrer l’identificateur d’applications

Ajouter le droit du domaine

Dans la section des domaines, ajoutez la balise du domaine approprié. Vous devez y ajouter en préfixe applinks:. Dans ce cas, vous voyez que nous avons ajouté applinks:yourdomain.com.

App Links and your domain

Assurez-vous que le fichier des droits est inclus lors de la création

Dernièrement, je ne sais pour quelle raison, Xcode 7 ne contenait pas le fichier de mes droits dans ma version. Dans le navigateur du projet, assurez-vous que votre nouveau fichier de droits est sélectionné pour l’adhésion aux cibles des droits, de manière à le constituer.

Configuring xcode for universal links

 

Si vous utilisez les liaisons Branch, il n’est pas utile d’aller plus loin! Si ce n’est pas le cas, poursuivez votre lecture ou utilisez le bouton ci-dessous pour démarrer l’intégration.

Si vous voulez vous éviter des heures de migraine, vous pouvez vous dispenser de tous les travaux d’hébergement JSON et de certification SSL en laissant simplement les liaisons Branch faire l’hébergement pour vous.

https://dev.branch.io/recipes/branch_universal_links
Cependant, si vous êtes un maniaque du contrôle et avide de châtiments, allez-y, continuez.

Section 2 : Configurer votre fichier apple-app-site-association

Les liaisons universelles transforment l’URL de votre site Web en un lien d’application, aussi il est indispensable que vous utilisiez un serveur Web pour les exploiter. Pour faciliter ce processus, utilisez votre validateur de liaisons universelles pour vérifier si votre fichier apple-app-site-association est configuré correctement.

Choisissez un domaine

Identifiez d’abord le domaine que vous aimeriez utiliser pour vos liaisons universelles. Vous pouvez en enregistrer un nouveau ou en utiliser un existant déjà. Lors de l’enregistrement d’un nouveau, nous préférons utiliser un bureau d’enregistrement propre, non sujet aux spams comme gandi.net.

Obtenir la certification SSL

Vous devez acquérir les fichiers de certification SSL pour le domaine que vous utilisez pour héberger les liaisons universelles. Pour ce faire, vous devez utiliser un service tiers pour enregistrer votre domaine en vue de l’obtention de la certification SSL et pour créer les fichiers dont vous avez besoin. Après avoir prospecté, nous avons opté pour Digicert pour la gestion de branch.io et des sous-domaines associés.

Voici les étapes de la création de votre certification SSL:

  1. Consultez https://www.digicert.com/easy-csr/openssl.htm et complétez le formulaire en haut de la page pour générer une commande openSSL. Laissez cette fenêtre ouverte
  2. Connectez-vous à votre serveur distant
  3. Exécutez la commande openSSL pour générer une demande de signature du certificat (.csr) et un fichier de certification (.cert)
  4. Payez votre certification SSL sur https://www.digicert.com/welcome/ssl-plus.htm.
  5. Attendez que Digicert approuve et vous envoie les fichiers finaux
  6. Enfin, déplacez yourdomain.com.cert, yourdomain.com.key et digicertintermediate.cert dans le même répertoire de votre serveur distant

Créez votre fichier JSON apple-app-site-association

Ce fichier JSON dispose d’une structure tout à fait standard, aussi vous pouvez vous contenter de copier cette version et d’apporter les modifications nécessaires à vos besoins. Je donnerai des détails sur l’emplacement où obtenir les valeurs correctes ci-dessous.

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "T5TQ36Q2SQ.com.branch.sdk.TestBed",
        "paths": ["*"]
      }
    ]
  }
}

Les seuls champs que vous devez changer sont associés à: T5TQ36Q2SQ.com.branch.sdk.TestBed. Il s’agit en fait de deux valeurs associées à une durée. Les deux valeurs se trouvent sur developers.apple.com dans les sections Identificateurs -> ID de l’application. Cliquez simplement sur l’ID de l’application enregistrée comme indiqué ci-dessous.

Configuring Apple ID for Universal Links

Dans cet exemple, associez le préfixe et l’ID à une durée afin que cela ressemble à : T5TQ36Q2SQ.com.branch.sdk.TestBed.

Enregistrez ce fichier JSON sous apple-app-site-association-unsigned.

Signez le fichier JSON à l’aide de vos certificats SSL

Remarque: si vousavez certifié votre domaine en tant que HTTPS, vous pouvez ignorer cette étape et envoyer le JSON en texte clair. Apple’s updated requirements:

Si votre application fonctionne sur iOS 9 ou version ultérieure et que vous utilisez le protocole HTTPS pour файлаapple-app-site-association, vous pouvez créer un fichier de texte brut, qui va utiliser l’application/json, et vous n’avez pas besoin de signer. Si la prise en charge Handoff et Shared Web Credentials dans iOS 8, vous devez signer le fichier comme indiqué dans Shared Web Credentials Reference.

Tous les fichiers apple-app-site-association sur la plate-forme Branch maintenant application/json.

Téléchargez le fichier apple-app-site-association-unsigned sur votre serveur dans le même répertoire que les fichiers de certification et de clé des étapes précédentes. À l’aide de la commande en ligne, modifiez le répertoire de ce dossier et exécutez la commande suivante:

cat apple-app-site-association-unsigned | openssl smime -sign -inkey yourdomain.com.key -signer yourdomain.com.cert -certfile digicertintermediate.cert -noattr -nodetach -outform DER > apple-app-site-association

Cela génère le fichier apple-app-site-association

Configurez le serveur de votre fichier

Très bien! Vous avez donc signé votre fichier apple-app-site-association. Maintenant, vous n’avez plus qu’à configurer le serveur de votre fichier pour qu’il héberge cela pour vous. Il y a quelques conditions:

  1. Il doit être envoyé avec l’en-tête application/pkcs7-mime
  2. Il doit être envoyé à partir du point de terminaison youdomain.com/apple-app-site-association
  3. Il doit renvoyer un code http 200.

Nous avons configuré celui de toutes les applications Branch intégrées à l’aide de nos serveurs de liaisons Node+Express. Au cas où cela pourrait vous être utile, voici le code que nous avons utilisé:

var aasa = fs.readFileSync(__dirname + '/static/apple-app-site-association');
app.get('/apple-app-site-association', function(req, res, next) {
     res.set('Content-Type', 'application/json');
     res.status(200).send(aasa);
});

Guide d’intégration des liaisons universelles pour Branch et iOS 9

Encore une fois, vous pouvez éviter tout le travail d’hébergement de JSON et de certification SSL et simplement utiliser les liaisons Branch pour qu’elles fassent l’hébergement pour vous.
Bonne liaison!