Qualitätssicherung Entwicklung XING

iOS – Das Schloss mit Burggraben

Daniel Martin ist IT-Consultant und unser Experte für das Mobile Center von Micro Focus. Bis zur App Signierung und der Registrierung von Entwicklergeräten müssen einige Schritte absolviert werden. Daniel veranschaulicht diese Step-by-Step.

Kurz nachdem ich das Trainee-Programm bei der profi.com erfolgreich abgeschlossen habe, wurde ich zum Experten für das Tool Mobile Center (MC). Ich begleite und nutze das MC nun bereits von der Version 2.00 bis zum heutigen Release 3.00. In diesen knapp drei Jahren gab es in Sachen Funktionen und Design einige Anpassungen und Neuerungen. Manche Features wurden hingegen kaum verändert, da Mirco Focus sich bei gewissen Prozessen an den Herstellern orientieren muss. App Signierung und die Registrierung von Entwicklergeräten ist einer dieser Prozesse. Der Workflow wird sich beim ersten Betrachten vermutlich furchtbar kompliziert anhören, ist aber nach der ersten eigenen Durchführung schnell verstanden und von Micro Focus mit dem „App packaging and signing services“ teilweise sogar automatisiert.

Bevor auf einem iPhone oder iPad überhaupt eine App von einer „unbekannten Quelle“ (die nicht aus Apples AppStore stammt) installiert werden kann, muss der Entwickler sich registrieren und das Test-/Entwicklungsgerät und die jeweilige App-ID angeben. Dieses Prozedere werde ich im Folgenden Schritt für Schritt durchgehen und die einzelnen Steps erläutern.

Vorbereitend ist zu sagen, dass für die Kommunikation zwischen einem Apple-Device und Mobile Center vier von Micro Focus mitgelieferte ipa-Dateien (iOS-Anwendungen) installiert werden müssen.

Die im Micro Focus Mobile Center mitgelieferten ipa-Dateien.

Grob zusammengefasst ist eine ipa-Datei, welche sich mit iTunes installieren lässt, mit einer herkömmlichen ZIP-Datei vergleichbar. Wenn man die ipa-Datei entpackt, sieht man weitere Unterordner und Dateien, die zum Ausführen der App auf einem Device nötig sind. Bevor allerdings diese vier Apps installiert werden können, müssen sie signiert werden. Das bedeutet, dass Angaben von Entwickler und Ziel-Gerät in der ipa-Datei hinterlegt werden müssen. Für diesen Signierungsprozess benötigt man ein Entwickler-Zertifikat und eine mobileprovision-Datei, welche die UDID (die eindeutige Nummer des Devices) beinhaltet.

Schritt 1 – Die Vorbereitung

Um die Apps nun zu signieren benötigt man einen iMac/MacBook, einen Entwickler-Account bei developer.apple.com und die UDID vom Ziel-Gerät. Diese ID kann ausgelesen werden, indem das Gerät an ein PC anschlossen wird, auf dem iTunes installiert ist. Bei den Geräte-Details auf die Seriennummer geklickt, schon ändert sich diese in die UDID.

Die UDID eines Apple-Gerätes kann über iTunes und das klicken auf die Seriennummer sichtbar gemacht werden.

Auf dem Mac ist bereits bei Auslieferung das Programm „Schlüsselbund“ installiert. Dort besteht die Möglichkeit ein Zertifikat in Form einer crt-Datei zu erstellen, um sich bei anderen Instanzen zu identifizieren. Diese Datei sollte lokal gespeichert werden.

Der Apple-Zertifikatsassistent hilft bei der Erstellung einer Zertifikatsdatei für Entwickler.
 

Schritt 2 – Die vier Säulen der Sicherung

Schritt 2.1 – Who am I?!

Damit der Mac „weiß“, dass man nun ipa-Dateien ändern darf und einen gültigen Apple Developer Account hat (dieser schlägt übrigens mit einem jährlichen Abo von 99€ zu Buche), wird die aus dem Schlüsselbundprogramm generierte Zertifikat-Datei benötigt. Im nächsten Schritt meldet man sich auf der Apple Developer Website an, öffnet den Unterpunkt „Certificates, Identifiers & Profiles“ und legt dort ein neues Entwickler-Zertifikat an. Nachdem man sich durch ein paar Optionsfelder geklickt hat, wird die Zertifikat-Datei angefordert und hochgeladen. Schlussendlich kann nun das neue Zertifikat heruntergeladen werden, welches dem Mac die Informationen liefert, die er braucht um die Signierung zu gestatten. Nach dem Download implementiert man das Zertifikat via Doppelklick auf die zuvor heruntergeladene Datei in den Schlüsselbund. Dort wird nun ein neuer Eintrag mit Namen und ID-Nr. hinzugefügt, welche man in den Folgeschritten erneute benötigen wird.

Schritt 2.2 – Which device do you want?

Da nun ein gültiges Entwickler-Zertifikat heruntergeladen wurde, müssen als nächstes die Geräte angegeben werden, die sich im Besitz des Entwicklers befinden. Diese werden erneut auf der Website von Apple registriert. Unter dem Punkt „Devices“ kann man bis zu 100 Geräte pro Account hinzufügen, dazu muss nur ein selbstgewählter Name und die UDID angegeben werden.

Schritt 2.3 – What do you want to develop?

In diesem Punkt wird nun die App-ID erzeugt. Üblicherweise setzt sich diese aus dem Ländercode, ggf. Firmenname oder ähnlichem zusammen. Ein Beispiel wäre „de.proficom.profiappdev“, sozusagen ein eindeutiger Name für die Applikation. Allerdings ist es auch möglich, ein „Bundle“ anzulegen, damit nicht jede einzelne App registriert werden muss. „de.proficom.*“ würde also alle Apps die in Ihrer ID „de.proficom“ haben mit inkludieren. Anhand der Apps von Mobile Center wäre sogar nur ein „com.*“ ausreichend.

Schritt 2.4 – Zuordnung der generierten Daten

Nun wird es interessant, da nun alle Informationen gebündelt werden müssen. Unter dem Punkt „Provisioning Profiles“ werden diese nun ausgewählt, nachdem man angegeben hat für welche Verwendung das Profil bestimmt ist. Im Falle von den Mobile Center Apps ist es die „iOS App Development“ Option. Danach wird ausgewählt, für welche App und mit welchen Entwicklern und Geräten man diese Datei verwenden kann.
Wurde alle Optionen entsprechend ausgewählt und ein Name für die Datei vergeben, wird diese nun generiert und ebenfalls zum Download angeboten. Das Ziel ist nun langsam in Sicht.

Die Zuordnung der Informationen und Geräte erfolgt im Micro Focus Mobile Center

Schritt 3 – Abrakadabra

Noch einmal kurz zusammengefasst. Im Schlüsselbund-Programm des Mac’s ist ein Entwickler-Zertifikat hinterlegt, Geräte und Apps sind bei developer.apple.com registriert und es wurde damit eine mobileprovision-Datei erstellt und heruntergeladen. Nun fehlt noch der schwarze Zylinder, der „MC Enabler“, welcher im grundlegenden Prinzip folgende Aufgabe hat. Ipa-Datei entpacken, Entwickler-Zertifikat und mobileprovision-Datei hineinkopieren und wieder zusammenpacken. Der „MC Enabler“ kann aus dem Marketplace von Micro Focus heruntergeladen werden und muss nicht installiert werden. Öffnet man den Ordner könnte man zum einen über einen Doppelklick die GUI Version starten. Ich persönlich bevorzuge allerdings das Signieren im Terminal bzw. über die Kommandozeile.

Der manuelle Befehl im Mac-Terminal sieht dann wie folgt aus:

./HPMCEnabler iOSapp.ipa -codesign "iPhone Developer: Daniel Martin (XXXXXXXXXX)" -p /Users/dmartin/Downloads/AllDevice.mobileprovision -v
HPMCEnabler (MF Programm zum Signieren) |
iOSapp.ipa (ipa-Datei welche signiert werden soll) |
iPhone Developer ist der Eintrag, welcher im Schlüsselbund zu finden ist |
AllDevice.mobileprovision (Datei welche die UDID der Entwicklergeräte & App-ID enthält)


Diesen Befehl wiederholt man für alle vier ipa-Dateien und nach dem jeweiligen erfolgreichen signieren, befindet sich nun eine „neue“ Datei im selben Ordner. Diese tragen den Zusatz „-codesign“ im Namen. Danach sollte man die ursprünglichen Dateien und den Zusatz aus dem Namen der neu generierten Dateien wieder löschen. Der Mobile Center Service bezieht sich auf den ursprünglichen Namen und macht diesen Schritt somit notwendig. Damit alle genutzten Instanzen auf demselben Stand sind, müssen die signierten Dateien nun wieder zurück auf die Mobile Center Server-Maschine und ebenfalls auf alle angebundenen Connectoren. Nachdem der MC-Service neugestartet wurde, können die Geräte entsprechend via USB-Kabel angeschlossen werden und wie von Zauberhand werden die MC-Apps auf dem iOS-Gerät installiert. Entsprechend werden nun auch die Geräte auf dem Web-Interface angezeigt und die Geräte sind für den Einsatz bereit. Bei iOS kann es passieren, dass man auf dem mobilen Endgerät das Entwicklerzertifikat bestätigen muss. Dies ist in den Einstellungen des jeweiligen Gerätes jedoch schnell gemeistert.

Auf iOS muss das Entwicklerzertifikat bestätigt werden

Fazit

Hier zeigt sich wieder der grundlegende Unterschied zwischen Apple und Android. Während es bei Android reicht den Entwicklermodus durch sieben maliges Tippen auf die Build-Nummer zu aktivieren, verlangt Apple ein Abo und erst nach der Installation der zu entwickelten App offenbart sich die Option „Entwickler“ in den Einstellungen. Micro Focus versucht, diesen Prozess zu vereinfachen und teilweise zu automatisieren. Folgendes Szenario um den „App packaging and signing services“ am besten zu erklären.
Sie haben ein neues Test-Gerät, App oder Entwickler. Diese müssen dennoch bei developer.apple.com registriert werden. Somit erhalten Sie eine neue mobileprovision-Datei. Nun müssten Sie die vier MC-Apps und Ihre eigenen Apps wieder neu signieren und verteilen. An diesem Punkt kommt der Service von Micro Focus ins Spiel. Sie geben beim Service den Namen der neuen Datei an und starten auf der MC-Weboberfläche den Service. Nun werden alle hinterlegten Apps signiert, gegebenenfalls neu verpackt und automatisch an alle Instanzen (MC-Server & Connectoren) verteilt. Voraussetzung dafür ist allerdings, dass der Service auf einem Mac installiert ist (zwecks der Schlüsselbund-Software) und natürlich jederzeit erreichbar ist. Zudem müssen neue Apps, welche sich in der Bundle-ID befinden nur noch bei Mobile Center selbst hochgeladen werden. Diese werden dann automatisch signiert und verpackt.

Ich muss ehrlich zugeben, dass ich mich beim ersten Anwenden dieser Prozedur trotz Anleitungen etwas schwergetan habe. Hat man diesen Prozess einmal Schritt für Schritt durchgearbeitet, wird aus Zauberei ein Kinderspiel.

Autor

Daniel MartinIT-Consultant
Daniel Martin