Vous n'avez pas encore de notification

Page d'accueil

Options d'affichage

Abonné

Actualités

Abonné

Des thèmes sont disponibles :

Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !

iOS 9 : Apple corrigera le problème des liens universels bloqués

Un rien d'exagération
Mobilité 3 min
iOS 9 : Apple corrigera le problème des liens universels bloqués

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.

7 commentaires
Avatar de idfx Abonné
Avatar de idfxidfx- 29/03/16 à 15:40:10

Le problème persiste chez moi meme apres la mise à jour de booking... Pas chouette, quoique une bonne opportunité de tester les navigateurs tiers ;-)

Avatar de jb18v Abonné
Avatar de jb18vjb18v- 29/03/16 à 15:53:53

9.0.2 :8

Avatar de Isshun INpactien
Avatar de IsshunIsshun- 29/03/16 à 18:53:59

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)

Avatar de Oz_zO INpactien
Avatar de Oz_zOOz_zO- 30/03/16 à 07:33:25

Isshun a écrit :

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 ? 

 
La fonctionnalité que tu décris existe depuis des années sous iOS, ce sont les deeplinks. Les principaux problèmes avec cette solution sont :

  • L'utilisation d'un scheme particulier, les deeplinks commencent par nxi://collection/id, etc.
  • Le fait que n'importe quelle app peut se déclarer comme supportant les liens nxi.
  • Le fait que le système choisit arbitrairement l'app qui ouvrira le lien, parmi les apps éligibles (à la différence d'Android qui propose le choix à l'utilisateur).

  

Isshun a écrit :

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). 

Les avantages des liens universels :

  • Le manifeste hébergé sur le site permet de définir des applications officielles.
  • Le manifeste hébergé sur le site permet de répartir les différentes syntaxe/URL du site sur plusieurs applications. 
  • Et surtout de changer cette configuration sans passer par une update sur l'App Store :D.

Ca n'invalide pas ce que tu as dit : l'app cliente doit savoir analyser l'URL qu'elle reçoit pour afficher le contenu adéquat. 

Avatar de zethoun Abonné
Avatar de zethounzethoun- 30/03/16 à 07:45:39

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??

Avatar de Antwan Abonné
Avatar de AntwanAntwan- 30/03/16 à 08:33:39

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 ?

Avatar de Oz_zO INpactien
Avatar de Oz_zOOz_zO- 30/03/16 à 09:40:40

Antwan a écrit :

Ils espéraient faire du SEO avec un fichier de 2Mo ? 

On dirait :mdr:.
 

zethoun a écrit :

[..] 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 ^^). [...] 

C'est aussi le comportement que l'on avait ressortit de la doc ...

Il n'est plus possible de commenter cette actualité.