Universal Links

Zuletzt aktualisiert am 2. September 2020 durch kisser

Was sind Universal Links eigentlich? Das sind diese Angaben auf Webseiten, um die – allerdings installierte – App dieser Seite anstelle der Webvariante auszuführen.

Wodurch weiß die Webseite, dass es eine App gibt, die mit dieser Webseite assoziiert ist? Des Rätsels Lösung ist die AASA – die Apple App Site Association, eine JSON-Datei, die alles beinhaltet.

Dabei gibt der erste rote Kasten die Apple Team ID an (zu finden unter “Certificates, Identifiers & Profiles” im Developer-Bereich bei Apple). Der zweite Wert ist die Bundle ID, die entweder per Xcode (erkennbar am XC bei der App ID) oder im Developer Portal erstellt wird.

Wichtig ist, dass bei der App ID das Entitlement “Associated Domains” ausgewählt ist. In Xcode wird dann bei den Einstellungen die Webseite angegeben, auf der sich die AASA-Datei (die Apple-JSON-Datei von oben) befindet. Die AASA kann entweder im WWW-Root liegen oder aber in einem versteckten Directory “.well-known”. Ich habe sie ins Root gelegt. Es gibt verschiedene Aussagen, die besagen, dass das mit dem Hidden-Directory entweder geht oder nicht, je nach dem wo man im Web schaut.

Zu der Associated Domain muss nun noch das Entitlement in Xcode angeben werden. Ich habe den Hinweis gelesen, wenn der Build gemacht wurde im Projektverzeichnis zu schauen, ob wirklich die “Projektname”.entitlement-Datei im Projekt mitenthalten ist. Ich selber hatte hiermit keine Probleme.

Der URL-Präfix bei der Associated Domain und dem Entitlement muss (für diesen Fall) zwingend “applinks:” heißen.

Wenn das Projekt angelegt wird, ist ja – wie immer – die Bundle ID zu wählen. Diese muss ja zwingend mit der App ID korrelieren (wenn Xcode die Arbeit macht, kein Problem). Auch das Provisioning Profile muss natürlich die App ID beinhalten.

Was machte das ganze so schwierig und nervig? Die Anleitungen, die man im Netz bei Apple oder woanders findet, sind recht eindeutig. Doch es hat Stunden gedauert, bis ich schlußendlich den Universal Link hatte.

Folgend Dinge haben (mir) geholfen:

1. Eine .htaccess-Datei, die https erzwingt (sonst geht das lt. Apple nicht mit den Universal Links).
2. Das Erzwingen, dass die AASA-Datei an Apple mit dem richtigen MIME-Type JSON ausgeliefert wird.
3. Die AASA sollte man wie folgt erstellen: Touchen im Terminal, danach wurde sie per Terminal-Befehl in Visual Studio Code geöffnet und dann der der Inhalt eingepasted und gesichert. Ich habe sie auch getouched, dann aber mit Xcode bzw. TextWrangler erstellt. Ich habe sie dann mit Cyberduck übertragen und auf dem Webspace in den korrekten Namen umbenannt.
4. Das aber wohl alles entscheidende war die Tatsache, dass ich die Webseite nach unten gezogen habe. Und Wunder: Der Universal Link kam zu Tage.

Er deutete sich mit zart durschimmerndem Magenta links oben (rote Quadrat) als App Icon leicht an. Doch es hat sehr lange gedauert, bis ich das mit dem Runterziehen begriffen habe.

Was ich noch rausfand, dass ein schlankes

<p align=”CENTER”><b><a href=”https://ikisser.de/UniLnkTst/index.html”><img src=”./images/ULT-app-icon.jpg”></b></p>

auf de Startseite den Universal Link nicht auf der Unterseite “UniLnkTst” anzeigt, nein es wird sofort die App gestartet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

* Die DSGVO-Checkbox ist ein Pflichtfeld

*

Ich stimme zu