Blogserie iOS-Entwicklung - Funktionen, Möglichkeiten und Einschränkungen von Xcode ServerMit OS X Server stellt Apple bereits seit vielen Jahren auch eine eigene Server-Variante seines Desktop-Betriebssystems zur Verfügung. Darüber ist es möglich, einen eigenen Mail-Server aufzusetzen, Nachrichten im Stile von iMessages zu verschicken, Time Machine-Backups zu konfigurieren, einen zentralen Kalender zu pflegen oder einen Webserver wie auch Wiki-Server zu betreiben. In OS X Server ist dabei Apple-typisch alles sehr schlicht und einfach gehalten.

Um OS X Server nutzen und installieren zu können, braucht es zunächst einmal – wie könnte es anders sein? – einen Mac mitsamt OS X. OS X Server selbst ist dann im weitesten Sinne „nur“ eine App, die auf einem bestehenden OS X-Desktop-System draufinstalliert wird; man erweitert also ein bestehendes OS X schlicht und einfach um zusätzliche Server-Funktionen.

OS X Server steht für aktuell 19,99€ im Mac App Store zum Download bereit (siehe Bild 1). Bei Apple registrierte Entwickler können OS X Server kostenlos über das Apple Developer Portal herunterladen und anschließend auf Ihrem Mac installieren. Die Installation selbst dauert nur wenige Minuten, anschließend begrüßt einen die Oberfläche der OS X Server-App und es kann losgehen.

Bild 1

Bild 1: Quelle App Store

 

Xcode-Server

Neben den eingangs bereits vorgestellten verschiedenen Diensten, die OS X Server zur Verfügung stellt, ist einer gerade für Apple-Entwickler besonders interessant: Es steht ein eigener Xcode-Dienst zur Verfügung, der die Entwicklung von Apps für iOS und OS X optimieren soll. Der Xcode-Dienst setzt sich dabei aus einer zentralen Funktion zusammen: Er dient der kontinuierlichen Integration (auch als Continuous Integration bekannt). Damit hostet der Xcode-Dienst unter OS X Server Projekte in Form von Repositories und führt regelmäßige Tests durch, um die korrekte Funktionsweise und Stabilität der entsprechenden Projekte sicherzustellen.

Bevor wir uns aber den Dienst und dessen Funktionen im Detail ansehen, werfen wir zunächst einmal einen Blick auf die Inbetriebnahme des Xcode-Dienstes. Zu diesem Zweck muss nach der erfolgreichen Installation und dem erfolgreichen Start von Xcode Server im linken Bereich unter Dienste der Punkt Xcode ausgewählt werden (siehe Bild 2). Um den Xcode-Dienst zu aktivieren, sind zwei Schritte notwendig. Zunächst muss dem Dienst der Pfad zur Xcode-Installation genannt werden, über die der Dienst zukünftig seine Tests durchführen und Apps bauen kann. Klicken Sie dazu einfach auf die Schaltfläche Xcode auswählen … und wählen Sie die gewünschte Xcode-Version, um diesen Vorgang abzuschließen. Im einfachsten Fall finden Sie die „normale“ Version von Xcode (die typischerweise direkt aus dem Mac App Store heraus installiert wird) direkt in Ihrem Programme-Ordner. Sollten Sie zusätzlich auch mit Vorabversionen und Betas arbeiten und diese eventuell stattdessen für den Dienst verwenden wollen, so können Sie auch diese entsprechend auswählen. Es ist im Übrigen auch kein Problem, die hier getroffene Auswahl später wieder jederzeit zu ändern.

Bild 2

Bild 2: Quelle Xcode Server

Nach der Auswahl der gewünschten und zu nutzenden Xcode-Version für den Xcode-Dienst muss dieser schließlich noch aktiviert werden. Klicken Sie dazu einfach auf den Schalter am oberen rechten Bildschirmrand und die Aktivierung beginnt. Nach einem kurzen Augenblick ist die Einrichtung des Dienstes dann abgeschlossen und alle Lämpchen leuchten grün (siehe Bild 3). Nun kann es in einem zweiten Schritt an die Konfiguration und Einrichtung des eigentlichen Xcode-Dienstes gehen.

Bild 3

Bild 3: Quelle Xcode Server

 

Konfiguration und Einrichtung des Xcode-Dienstes

Ist der Xcode-Dienst auf dem OS X Server gestartet, ist der erste Teil der Arbeit bereits geschafft. Die Fenster-Ansicht des Dienstes selbst unterteilt sich in zwei Bereiche: Einstellungen und Repositories.

Einstellungen ist dabei für die grundsätzliche Konfiguration des Dienstes verantwortlich. Im ersten Abschnitt Zugriff sehen Sie den aktuellen Status und die Erreichbarkeit des Dienstes, gefolgt von den eingestellten Zugriffsrechten. Diese Zugriffsrechte beziehen sich auf die Erstellung und das Einsehen von Bots, die Sie innerhalb eines Xcode-Projekts erstellt und konfiguriert haben (mehr dazu gleich). Diese Bots dienen dazu, Ihre App bei Änderungen auf dem Server zu bauen und anschließend Tests durchzuführen, um so sicherzustellen, dass Ihre App auch nach verschiedenen durchgeführten Änderungen noch genau so funktioniert, wie sie es soll (eben ganz nach dem Sinn und Gedanken von Continuous Integration).

Die Zugriffsrechte auf diese Bots sind standardmäßig so konfiguriert, dass nur am Server angemeldete Benutzer auch neue Bots in einem entsprechenden Xcode-Projekt erstellen können, während erstellte Bots an sich von jedem eingesehen werden können. Diese Einstellung können Sie jederzeit ändern, indem Sie auf die Schaltfläche Bearbeiten … rechts neben den Informationen zu den Zugriffsrechten klicken. Es öffnet sich ein neues Fenster, in dem Sie festlegen können, wer einerseits Bots erstellen und einsehen kann (alle Benutzer, nur angemeldete Benutzer, nur bestimmte Benutzer) und ob und wem Sie zusätzlich ausschließlich Lese-Zugriff auf bestehende Bots gewähren (alle Benutzer, nur angemeldete Benutzer oder nur bestimmte Benutzer).

Ebenso können Sie über die Zugriffsrechte die Netzwerke bestimmen, von denen aus der Zugriff auf die Bots erlaubt ist. Zur Auswahl stehen hier entweder alle Netzwerke, nur private Netzwerke oder nur bestimmte, von Ihnen definierte Netzwerke.

Unterhalb des Bereichs Zugriff folgt der Abschnitt Builds. Dieser ist wichtig, damit der Xcode-Dienst weiß, welche Xcode-Version und welches Entwickler-Team beziehungsweise welche Entwickler-Teams er zum Erstellen und Ausführen der Apps verwenden soll. Bei der Xcode-Version handelt es sich dabei um diejenige, die wir bereits bei der Einrichtung initial zugewiesen haben.

Die zu nutzende Xcode-Version kann jederzeit per Klick auf die Schaltfläche Auswählen … rechts der aktuell gewählten Version geändert werden. In diesem Fall öffnet sich ein Finder-Fenster, in dem Sie einfach die gewünschte Xcode-Version auswählen. Die Entwickler-Teams können Sie per Klick auf die entsprechende Schaltfläche Bearbeiten … konfigurieren. Auch hier öffnet sich ein neues Fenster, das Ihnen in einer Liste alle aktuell hinzugefügten Entwickler-Accounts anzeigt (standardmäßig findet sich hier zu Beginn noch kein Eintrag). Über die Plus-Schaltfläche am unteren linken Bildschirmrand können Sie nun schnell und einfach ein entsprechendes Entwickler-Team hinzufügen, Sie müssen dazu lediglich die passende Apple-ID mitsamt Passwort eingeben. Daraufhin wird das Entwickler-Team mit allen notwendigen Zertifikaten und Provisioning Profile Ihrem Server hinzugefügt. Wiederholen Sie diesen Vorgang für alle Entwickler-Teams, die Sie gerne auf Ihrem Server einrichten und verwenden möchten. Sie können auch jederzeit bereits hinzugefügte Entwickler-Teams im Bearbeiten-Fenster wieder entfernen, indem Sie das zu entfernende Team markieren und anschließend auf die Minus-Schaltfläche am unteren linken Bildschirmrand klicken.

Zu guter Letzt sehen Sie im abschließenden Abschnitt Geräte noch alle aktuell mit dem Server verbundenen iOS-Geräte. Diese können zur Ausführung und zum Testen Ihrer iOS-Projekte durch Bots verwendet werden, um eine App somit für ganz spezifische Geräte zu testen und sicherzustellen, dass sie auf diesen einwandfrei laufen. Wurde ein am Server angeschlossenes Gerät noch nicht dem entsprechenden Entwickler-Programm der eingerichteten Entwickler-Teams hinzugefügt, stellt der Xcode-Dienst eine Schaltfläche zur Verfügung, über die der Server das Gerät entsprechend als Entwickler-Gerät registrieren kann, damit es für die Nutzung durch Bots verwendet werden kann.

Zusätzlich können Sie nach Markierung eines angeschlossenen iOS-Geräts auf die Bearbeiten-Schaltfläche unten links klicken, um einerseits weitere Informationen über das Gerät selbst einzusehen (beispielsweise die installierte iOS-Version oder die Seriennummer) sowie andererseits zu sehen, welchen der eingerichteten Entwickler-Teams das entsprechende Gerät zugeordnet ist.

 

Erstellung und Verwaltung von Repositories

Eines der Herzstücke des Xcode-Dienstes ist die Erstellung und Verwaltung von Repositories auf dem OS X Server für die App-Entwicklung. Über den gleichnamigen oberen Reiter innerhalb der Ansicht des Xcode-Dienstes gelangt man zur entsprechenden Konfiguration. Auch diese Ansicht unterteilt sich in mehrere Bereiche. Der erste Abschnitt Zugriff regelt dabei die Möglichkeiten zum Erstellen neuer Repositories sowie den eigentlichen Zugriff auf selbige. Die zur Verfügung stehenden Optionen und Möglichkeiten sind dabei sehr überschaubar. Was den eigentlichen Zugriff betrifft, kann innerhalb des Xcode-Dienstes nur festgelegt werden, ob dieser über HTTPs und / oder SSH erfolgen soll. Bei der Erstellung neuer Repositories können Sie festlegen, dass entweder nur angemeldete Benutzer oder spezifische von Ihnen definierte Benutzer solche erstellen dürfen. Beide Einstellungen können Sie mithilfe jeweils passender Bearbeiten …-Schaltflächen verändern und anpassen.

Spannend wird es dann innerhalb des folgenden Abschnitts Repositories. Dort werden auf Server-Seite all jene Projekt-Repositories angelegt, von denen aus man über Xcode zugreifen können soll. Ein neues Repository ist dabei schnell angelegt. Über eine Plus-Schaltfläche am unteren linken Bildschirmrand öffnet sich ein neues Fenster, in dem alle notwendigen Informationen zum Repository eingegeben werden müssen. Neben einem aussagekräftigen Namen (der keine Leerzeichen enthalten darf) handelt es sich dabei noch um die Festlegung, wer lesend und schreibend über SSH auf das Repository zugreifen darf (angemeldete Benutzer oder nur spezifisch festgelegte Benutzer) und ob angemeldete Benutzer über HTTPS lesend und schreibend auf das Repository zugreifen dürfen. Mit einem abschließenden Klick auf die Schaltfläche Erstellen wird das neue Repository erzeugt und in der Übersicht der bestehenden Repositories mit angezeigt.

 

Aufgaben und Möglichkeiten des Xcode-Dienstes

Damit haben wir die grundsätzlichen Konfigurationsmöglichen des Xcode-Dienstes kennengelernt. Damit der Dienst seine Stärken optimal ausspielen kann, ist es wichtig, Xcode-Projekte mit den auf dem Server erstellten Repositories zu verbinden und Bots zu erstellen, die dann für das entsprechende Projekt auf Serverseite ausgeführt werden.

Sowohl ein OS X Server als auch Repositories können Sie innerhalb einer lokalen Xcode-Installation schnell und einfach in den Einstellungen im Reiter Accounts hinzufügen und verwalten. Dort finden Sie im linken Bereich eine Plus-Schaltfläche am unteren Bildschirmrand, über die Sie – neben einem Entwickler-Account – auch einen Server sowie Repositories hinzufügen können. Damit lässt sich schnell eine Verbindung zu einem eingerichteten OS X Server mit aktiviertem und konfiguriertem Xcode-Dienst herstellen. Sobald dann ein Xcode-Projekt in einem Repository des Xcode-Dienstes eingepflegt ist, steht Ihnen auch die Möglichkeit zur Verfügung, Bots zu erstellen. Rufen Sie dazu bei geöffnetem Xcode-Projekt den Menüpunkt Product -> Create Bot… auf. Ein Assistent führt Sie durch alle notwendigen Schritte zur Einrichtung und Konfiguration des Bots. Dabei wählen Sie ein Scheme aus, welches der Bot ausführen soll, und legen fest, zu welchen Zeitpunkten (beispielsweise bei jedem Commit) der Bot welche Aktionen (Bauen, Ausführen, Testen) über den OS X Server durchgeführt werden. Innerhalb Ihres Xcode-Projekts können Sie die entsprechenden Informationen der Bots einsehen und darüber feststellen, ob Probleme auftreten oder nicht.

Der Xcode-Dienst bietet aber auch selbst noch eine Übersicht aller aktiven Bots und deren Zustände. Dazu stellt der Dienst eine eigene Weboberfläche zur Verfügung, die Sie bequem aus OS X Server heraus aufrufen können. Wählen Sie dazu die Seite des Xcode-Dienstes und klicken Sie im Reiter Einstellungen auf den unteren kleinen Link mit dem Titel Bots anzeigen. Dort erhalten Sie sodann eine Übersicht über die von Ihnen eingerichteten und konfigurierten Bots. Als besonders Schmankerl hält diese Website zudem eine Funktion namens Big Screen bereit, die Sie über die gleichnamige Schaltfläche am oberen rechten Rand der Website aufrufen können. Diese Funktion stellt den Zustand der Bots in optisch aufbereiteter und übersichtlicher Form dar und ist beispielsweise dazu gedacht, in Entwicklerräumen an einem großen Bildschirm, der für alle einsehbar beispielsweise an einer Wand befestigt ist, den Entwicklern und sonstigen Verwantwortlichen eines Projekts einen schnellen Überblick über den aktuellen Zustand der Bots zu geben.

 

Fazit

Der Xcode-Dienst des OS X Server stellt eine gelungene Ergänzung zur Entwicklung von iOS- und OS X-Apps dar. Seine spartanischen Konfigurations- und Einstellungsmöglichkeiten reduzieren ihn auf zwei Hauptaufgaben: Erstellung und Verwaltung von Repositories sowie Ausführen und Testen von Bots. Für viele Standardzwecke im Bereich der Continuous Integration ist das aber bereits auch vollkommen ausreichend und dank gelungener Funktionen wie dem Big Screen optimal umgesetzt. Ob die Anschaffung und Bereitstellung eines eigenen OS X Server mit Xcode-Dienst lohnt, muss letzten Endes jeder für sich selbst entscheiden. Wer aber bereits im Unternehmen einen OS X Server für andere Dienste betreibt, sollte sich in jedem Fall auch den Xcode-Dienst einmal im Detail ansehen.