2017-12-20 4 views
5

Ich habe zwei Build-Konfigurationen: App und App Stage.iOS Associated Domains - Subdomains scheint ignoriert werden

Jede Konfiguration hat verschiedene Associated Domains konfiguriert: app.mydomain.com und app-stage.mydomain.com.

Natürlich jede Website setzt verschiedene apple-app-site-association Dateien: app.mydomain.com/apple-app-site-association und app-stage.mydomain.com/apple-app-site-association (HTTP 200 , ohne .json Erweiterung, etc.).

Das Problem ist, dass nur die erste registrierte Domäne (leider ist es Bühne) ordnungsgemäß funktioniert. Wenn ich beide Apps installiert habe, öffnet jeder Deep-Link (app.mydomain.com/home und app-stage.mydomain.com/home) die App Stage. Wenn ich nur App Sage installiert habe, öffnen auch beide Links es. Wenn ich nur App installiert habe funktioniert keine Verbindung. Es sieht so aus, als ob die Subdomain Associated Domains ignoriert wird und nur mydomain.com berücksichtigt wird.

Ich gehe davon aus, dass Build-Konfigurationen korrekt definiert sind, da ich auch andere Einstellungen wie Facebook, Google und andere unterscheide.

Haben Sie jemals ein ähnliches Problem festgestellt? Ist es erlaubt verschiedene Subdomains der gleichen Domain für die Associated Domains Nutzung zu verwenden?

UPDATE:

Nach @ clayjones94 Anweisungen, überprüfte ich, ob jede App-Downloads eine korrekte JSON-Datei mit Charles Proxy. Ich habe herausgefunden, dass die App Stage die richtige Datei holt, während die App keine Datei abruft.

ich auch URL in app-stage.mydomain.com/apple-app-site-association HTTP-Anforderung in Charles bearbeitet haben, um sicherzustellen, dass app.mydomain.com/apple-app-site-association gibt den richtigen JSON zurück. Als ich -stage von der URL entfernte und den Aufruf wiederholte, hat es eine andere JSON-Datei abgerufen, also habe ich bestätigt, dass das Backend für beide Konfigurationen korrekt funktioniert.

Zuerst dachte ich, dass meine Build-Konfigurationen falsch waren. Also entschied ich mich, App applinks:app.mydomain.com zugehörige Domäne durch Stages applinks:app-stage.mydomain.com zu ersetzen, um zu sehen, ob App-Konfiguration in der Lage ist, App Stage-Datei zu holen. Es funktionierte, die App hatte die JSON-Datei von App Stage heruntergeladen. Auch hier scheint die Subdomain Associated Domains wird ignoriert und nur die erste registrierte Subdomain wird berücksichtigt.

+0

Können Sie Ihre Zugriffsprotokolle auf Ihrem Server sehen, um zu sehen, was angefordert wird? Funktioniert 'mydomain.com/apple-app-site-association'? –

+0

Ja, es kann mit Erfolg (HTTP 200) abgerufen werden und es sieht fast genauso aus wie die Stage-Subdomain 'apple-app-site-association' -Datei - nur die Bundle-ID ist anders (beide Apps sind im selben Team). – KlimczakM

Antwort

0

Es gibt nichts wie Domäne & Subdomain Konzepte, wenn es um Universal Links (App Domains) kommt. Ich denke, es sollte ein Problem mit Apple-Site-Association-Dateikonfiguration sein.

Bitte überprüfen Sie die Apple-Site-Association-Konfigurationen in Bezug auf die AppID Feld. Ich bezweifle, dass Sie die gleiche appID in beiden Dateien platziert haben.

Sie sollten verschiedene AppIDs für die beiden Konfigurationen haben.

+0

Vielen Dank für Ihre Antwort. Die 'apple-app-site-association' Dateien unterscheiden sich, Stage App appID Eintrag:' "appID": "3U ****** 2D.de.k **** a.app-stage", App appID Eintrag: '" appID ":" 3U ****** 2D.de.k **** a.app "'. Ich hoffe, es ist kein iOS-Bug, wie der mit stillen Benachrichtigungen auf iOS11 ... – KlimczakM

+0

Haben Sie noch andere zugehörige Domains aufgelistet? –

+0

Nein, das ist das einzige. – KlimczakM

1

Wenn Sie die Apple App Site Association-Datei abrufen, sollte Ihr Betriebssystem beide separat herunterziehen. Ich empfehle, beide Apps zu löschen und das Telefon neu zu starten, um sicherzustellen, dass keine alten AASA-Dateien zwischengespeichert werden.

Wenn Sie die Apps wieder auf Ihrem Telefon installieren, können Sie mithilfe von Charles Proxy feststellen, ob bei jeder Installation die richtige AASA-Datei abgerufen wird. Da Sie in Ihren verknüpften Domänen beide URLs haben, werden bei jeder Installation beide AASA-Dateien abgerufen. Wenn Ihre Produktions-App nicht herunterfährt, könnte es sich um eine Apple issue handeln und Sie müssen die App einfach löschen und es erneut versuchen.

Wenn Sie überprüfen, dass beide AASA-Dateien für jede App heruntergezogen werden, sollten Sie überprüfen, ob die appIDs korrekt sind (wie es scheint). Wenn beiden Apps sowohl Domänen als auch beide AASA-Dateien mit den korrekten appIDs zugeordnet sind, sollte Ihr Betriebssystem je nach Link die richtige App öffnen. Wenn dies immer noch nicht funktioniert, könnte dies bedeuten, dass Ihre AASA-Dateien von Berechtigungen signiert wurden, die mit Ihrer Staging-App, nicht aber mit Ihrer Produktions-App verknüpft sind.

Ich empfehle die Verwendung Branch für Ihre universelle Verknüpfung. Branch verfügt über Testlinks, mit denen Sie Links für Ihre Prod-App testen können, und Sie sollten in der Lage sein, für Ihre Staging-App eine separate App für Branch zu erstellen, sodass Sie für beide unterschiedliche Links haben. Das Schöne daran ist, dass wir das gesamte AASA-Handling für Sie übernehmen und signieren werden. Der Deep Linking-Dienst ist kostenlos und wir führen eine verzögerte Deep-Linking-Funktion aus.

+0

Danke für Ihre Antwort! Als ich Charles verwendete, um zu überprüfen, ob jede App eine richtige Datei herunterlädt, fand ich heraus, dass App keine AASA-Datei herunterlädt, während App Stage die richtige Datei herunterlädt! Jetzt untersuche ich warum. – KlimczakM

+0

Bitte überprüfen Sie die aktualisierte Frage. Als ich die mit der App Stage verbundene Domäne für die App verwendet habe (der Domäne im Xcode wurde nur "Bühne" hinzugefügt), hat die App die App Stage JSON-Datei heruntergeladen (zuvor hat sie nichts abgerufen). – KlimczakM

+0

Hmm das sollte nicht der Fall sein. Branch-Apps holen tatsächlich AASA-Dateien aus zwei verschiedenen Subdomains. Wir haben eine "-alternative" ähnlich wie Ihre "Bühne" für jede App. Die alternative Domain wird verwendet, wenn sich ein Benutzer in der ursprünglichen Subdomain befindet und eine Deep-Link-Verbindung zur App herstellen möchte (Apple hat eine Einschränkung dahingehend, dass Universal Links nicht zur nativen App wechseln kann, wenn sich ein Benutzer in dieser Domain befindet). Sehen Sie sich meine Test-Apps AASA unter http://q1hv.app.link/apple-app-site-association und die alternative AASA unter http://q1hv-alternate.app.link/apple-app-site-association an. Es scheint, als ob die AASA-Datei von App nicht korrekt gehostet wird. – clayjones94

Verwandte Themen