web-dev-qa-db-fra.com

Le lien dynamique Firebase n'ouvre pas l'application iOS

J'ai développé et installé une application iOS localement sur mon appareil.

Et ont défini un schéma personnalisé dans info.plist comme mydlink

Définissez les domaines associés comme weel: applinks:<myapp>.app.goo.gl

Lien dynamique créé sur Firebase comme:

https://<myapp>.app.goo.gl/?link=http://<mysite.com>/&ibi=<app bundle id>&ius=mydlink&ifl=https://iTunes.Apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id%3D<app store id>%26mt%3D8&pt=<app store id>

Lorsque j'ouvre ou clique sur un lien dynamique, il ouvre la page de l'application dans l'application "App Store" et n'ouvre pas l'application elle-même si elle est installée.

Qu'est-ce que j'oublie ici?

26
kalpeshdeo

Si vous êtes sur iOS 9, des liens universels seront utilisés. Les liens universels ne fonctionnent pas dans de nombreux cas, comme:

  • Si vous utilisez un simulateur
  • Si vous essayez d'ouvrir le lien directement en safari sur un appareil (en le tapant dans le champ d'adresse du navigateur)

J'ai passé beaucoup de temps à essayer cela et je n'ai jamais pu le faire fonctionner sur un simulateur de manière fiable. Ce que je finis par faire, c'est de m'envoyer le lien par e-mail et de l'ouvrir à partir d'Inbox. Ensuite, cela fonctionne à chaque fois!

12
Heinrisch

Je suis désolé pour la réponse tardive - j'espère que votre problème a été résolu et que cela est utile à d'autres qui peuvent rencontrer le même problème.

Il pourrait y avoir un ou plusieurs problèmes ici pour iOS 9+; Dynamic Links s'appuie sur les liens universels d'Apple pour ouvrir l'application sur iOS 9+ et ces suggestions visent à résoudre les problèmes avec Universal Links et Firebase et n'ont rien à voir directement avec le SDK.

  1. Vérifiez que le fichier assoc est correct sur https: // app_id .app.goo.gl/Apple-app-site-association - il devrait ressembler à https://maps.app.goo.gl/Apple-app-site-association mais avec un seul élément dans "détails".
  2. Comme indiqué par une autre réponse, vérifiez que votre ID d'équipe est correctement défini dans la console Firebase.
  3. Si vous avez appuyé longuement sur le lien, puis cliqué sur "Ouvrir dans Safari" ou que vous avez cliqué sur le bouton "goo.gl>" dans la barre d'état de votre application après que l'application s'est ouverte via un lien universel, alors iOS ouvre par défaut Liens universels dans Safari. Cela peut être résolu en tirant vers le bas sur la pagination ouverte dans Safari et en cliquant sur "Ouvrir dans l'application" (ou similaire) sur la bannière intelligente.

Le paramètre "ibi" n'est pas impliqué dans l'ouverture de l'application dans un clic post-installation sur iOS 9+, mais il est dans les versions antérieures lorsque le paramètre "ius" n'est pas défini.

En ce qui concerne iOS 8, pouvez-vous essayer d'exécuter l'application, puis de cliquer sur un lien une fois l'application installée? Sur les versions antérieures à iOS 9, vous pouvez tester en copiant/collant le lien dans safari.

https://firebase.google.com/docs/dynamic-links/ios

8
iamthearm

J'ai rencontré le même problème. Fait intéressant, si vous ouvrez le lien dynamique dans Chrome, l'application démarre directement et avec succès. Mais dans Safari, il essaie toujours d'ouvrir l'AppStore bien que l'application soit installée. Je ne sais pas pourquoi Safari ne fonctionne pas dans ce cas.

3
icould

parfois, nous commettons une erreur dans les droits des domaines associés. Il ne doit pas y avoir d'espace

applinks:mydomain.page.link
3
protspace

J'ai rencontré le même problème.

La solution pour moi était d'utiliser le

Identifiants -> ID d'application -> 'my.app.ID' -> Préfixe

Vous pouvez le trouver sur: https://developer.Apple.com/account/ios/identifier/bundle

À la place du 'DevelopmentTeam' numéro du .pbxproj que j'ai utilisé et l'ajouter au Team ID pour mon application iOS dans la console Firebase.

Et n'oubliez pas de télécharger et d'ajouter un nouveau .plist au projet.

2
Iris Veriris

Les liens dynamiques Firebase ne fonctionnaient pas pour nous (sur iOS9 où ils utilisent des liens universels) en raison d'un problème dans les hypothèses de Firebase lors de la configuration. Voici comment nous avons résolu le problème sur notre application:

Firebase vous demande votre "Team ID" lors de l'ajout de votre application iOS aux paramètres de projet de la console Firebase, et il suppose que votre ID d'application unique sera au format TeamID.com.foo.bar

Cependant, dans notre cas, ce n'était PAS notre ID d'application unique. Quand j'ai regardé notre profil d'approvisionnement (sur developer.Apple.com, j'ai trouvé notre profil d'approvisionnement et cliqué sur "modifier"), j'ai vu que notre ID d'application unique était en fait SomethingElse.com.foo.bar

Je devais aller dans la console Firebase et saisir ce "SomethingElse" à l'endroit où il demandait l'ID de l'équipe, même si ce n'était PAS notre ID d'équipe. Une fois cette modification effectuée, Firebase Dynamic Links a commencé à fonctionner correctement.

Il semble que Firebase suppose que votre ID d'application unique commencera toujours par votre ID d'équipe, ce qui n'est apparemment pas toujours le cas.

Notez que la modification de votre ID d'équipe peut prendre beaucoup de temps pour prendre effet. Vous pouvez voir que le changement s'est produit en vérifiant le lien approprié pour votre app_id ( https://app_id.app.goo.gl/Apple-app-site-association ).

2
dacoinminster

Bonjour les gars, j'ai une excellente nouvelle.

J'écoute toujours qu'il est [~ # ~] impossible [~ # ~] de tester un lien dynamique sur simulateur.

Mais nous avons découvert cela, et maintenant WE PEUT tester le lien dynamique Firebase sur le simulateur

https://stackoverflow.com/a/56385506/62730

1
Jackson Smith

Lorsque le lien est ouvert en safari, il affiche un bouton "Ouvrir (nom du projet)". Si vous appuyez sur ce bouton pendant 2-3 secondes, il vous demande de l'ouvrir dans différentes applications pour la première fois. Il affiche également le nom de votre application. Si vous sélectionnez votre application, il ouvre votre application. Après cela, si vous ouvrez à nouveau ce lien et appuyez sur le bouton en safari, cela fonctionne toujours bien.

Cela a résolu le problème pour moi.

1
Pankaj Jangid

Après avoir intégré les liens dynamiques Firebase, l'exemple de lien a commencé à fonctionner immédiatement sur un appareil avec iOS 8. Pour les appareils iOS 9, le mécanisme de liens universels est utilisé, comme mentionné par d'autres réponses. Cela signifie Apple doit mettre à jour les données d'autorisation utilisées pour vérifier la double authentification par lien profond. Cela peut prendre 48 heures, selon Apple App Search API Validation Tool .

Il existe d'autres conseils de dépannage des liens universels ici .

0
Vladimir Grigorov

Si aucune des solutions ci-dessus ne fonctionne pour vous, veuillez vérifier si vous avez ajouté ou non une activité continue dans les domaines associés.

Followin image shows the exact place where you have to add that(if you havn't done that already)

0
Abhijeet Jaiswal

Assurez-vous d'avoir un ID d'équipe défini dans la console Firebase pour votre application. (vous devrez ensuite télécharger et importer le fichier .plist).

Cela a résolu le problème pour moi.

0
Sat Mandir Khalsa