Apps kabellos auf iPhone und iPad kompilieren

Bereits seit längerem (wenn ich mich recht entsinne seit Xcode 9, bin mir da aber nicht 100%ig sicher) gibt es ein interessantes Feature in Apples Entwicklungsumgebung, das es erlaubt, Apps kabellos auf iPhone und iPad zu kompilieren und auszuführen. Es ist somit nicht mehr zwingend nötig, ein Testgerät mittels Kabel mit dem Mac zu verbinden, um eine iOS-App darauf installieren zu können (auch wenn es in gewissen Fällen weiterhin durchaus Sinn macht, dazu später mehr).

In diesem Artikel möchte ich euch dieses kleine aber feine Feature einmal kurz vorstellen und auf dessen Vor- und Nachteile eingehen.

Aktivierung der kabellosen Übertragung

Entwickelt man heute Apps für iOS und möchte diese über Xcode auf einem „richtigen“ Endgerät ausführen, bleibt zunächst einmal alles beim Alten. Soll heißen: Gewünschtes Device via Kabel mit dem Mac verbinden, Device in Xcode auswählen und Kompiliervorgang starten.

In bestimmten Fällen wäre es aber enorm praktisch, diesen Prozess ein wenig abzukürzen und auf die kabelgebundene Verbindung zu verzichten. Dann würde es reichen, iPhone oder iPad einfach im selben WLAN-Netzwerk wie den Mac vorzuhalten, um den Ausführungsvorgang auf diese Geräte zu starten. Wenn zum Beispiel Kollegen vorbei kommen und bitte schnell einmal die aktuelle Version auf ein Device kompiliert haben möchten, wäre das ein nettes Feature. Doch selbst während der eigentlichen Entwicklung ist es bisweilen praktischer, wenn kein Kabel zwischen Mac und iPhone beziehungsweise iPad hängt. Einfach mal schnell auf das eigene Device deployen und den größeren Bewegungsradius genießen, der dank nicht vorhandenem Kabel entsteht; das wäre manchmal schon was feines.

Doch wie ich schon geschrieben habe, sind Aussagen wie wäre und würde in diesem Kontext hinfällig, denn ein solches Feature existiert in Xcode. Es muss jedoch explizit für jeden Mac und jedes Device aktiviert werden. Dazu wird das gewünschte Entwicklungsgerät zunächst mit dem passenden Mac verbunden und anschließend in Xcode das Devices and Simulators-Fenster geöffnet. Zu erreichen ist das entweder über den Window-Punkt im Xcode-Menü oder über die Tastenkombination Umschalt + CMD + 2.

In diesem Fenster wählt man anschließend im Reiter Devices das gewünschte Zielgerät aus und aktiviert die Checkbox mit dem Titel Connect via network. Und tatsächlich war‘s das auch schon! Von nun an steht das entsprechende Device in Xcode zum Kompilieren und Ausführen einer App zur Verfügung, selbst wenn es nicht mittels Kabel mit dem Mac verbunden ist.

Über die Checkbox „Connect via Network“ könnt ihr iOS-Geräte für die kabellose Kopplung mit Xcode aktivieren.
Über die Checkbox „Connect via Network“ könnt ihr iOS-Geräte für die kabellose Kopplung mit Xcode aktivieren.

Probleme und Best Practices

So schön diese grundlegende Technik auch ist, so hat sie auch ihre Tücken. Gerade in den ersten Xcode-Versionen, die dieses Feature enthielten, kam es des Öfteren zu Problemen. Devices wurden nicht gefunden oder eine Ausführung darauf war schlicht nicht möglich.

Das ist heute mit Xcode 10 deutlich besser geworden und die Technik ist wesentlich zuverlässiger. Dennoch kann es hin und wieder zu Verbindungsabbrüchen kommen. Ein möglicher Workaround ist das Auswählen des gewünschten iOS-Devices im Devices and Simulators-Fenster, um so eine Neuverbindung zu initiieren. Manchmal führt Xcode auch im Hintergrund Aktionen auf dem iOS-Gerät durch, was ebenfalls ein Kompilieren verhindert. Hier muss man schlicht warten, bis der Prozess abgeschlossen ist. Auch bestimmte Router-Konfigurationen können möglicherweise Probleme verursachen.

Darüber hinaus darf eines nicht vergessen werden: So oder so ist das Kompilieren und Ausführen einer App via WLAN deutlich langsamer als der Weg über das Kabel. Bei kleineren Projekten mag das keine allzu große Rolle spielen, bei umfangreichen Projekten hingegen merkt man schnell, dass man wohl doch besser wieder das Kabel zücken sollte, ehe man minutenlang auf Xcode wartet.

Davon abgesehen ist die Technik aber eine wirklich feine Sache und kann den Entwickleralltag bei passenden Projekten angenehmer gestalten.

Euer Thomas


Kommentare

Schreibe einen Kommentar

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