Die Einrichtung von Apple Universal Links

Bist du bereit für eine aufregende Fahrt durch die Welt der App-Entwicklung? Dann schnall dich an, denn heute werden wir über meine Herausforderungen bei der Einrichtung von Flutter uni_links sprechen!

Bei meinen letzten beiden Apps, die ich programmierte, wusste ich, dass ich auch die Einrichtung von App-Links und Universal Links für Android und Apple-Geräte vornehmen musste. Alles schien zunächst glatt zu laufen, bis ich auf ein Problem stieß, das mich fast zum Stillstand brachte.

Die Android-Einrichtung war ein Kinderspiel – einfach die entsprechende Zeile in der Manifest-Datei einfügen, die Datei „assetlinks.json“ in das .well-known Verzeichnis der jeweiligen Website packen und schon war es geschafft. Aber die Einrichtung von Apple Universal Links erwies sich als schwieriger als erwartet. Ich stieß auf ein großes Problem, als ich versuchte, eine Datei namens „apple-app-site-association“ auf meiner Website abzulegen. Damit es dir nicht genauso ergeht, möchte ich meine gewonnen Erfahrungen gern mit dir teilen.

An und für sich ist die Einrichtung der Universal Links ja nicht sehr unterschiedlich zu der Einrichtung der App Links für Android. In XCode und im Entwicklerkonto von Apple muss der jeweiligen App das „Associated Domains“ Entitlement zugewiesen werden und dann die oben erwähnte „apple-app-site-association“-Datei ins .well-known Verzeichnis der Website abgelegt werden. Das Problem war, dass diese Datei keine Dateierweiterung haben darf, aber als JSON-Datei angezeigt werden soll. Oh je, dachte ich mir, wie soll das denn gehen? Wenn ich die Datei über ihre URL aufgerufen habe, wurde sie vom Browser einfach heruntergeladen, sollte aber eigentlich wie folgt angezeigt werden:

https://bread-spy.com/.well-known/apple-app-site-association

Zu diesem Zeitpunkt habe ich meine Seite mit Hostinger gehostet, welches Lightspeed-Server benutzt. Da ich kein erfahrener Web-Developer bin, habe ich mich im Internet informiert, wie man die Anzeige der Datei im JSON-Format bewerkstelligen kann. Hier fand ich heraus, dass das bei Apache Webservern und bei Lightspeed-Servern normalerweise über die sogenannte .htaccess Datei funktioniert. Dort kann man MIME-Types oder auch Content-Types definieren, die dem Browser mitteilen, welche Daten der Server sendet, also zum Beispiel, ob es sich um einen JSON Inhalt handelt. Leider haben alle Lösungen, die ich online gefunden habe nicht die gewünschten Ergebnisse erzielt, woraufhin ich mich an mehrere Experten gewandt habe. Dabei fand ich heraus, dass es nicht zu funktionieren schien, da nur die .htaccess-Datei im Stammverzeichnis Auswirkungen auf die Website hat, aber nicht auf das benötigte .well-known-Verzeichnis zugreifen kann (Bitte korrigiert mich, falls die Erklärung nicht komplett richtig ist).

Ich dachte, ich müsste aufgeben, aber dann hatte ich eine Idee. Ich könnte einfach zu einem anderen Hosting-Anbieter mit einem Apache-Server wechseln! Gesagt, getan – ich wechselte zu Opanhost.com und siehe da, es funktionierte! Ich konnte eine weitere .htaccess-Datei in das .well-known-Verzeichnis ablegen, die den JSON-Dateityp bei der apple-app-site-association forcierte.

Ich möchte an dieser Stelle aber erwähnen, dass Hostinger dennoch eine ausgezeichnete Wahl ist, wenn es um Web-Hosting geht. Wenn du dir also beispielsweise einfach eine WordPress Seite oder ähnliches aufbauen möchtest und nicht auf Universal Links angewiesen bist, schau gern mal bei Hostinger vorbei. Die Website lädt dort sehr schnell und das Control Panel ist sehr übersichtlich und bietet alle wichtigen Funktionen.

https://www.hostinger.de/webhosting

Wenn du allerdings wie ich Universal Links in deine App integrieren willst, empfehle ich dir einen Apache-Webserver. Dabei ist auch zu beachten, dass du dann lieber von WordPress Abstand nehmen solltest. Auch da hatte ich bereits große Probleme App-Links und Universal Links zu implementieren, da das .well-known Verzeichnis als WordPress-Seite aufgerufen wird, diese aber nicht existiert (Auch hier gibt es sicherlich workarounds, die mir aber momentan nicht bekannt sind. Falls du Erfahrungen mit dieser Problematik hast, kontaktiere mich gern unter info@cyberskamp.de, damit ich es hier teilen kann.) Hier findest du einige Beispiele für Hosting Services mit Apache-Servern, die ich bereits genutzt habe und mit denen ich vollends zufrieden bin:

 

Und das war noch nicht alles – ich stellte fest, dass ich das gleiche Problem auf einem Windows-Server hatte. Aber hier war die Lösung etwas einfacher! Ich konnte im IIS (Internet Information Services Manager) unter „MIME Types“ einfach einen MIME-Type „application/json“ hinzufügen und die Datei wurde automatisch als JSON erkannt.

Wie bei jeder Herausforderung gab es Momente der Frustration und des Zweifels. Aber ich gab nicht auf. Ich wusste, dass ich eine Lösung finden würde, und ich tat es auch. Und am Ende hatte ich nicht nur Apple Universal Links erfolgreich eingerichtet, sondern auch meine Fähigkeiten und mein Wissen in der App-Entwicklung und dem Server Management erweitert.

Wenn ich auf diese Erfahrung zurückblicke, erinnert sie mich an das Autofahren. Manchmal stößt man auf Hindernisse auf der Straße, aber man gibt nicht auf. Stattdessen findet man einen anderen Weg oder eine Lösung, um diese Hindernisse zu überwinden und weiterzufahren. Und genau wie beim Autofahren kann man auch in der App-Entwicklung stolz sein, wenn man das Ziel erreicht hat.

Nach dem Wechsel zu Openhost konnte ich endlich Apple Universal Links erfolgreich einrichten. Es war eine Erleichterung zu sehen, dass alles nahtlos funktionierte. Die Erfahrung hat mir gezeigt, wie wichtig es ist, den richtigen Hosting-Provider auszuwählen und die Anforderungen der Tools zu verstehen, mit denen ich arbeite.

Zusammenfassend ist das Flutter uni_links-Paket ein unglaublich nützliches Werkzeug, das es einfach macht, Deep Linking in deiner Flutter-Anwendung einzurichten. Es ist jedoch wichtig, die Anforderungen für die Einrichtung von Android App Links und Apple Universal Links zu verstehen. Insbesondere die Notwendigkeit, eine „apple-app-site-association“ Datei zu erstellen, die ohne Dateierweiterung auf deiner Website gehostet werden muss, kann eine Herausforderung darstellen, wenn dein Hosting-Provider es dir nicht ermöglicht, benutzerdefinierte MIME-Typen hinzuzufügen oder die erforderlichen .htaccess-Dateien zu bearbeiten. Wenn auch du Universal Links einrichten willst, dann empfehle ich dir die folgende Seite, um deine „apple-app-site-association“ Datei zu validieren:

https://branch.io/resources/aasa-validator/

Dort kannst du einfach die jeweilige Domain (z.B. cyberskamp.de) eingeben und das Tool erledigt den Rest. Falls die Datei nicht gefunden wird oder sonst etwas nicht funktioniert, dann zeigt dir das Tool, was genau das Problem ist.

Nun aber los! Ich wünsche dir viel Spaß und Erfolg bei der Einrichtung deiner Deep Links und hoffe, dass dir der Artikel geholfen hat und du nun meine Fehler vermeiden kannst.

Newsletter

Möchtest du über neue und spannende Beiträge regelmäßig informiert werden? Dann melde dich gerne zu meinem Newsletter an.

Weitere
Artikel