Wie fast in jedem Bereich nutzt man bei der App-Entwicklung für iOS ebenfalls verschiedene Umgebungen, meist zwei oder mehr, mit denen man verschiedene Anwendungsfälle und Testfälle ausgiebig testen kann, bevor die Änderungen in den Live- bzw. Production-Betrieb gehen. In diesem Artikel beschreiben wir exemplarisch die Einrichtung zwei verschiedener Konfigurationen, weitere und beliebig viele Konfigurationen können natürlich selbst noch hinzugefügt werden nach demselben Schema bzw. der Vorgehensweise, die nachfolgend beschrieben wird.

Eine App, zwei Umgebungen, aber wie?

Grundlegend kann man immer nur eine App mit dem selben Bundleidentifier auf dem iPhone bzw. iPad installiert haben. Mit unterschiedlichen Konfigurationen der „Deployment-Targets“, ein paar Buildsettings und der info.plist kann man sich aber genau für verschiedene Testumgebungen unterschiedliche Apps generieren. Diese kann man dann alle parallel auf dem iPhone oder iPad nutzen.

Die Ausgangsbasis:

  • Xcode 7.3.1
  • iOS 9 Swift Testprojekt

Standardmäßig sind zwei Konfigurationen eingerichtet, die wir nutzen werden, um uns weitere Konfigurationen für unsere verschiedenen Testumgebungen zu erstellen. Die Standardkonfigurationen findet ihr wie folgt:

xcode-ios-app-konfiguration

Zusätzliche Konfigurationen in Xcode anlegen:

Je nachdem, ob die App auf dem iPhone oder iPad debuggbar sein soll, dupliziert man jeweils zwei Konfigurationen von Debug oder Release für die Testumgebung (Dev) und eine für die Live-Umgebung (Live).

xcode-ios-debug-live-konfiguration

In dem nachfolgenden Beispiel haben wir zwei Debug-Konfigurationen dupliziert und jeweils entsprechend benannt. Das Ergebnis sieht wie folgt aus:

xcode-ios-debug-live-konfiguration-2

Bundleidentifier für Konfigurationen festlegen:

Als erstes wählt ihr oben im Menü als Target wieder eure App aus:

xcode-ios-app-target

Anschließend wählt man die Buildsettings an und sucht den Punkt „Product Bundle Identifier“. Dort ergänzt ihr jeweils bei Debug und Dev den Identifier um das Kürzel „.dev“. Der Bundleidentifier zwischen Live und Dev muss in jedem Falle unterschiedlich sein, da es ansonsten nicht möglich ist, dass zwei „gleiche“ Apps auf dem Gerät gleichzeitig installiert und genutzt werden können. Das Ergebnis sieht dann wie folgt aus:

xcode-ios-custom-app-variables

Aber was ist mit Pushnotifications und dem Identifier?

Wer Pushnotifications für iOS nicht nutz, kann diesen Punkt überspringen, wer Pushnotifications für iOS verwendet, der muss noch einen wichtigen Punkt beachten:

Für jeden Bundleidentifier müssen separat die Zertifikate erstellt werden. Dies bedeutet, dass ihr für die Dev (Development-Umgebung) ein Pushzertifikat benötigt und ein weiteres Pushzertifikat für Live (Live-Umgebung).

Alles fertig?

Im Prinzip ja, allerdings ist es mit der aktuellen Konfiguration schwierig, zwischen der Live- und Dev-App zu unterscheiden, denn beide haben denselben Namen und dasselbe Icon. Wie man mit einer entsprechenden Konfiguration für die Live- & Dev-App verschiedene Namen setzt und separate Icons (optional mit Badge als Beschriftung), erklären wir in einem separaten Artikel, der folgen wird. Sobald der Artikel erschienen ist, werden wir diesen hierunter entsprechend verlinken. Bis dahin folgt uns doch einfach auf Facebook oder Twitter und erfahrt als erstes neue Informationen aus dem Bereich der App-Entwicklung, Web-Entwicklung, Server-Tipps & IT-Sicherheit und ebenfalls, sobald der fortführende Artikel online ist.