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
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/*"
]
},
]
}
}
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
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.
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" ]
}
}
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é.