Im Rahmen eines unserer Projekte wurden wir, nervenraubenderweise, mit einem vermutlichen Software- Bug im Zusammenspiel von Apple TV, „Internet Sharing“ und einer bestehenden VPN- Verbindung konfrontiert.

Folgende Ausgangssituation:

Ein Kunde aus dem Ausland kontaktiert uns mit der Bitte seine bestehende iOS app bzw. die darin enthaltenen Video- Streaming Funktionalitäten zu optimieren.
Die app stellt Anwendern in bestimmten Regionen diverse Video- Streaming Angebote zur Verfügung, welche auch bequem via Apple TV konsumiert werden sollen.
Die regionale Beschränkung stellt in der heutigen Zeit, dank der zahlreichen verschiedenen vorherrschenden Gesetzeslagen, keine Seltenheit dar.
Eine solche „Sperre“ wird üblicherweise dadurch realisiert, das bestimmte IP- Adressgruppen, welche wiederum eindeutig Ländern zugeordnet werden können, vom Angebot ausgeschlossen werden.

Da wir nun mit der Aufgabe der Optimierung der bestehenden App beauftragt wurden und wir als Entwickler selbst nicht in einer der erlaubten Ländergruppen residieren, haben wir für derartige Situationen selbstverständlich einen erprobten Workflow.

Setup der Testumgebung:

  • Apple TV 2 (6.0.2)
  • iPad mini (7.0.4)
  • iMac – Mac OS 10.9.1
  • VPN Verbindung (l2tp)

Wir verbinden den iMac via ethernet mit einem VPN Server, welcher sich in einer der erlaubten Ländergruppen befindet.
Diese Verbindung geben wir via „Internet Sharing“ auf der Wi- Fi Schnittstelle frei.
Üblicherweise wählen wir unter den Optionen hierfür einen beliebigen Channel, und vergeben ein „WPA2 Personal“ Passwort.

Internet Sharing mit WPA2 Passwort

Internet Sharing mit WPA2 Passwort

iPad und Apple TV werden mit dem neu erstelltem WLAN verbunden.

Durch die vom VPN Server zugewiesene IP- Adresse sind wir nun in der Lage die digitalen Angebote innerhalb der app unseres Kunden zu nutzen.
Jedoch mit einer erheblichen Einschränkung: airplay funktioniert nicht!
An der Stelle an der, normalerweise, das bekannte AirPlay- Icon auftaucht, sehen wir nichts…

Nach langen debugging- und Evaluationsprozessen gelang es uns die Ursache für diesen Umstand ausfindig zu machen.
Sobald wir die „Security Options“ unseres Internet Sharings auf „none“ setzten, tauchte auch wieder das AirPlay Icon auf. Hinterlegten wir wieder ein Passwort, blieb das Icon fern.
Dabei spielte es keine Rolle aus welchen Zeichen sich dieses WPA2 Kennwort zusammensetzte. (Diesen vermeintlichen Bug haben wir apple selbstverständlich umgehend mitgeteilt.)

Eines steht jedoch fest: wir möchten unter keinen Umständen ein freies, ungeschütztes WLAN mit angebundener VPN Funktionalität betreiben. Es muss eine andere Lösung her.

Da iOS selbst die Möglichkeit bietet VPN- Verbindungen herzustellen, haben wir kurzerhand hier unsere Verbindungsdaten hinterlegt und initiieren VPN- Verbindungen nun direkt vom iPad aus.

iOS VPN Settings

iOS VPN Settings

Übergeben wir jetzt diesen Video Stream an Apple TV (via AirPlay), scheint dies zunächst auch zu funktionieren.
Erst nach wenigen Minuten fällt uns hier ein weiterer Missstand auf, welcher den Video Stream unter Apple TV abbrechen lässt.
Der Grund dafür ist, dass die App nach wenigen Augenblicken den anhaltenden Video Stream an Apple TV übergibt. Ab diesem Zeitpunkt besteht nun keine Verbindung mehr zwischen iPad und Video Stream, sondern zwischen Apple TV und Video Stream.
Da wir unter Apple TV aber nach wie vor keine Möglichkeit haben VPN Verbindungen zu initiieren, bricht der Stream natürlich unmittelbar ab. Die IP- Adressensperre erledigt ihren Job gewissenhaft…

Aber auch hierfür gibt es einen Workaround. Das entscheidende Schlüsselwort lautet: „Mirroring“
Undzwar bietet uns iOS im Control Center die Möglichkeit diese Option zu aktivieren und anschließend den kompletten Bildschirminhalt des iPads in Echtzeit an Apple TV zu streamen.

AirPlay Mirroring

AirPlay Mirroring Option

Starten wir nun die von uns optimierte App bzw. die darin enthaltenen Video Streams bei bestehender VPN Verbindung vom iPad aus, wird der Inhalt via AirPlay an unser TV Gerät gestreamt und die Verbindung bleibt bestehen.
Ein kleiner Wermutstropfen ist die etwas „verschobene“ Auflösung der abgespielten Videos.
Für unser Anwendungsgebiet ist dies jedoch durchaus vertretbar, da wir im Grunde genommen nur die korrekte Funktionsweise verifizieren und nicht den eigentlichen Content konsumieren möchten.