Une fonctionnalité mise en place par Apple dans iOS 9 provoque des problèmes chez certains si elle est mal utilisée par les applications tierces. Les « liens universels » peuvent ainsi ne pas s’ouvrir s’ils font référence à des fichiers trop lourds. Explications.
Les liens universels sont une fonctionnalité qui vient compléter en quelque sorte les liens profonds. Ces derniers permettent pour rappel d’appeler directement une application tierce depuis une page web. Les liens universels répondent à un besoin lié et complémentaire : un éditeur peut choisir que son site officiel renvoie systématiquement vers l’application qui lui correspond.
Une fonctionnalité censément pratique
Pour l’utilisateur, cette fonctionnalité est bien entendu censée être transparente. Depuis un email, un SMS ou un autre site par exemple, tout lien pointant vers le fameux site officiel redirigera vers l’application correspondante, normalement plus adaptée à une utilisation tactile. La traduction se fait par un petit fichier placé sur le site, comprenant les adresses à renvoyer vers l’application.
Durant le long week-end de Pâques, un certain nombre de problèmes sont apparus. Des utilisateurs se retrouvaient ainsi dans l’incapacité d’ouvrir des liens depuis Mail. Cliquer sur ces derniers provoquait un blocage temporaire, suivi d’une inaction. Ainsi, là où Safari aurait dû s’ouvrir, il ne se passait rien. Petit à petit, le problème s’est resserré sur un cas bien particulier : Booking.
Une encyclopédie de liens
L’explication a fini par être trouvée. L’entreprise, pour ne visiblement rater aucune opportunité de renvoyer vers son application mobile, avait inséré dans le fameux petit fichier texte la totalité des adresses de ses pages. Le fichier, qui ne devrait normalement pas dépasser les quelques Ko, pesait du coup 2,3 Mo. Conséquence, chaque fois qu’un utilisateur cliquait sur un lien de type Booking.com, pour vérifier par exemple l’intérieur d’une maison à louer, il provoquait en fait le téléchargement puis l’analyse de ce fichier, provoquant un ralentissement puis un plantage de cette mécanique.
Il n’existait par ailleurs aucun recours. Même si le souci semble empirer avec iOS 9.3, il existait déjà avant, et des utilisateurs toujours sous iOS 9.2.1 ont constaté eux aussi le problème. Taper l’adresse à la main ne change rien, tandis qu’un appui long sur le lien provoque carrément le plantage de l’application en cours.
En fait, la faute est bien double. Un peu plus tard dans le week-end, Booking a modifié le fichier de stockage des liens pour en réduire drastiquement le volume. Résultat, de 2,3 Mo, il s’est littéralement effondré à 4 Ko. Cependant, et bien que Booking ait largement exagéré avec cette fonctionnalité, il existe un problème du côté d’Apple : même si le fichier est volumineux, il ne devrait pas provoquer un blocage ou un plantage de l’application.
Apple corrigera le problème de son côté
Du côté de chez Apple, on a également reconnu le problème : « Nous sommes au courant de ce dysfonctionnement et nous distribuerons bientôt un correctif dans une mise à jour système ». Techniquement, on ne sait pas d’où vient le problème dans le système mobile. Ce pourrait être dans le parsing du fichier texte, un simple bug dans l’analyse des liens qui provoquerait alors un blocage en cas de liste trop longue.
Le développeur Ben Collier, qui a suivi l’affaire de près sur les derniers jours, indique de son côté que le souci pourrait être lié aux Shared Web Credentials. Il s’agit d’une fonctionnalité dans iOS qui permet de stocker dans le Trousseau des identifiants et mots de passe utilisés sur le web. Lorsqu’une application officielle est installée, ces identifiants lui sont directement proposés pour éviter à l’utilisateur qu’il les saisisse à nouveau.
Il faudra donc attendre qu’Apple publie sa mise à jour pour être certain que le problème n’existe pas. Cela étant, si aucun éditeur n’exagère avec le fichier d’échange des liens pendant cette période, le souci ne devrait plus se manifester à nouveau.
Commentaires (7)
#1
Le problème persiste chez moi meme apres la mise à jour de booking… Pas chouette, quoique une bonne opportunité de tester les navigateurs tiers ;-)
#2
9.0.2 " />
#3
Je n’ai peut être pas bien compris le problème mais ces liens universels ne devrait-ils pas être déclarés dans l’application et non sur le site ?
C’est l’appli qui va prendre en charge l’ouverture, donc c’est à elle d’indiquer au système quels formats d’url elle prend en charge, lorsque j’ouvre un lien magnet je n’attend pas du site qu’il est listé toutes les applications qu’il connait ni le détail de leurs structure interne, idem lorsque je rencontre un lien mailto.
(J’ai bien compris que cette fonctionnalité prend en charge des url préfixées en http/s donc mes exemples se trouvent être un peu simplistes mais ça reste presque aussi simple à gérér).
Quand au simple fait de devoir télécharger un fichier avant d’accéder à la ressource en question cela me rappel de mauvais souvenir que j’espérai être révolus (flashcode <3)
#4
#5
je n’ai pas compris un truc. On s’est penché un peu sur les Universal Links au boulot, et ce qu’on avait compris c’est que le fichier apple-app-site-association n’etait récupéré et checké qu’une seule et unique fois, lors du premier lancement de l’app (ou à l’install, je ne sais plus ^^).
là ce qui est décrit, l’app/iOS va checker ce fichier à chaque appel??
#6
Pour créer un fichier apple-app-site-association de plus de 100ko il faut le faire, quand on sait qu’on peut utiliser des regex pour matcher les URL c’est assez ridicule. Ils espéraient faire du SEO avec un fichier de 2Mo ?
#7