web-dev-qa-db-fra.com

Universal Link ne fonctionne pas correctement sur iOS 13 (AASA non téléchargé)

Universal Link fonctionnait bien sur iOS 12, mais j'ai rencontré des problèmes lors de la mise à jour vers iOS 13.1 hier. Les URL qui sont censées ouvrir l'application lorsqu'elles sont tapées ne font que s'ouvrir dans le navigateur. Certains utilisateurs sur iOS 13 ont signalé la même chose.

Encore une fois, je n'ai jamais eu ce problème sur iOS 12.4

Je crois que le fichier AASA n'est pas téléchargé correctement. J'ai essayé d'appuyer sur Open à partir de la bannière qui apparaît au-dessus de Safari lorsque j'atterris sur l'une de mes URL. Cela n'a pas aidé.

Parfois, cela a bien fonctionné après quelques réinstallations et redémarrages, mais lorsque vous réinstallez à nouveau, il cesse de fonctionner.

J'ai trouvé cet article de blog https://ios13.dev/universal-links-debugging-on-ios-13-cjwsux93w001p6ws1swtstmzc qui décrit la visualisation des journaux.

J'ai exporté sysdiagnose et mon swcutil_show.txt le montre pour mon application

Service:              applinks
App ID:               (my app ID)
App Version:          102
Domain:               (app.myurl.com)
User Approval:        unspecified
Site/Fmwk Approval:   unspecified
Flags:                
Last Checked:         2019-09-26 00:48:24 +0000
Next Check:           2019-09-30 23:51:38 +0000

tandis que d'autres applications ressemblent à ceci

Service:              applinks
App ID:               ZL6BUSYGB3.com.Apple.news
App Version:          2300.5
Domain:               news.Apple.com
Patterns:             {"/":"*"}
User Approval:        unspecified
Site/Fmwk Approval:   approved
Flags:                systemApplication
Last Checked:         2019-09-25 18:45:50 +0000
Next Check:           2019-09-30 17:49:04 +0000

Pour une raison quelconque, il manque les Patterns (de AASA) et Site/Fmwk Approval est unspecified.

J'ai également essayé d'exporter sysdiagnose lorsque le lien universel fonctionnait après plusieurs réinstallations et redémarrages. Mon application avait quelque chose pour Patterns avec Site/Fmwk Approval approved

Quelqu'un avait-il rencontré des problèmes similaires sur iOS 13? Toute aide est grandement appréciée

14
TKP

Il semble pour ios13, l'association Apple-site-app-as comme nouveau format

{
  "applinks": {
      "details": [
           {
             "appIDs": [ "ABCDE12345.com.example.app", "ABCDE12345.com.example.app2" ],
             "components": [
               {
                  "#": "no_universal_links",
                  "exclude": true,
                  "comment": "Matches any URL whose fragment equals no_universal_links and instructs the system not to open it as a universal link"
               },
               {
                  "/": "/buy/*",
                  "comment": "Matches any URL whose path starts with /buy/"
               },
               {
                  "/": "/help/website/*",
                  "exclude": true,
                  "comment": "Matches any URL whose path starts with /help/website/ and instructs the system not to open it as a universal link"
               }
               {
                  "/": "/help/*",
                  "?": { "articleNumber": "????" },
                  "comment": "Matches any URL whose path starts with /help/ and which has a query item with name 'articleNumber' and a value of exactly 4 characters"
               }
             ]
           }
       ]
   },
   "webcredentials": {
      "apps": [ "ABCDE12345.com.example.app" ]
   }
}

J'ai mis à jour mon fichier et il semble fonctionner à nouveau.

Modifier: pour conserver la prise en charge d'iOS12:

Ajoutez simplement l'ancien formatage au nouveau:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appIDs": [
          "ABCDE12345.com.example.app"
        ],
        "components": [
          {
            "/": "/help/*",
            "comment": "Authenticate"
          }
        ]
      },
     {
        "appID": "ABCDE12345.com.example.app",
        "paths": [
          "/help/*"
        ]
     },
    ]
  }
}
2
Kevin Amiranoff

Essayez d'ouvrir Paramètres> Safari> Demander le site Web du bureau> Tous les sites Web> Désactiver.

Ce problème se produit plus souvent sur les iPads, car il est plus logique d'afficher les sites Web de bureau sur les grands écrans plutôt que sur les petits.

De Apple forums de développeurs.

Cela a résolu mon problème, super

0
Khanh Nguyen

J'ai eu le même problème avec iOS 13 uniquement et il s'est avéré que depuis iOS 13, l'entrée appID est désormais sensible à la casse. L'identifiant du bundle de mon application et l'entrée dans l'appID du fichier AASA ne correspondent que dans la casse. Exemple:

ID du bundle: TEAMID.com.company.EXEMPLE Entrée AASA:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "TEAMID.com.company.example",
        "paths": [ "*" ]
      }...

Nécessaire pour corriger l'appID dans le fichier AASA et mon problème avait disparu.

0
Kai

Après de nombreux tests, j'ai découvert que le format suivant fonctionne pour iOS12 et iOS13. iOS12, nécessite absolument que chaque entrée de dictionnaire details contienne les paramètres appID et paths pour fonctionner correctement. iOS13 d'autre part s'attend à ce que la première entrée contienne à la fois appIDs et components. Cela signifie que la première entrée doit absolument contenir les 4 paramètres pour prendre en charge les deux plates-formes pour le remplissage automatique (avec l'invite d'enregistrement du mot de passe) et les liens universels.

Ironiquement, ce format ne passe pas le Apple App Search Validation Tool API, mais il fonctionne pour celui de la branche ... FTS! Notez également qu'avoir votre nom d'utilisateur et votre mot de passe UITextField sur différents VC ne ne fonctionne pas (vous n'obtiendrez pas l'invite de sauvegarde du mot de passe). J'ai dû ajouter un "faux" nom d'utilisateur UITextField sur notre écran de mot de passe afin qu'il soit récupéré par le système d'exploitation et ne le masque pas, ni ne fasse ni largeur ni hauteur 0px en gros, faites-le 1x1px, avec du texte et un arrière-plan clairs et remplissez-le avec votre nom d'utilisateur du précédent VC).

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appIDs": [ "ABCDE12345.com.domain.app", "ABCDE12345.com.domain.app2" ],
        "appID": "ABCDE12345.com.domain.app",
        "components": [
          {
            "/": "/documentationsucksforios13",
            "comment": "This documentation is awful"
          }
        ],
        "paths": [ "/documentationsucksforios12" ]
      },
      {
        "appID": "ABCDE12345.com.domain.app2",
        "paths": [ "/validationtoolsdontwork" ]
      }
    ]
  },
  "webcredentials": {
    "apps": [ "ABCDE12345.com.domain.app" ]
  }
}
0
Sylvain Gravel

Nous rencontrions un problème similaire. Après la mise à niveau vers iOS 13.1.2, il semble fonctionner correctement maintenant. Donc Apple a probablement résolu le bogue de leur côté.

0
Tameem Iftikhar