wake-up-neo.net

Universal Links funktioniert lokal, aber nicht von AppStore Apps

Nachdem die App manuell installiert wurde von xCode (mit dem an das MacBook angeschlossenen Gerät), kann ich E-Mails mit einem Link zur Web-App anklicken und diese öffnet sich in der Cordova-App anstelle der Web-App ( wie erwartet ).

Wenn ich jedoch die App von AppStore oder testFlight (mit der gleichen Codebasis) herunterlade und installiere, werden Universal Links ignoriert und die Web-App wird geöffnet.

Wenn ich Apache-Protokolle überwachen und die App manuell installieren, erhalte ich Folgendes:

XX.XX.XX.XX - - [29/Aug/2018:14:32:33 +0000] "GET /.well-known/Apple-app-site-association HTTP/1.1" 200 730 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"

Bei der Installation der App über testFlight oder den AppStore wird diese Datei jedoch nicht angefordert.

Kann mir jemand helfen, selbst einen Anhaltspunkt zu finden, nach dem gesucht werden soll ... Wie kann ich UniversalLink für meine Produktions-App aktivieren?

[EDIT] aus der Antwort von john316

Ich habe die generierte IPA entpackt, die embedded.mobileprovision geöffnet und ich hatte:

<key>Entitlements</key>
<dict>
    <key>keychain-access-groups</key>
    <array>
        <string>XXXX.*</string>     
    </array>
    <key>get-task-allow</key>
    <true/>
    <key>application-identifier</key>
    <string>XXXX.my.domain.com</string>
    <key>com.Apple.developer.associated-domains</key>
    <string>*</string>
    <key>com.Apple.developer.team-identifier</key>
    <string>XXXX</string>
    <key>aps-environment</key>
    <string>development</string>
</dict>

Zugeordnete Domänen sind aktiviert, aber sollten sie nicht ein String-Array mit all meinem applinks:domains haben?

12
Alexandre SIRKO

Nach meiner Erfahrung bei der Beobachtung von Unterschieden, wie Sie sie beschreiben, ist dies in den meisten Fällen auf die unterschiedlichen App-Berechtigungen für Entwicklungs- und Verteilungsprofile zurückzuführen. Auch wenn Sie in Ihren App-Projekteinstellungen eindeutig angeben können, dass Sie bestimmte Funktionen benötigen (in diesem Fall das Kontrollkästchen "Zugeordnete Domänen"), gibt Xcode möglicherweise keinen Fehler während des Signaturvorgangs (beim Exportieren der App zur Verteilung) aus, wenn bestimmte Berechtigungen fehlen im Bereitstellungsprofil. 

Sie können aus zwei Gründen fehlen - sie wurden möglicherweise nicht im Portal für Entwickler.Apple.com für dieses Profil hinzugefügt, oder Xcode hat die Profildatei von diesem Portal nicht aktualisiert. Im letzteren Fall ist es hilfreich, das alte Profil von Ihrer lokalen Festplatte zu löschen, damit Xcode es erneut herunterladen kann.

Um sich zu vergewissern, dass Sie tatsächlich über die Berechtigung com.Apple.developer.associated-domains in Ihrer Verteilungsdatei verfügen, können Sie die IPA-Datei entpacken und nach dem Schlüssel com.Apple.developer.associated-domains im Abschnitt <key>Entitlements</key> wie angegeben here suchen.

Eine andere Möglichkeit zum Debuggen besteht darin, die Geräteprotokolle in der Konsole (Xcode-> Fenster-> Geräte & Simulatoren-> Konsole öffnen) anzuzeigen, wenn die AppStore/TestFlight-Version der App ausgeführt wird. Sie finden eine Protokollzeile, die von iOS ausgegeben wird, wenn der Link in der App für die Dev-Version der App korrekt verfolgt wird, und vergleicht sie mit dem Fall, wenn dieser fehlschlägt. Normalerweise beschwert sich iOS zu diesem Zeitpunkt über fehlende Berechtigungen in den Protokollen.

6
john316

Endlich konnte ich dieses Problem beheben:

Stellen Sie sicher, dass Entitlements-Release.plist die richtigen Berechtigungen enthält. In meinem Fall hatte nur Entitlements-Debug.plist die richtigen Berechtigungen. Wenn Sie Ihre App im letzten Schritt exportieren, sollte normalerweise eine Zusammenfassung der enthaltenen Berechtigungen angezeigt werden. Stellen Sie sicher, dass com.Apple.developer.associated-domains mit dem entsprechenden Eintrag applinks aufgeführt ist.

Es sollte ähnlich aussehen:

 enter image description here

source: https://forums.developer.Apple.com/message/334862

2
menelik

Wenn Sie Cordova/Ionic v3 verwenden

Es ist ein Fehler ...

Überprüfen Sie diese Schritte:

Es gibt vier Prozesse

1.app Konsole

App-IDs -> App-ID auswählen → aktivierte verknüpfte Domänen -> Fertig Bereitstellungsprofil -> Erneut bearbeiten 

  1. Auf Xcode

AppName -> allgemeine <-> Fähigkeit -> Zugeordnete Domänen -> + ->

applinks: example.com

  1. Auf Ihrem Server Laden Sie die Datei für die Apple-App-Standortzuordnung im Stammverzeichnis für http Und den bekannten Ordner für https hoch

Ex - https://www.skyscanner.com/Apple-app-site-association

Ex - https://www.skyscanner.com/.well-known/Apple-app-site-association

Füge diese Datei nicht als json als Text hinzu Ex - von der Apple-App-Site-Verknüpfung

4. (wichtig)

(Cordova) Projektordner Es gibt zwei Dateien: Projekt -> Plattenform -> Ios -> ProjektnameOrdner ->

Entitlements-Debug.plist

Entitlements-Release.plist

Wenn ich den Wert applinks: example.com zu Capabilities-> Associated domains-> Domains hinzufüge, erhielt die Entitlements-Debug.plist die folgenden Zeilen:

 <key>com.Apple.developer.associated-domains</key> <array>  
 <string>applinks:example.com</string> </array>

ABER die Entitlements-Release.plist hat sich nicht geändert. Was ich getan habe, um das Problem zu lösen, ist das Kopieren und Einfügen der generierten Zeilen aus der Entitlements-Debug.plist. Danach habe ich genau den gleichen Archivierungs- und Upload-Vorgang wie zuvor durchgeführt und alles hat gut funktioniert.

und verwenden Sie ionische Plugin-Deeplinks, um Parameter zu erhalten und Ihren Deeplink-Prozess zu steuern

....... Danke später erstelle dein Projekt

0
Amit Pandey