Btn training bbbdf557d2 Nächste iOS-Schulung: 25. Februar - 01. März 2019, Stuttgart

3. Aufbau und Projektstruktur von Xcode

Aufbau von Xcode

In Xcode finden Sie um den geöffneten Editor herum links den Navigator, rechts die Utilities und unten die Debug Area. Mit den Buttons rechts oben können diese ein- und ausgeblendet werden:

Xcode: Navigator, Debug Area, Utilities

Tipp: Mit den Tastenkürzeln können die Reiter direkt angewählt werden.

Xcode Projektstruktur

Folgende Dateien finden Sie standardmäßig in einem Xcode-Projekt:

Das AppDelegate der App wird über Ereignisse, die den Lebenszyklus der Applikation betreffen, benachrichtigt - zum Beispiel wenn die Anwendung gestartet wird oder in den Hintergrund geht.
ViewController-Klassen implementieren das Verhalten zu den Views der Anwendung, befüllen sie zum Beispiel mit Daten und behandeln Ereignisse in einem View.
Aus Main.storyboard wird die grafische Oberfläche der App geladen.
Assets.xcassets enthält Icons und Grafiken in verschiedenen Auflösungen, unter anderem das App-Icon.
LaunchSceen.storyboard enthält den Startbildschirm, der bis zum eigentlichen Start der Anwendung angezeigt wird.
Info.plist enthält Konfigurationsoptionen, die zur Laufzeit geladen werden, zum Beispiel die Versionsnummer, unterstützte Geräte-Rotationen und die native Sprache der App.
Apps können mit Unit-Tests und UI-Tests automatisiert auf die Korrektheit der Implementierung hin überprüft werden. Dazu wird beim Erstellen eines neuen Projektes das Grundgerüst für entsprechende Testklassen erstellt.
Unter Products werden die Build-Ergebnisse des Projektes angezeigt.

Build einer Xcode-App

In einem Xcode-Projekt sind die Targets für das Bauen des Projektes zuständig. Ein Projekt kann mehrere Targets enthalten, die die gesamte Konfiguration für das Bauen enthalten. Standardmäßig enthält ein Xcode-Projekt ein Target für die App selbst und Targets für das separate Bauen der automatisierten Tests des Projektes:

Targets

In den Build Settings des Projektes wird der Xcode-Build konfiguriert. Beispielsweise wird über die Build-Einstellung Optimization Level konfiguriert, ob der Compiler optimierten Code generiert. Die Einstellungen können unterschieden werden für die Build-Konfiguration Debug und Release. Beispielsweise wird im Debug-Modus mit der Option Optimization Level die Code-Optimierung deaktiviert, um besser debugbaren Code zu erhalten:

Xcode Build Settings

Den Xcode-Build führen Sie mit Product » Build ⌘B aus. Bei Problemen mit dem Xcode-Projekt kann es helfen, die Buildergebnisse zurückzusetzen. Dies erreichen Sie über Product » Clean.

Schemas: Xcode-Startkonfiguration

Über ein Schema wird der Start einer App in Xcode konfiguriert. Dabei wird zwischen den Varianten unterschieden, die sich im Product-Menü finden. Mit Run wird die App regulär gestartet, Test führt die automatisierten Tests aus, Profile baut die App mit der Release-Konfiguration und startet den Profiler Instruments, Analyze lässt Xcode den Code nach potentiellen Programmierfehlern untersuchen und Archive erstellt einen Release-Build zum Verteilen der App:

Xcode Scheme

Die Schema-Konfiguration kann mit Edit Scheme bearbeitet werden (Alternativ: mit Product » Run wählen). Hier wird beispielsweise unter Build konfiguriert, welche Targets in welcher Variante gebaut werden:

Xcode Scheme: Build

Unter Run ist konfiguriert, mit welcher Build-Konfiguration beim Starten über Product » Run gebaut wird:

Xcode Scheme: Run

Ausführen von Apps im Simulator

Der iPhone Simulator simuliert das Verhalten von iOS unter macOS weitestgehend analog zu einem echten Hardware-Gerät. Um Apps im Simulator zu starten, wählen Sie einen der iPhone-Simulatoren in der Schema-Auswahl und starten die App mit Product » Run ⌘R:

Schema-Auswahl: iPhone-Simulator

Beim Testen im Simulator gilt es einige Unterschiede zu den echten Geräten zu beachten:

Es empfiehlt sich daher, häufig auf Testgeräten mit den iOS-Versionen zu testen, für die die App entwickelt wird.

Ausführen von Apps auf dem Gerät

Um Apps zu Testzwecken auf iOS-Geräten auszuführen, wird von Xcode ein Provisoning Profile erstellt und auf dem Gerät installiert. Dafür genügt seit Xcode 7 eine kostenfreie Apple ID (zuvor war die kostenpflichtige Mitgliedschaft im Apple Developer Program Voraussetzung).

Für die Ausstellung des Provisioning Profiles wird automatisch ein privater Schlüssel und ein zugehöriges Entwicklerzertifikat erstellt und die App-ID sowie der Unique Device Identifier (UDID) des Gerätes bei Apple registriert:

Zertifkate, App-ID, UDIDs -> Provisioning Profile

Das Provisoning Profile auf dem Gerät erlaubt die Ausführung von App-Binaries, die mit dem privaten Schlüssel des zugehörigen Zertifikates signiert wurden.

Tutorial 1: Projekt einrichten und bauen

  1. Öffnen Sie das im ersten Kapitel erstellte Flashcards-Projekt in Xcode.

  2. Machen Sie sich mit dem Aufbau von Xcode vertraut und blenden Sie Navigator, Utilities und die Debug Area mit den Button rechts oben ein- und aus.

  3. Machen Sie sich im Project Navigator links ⌘1 mit der Xcode-Projektstruktur vertraut.

  4. Setzen Sie das Deployment Target in den Projekteinstellungen auf 9.0 um auch noch ältere Geräte zu unterstützen:

    Xcode Deployment Target

    Tipp: Unter iossupportmatrix.com finden Sie eine Übersicht, welche Geräte von welchen iOS-Versionen unterstützt werden.

  5. Machen Sie sich anhand der Einstellung Optimization Level mit den Build Settings vertraut. Öffnen Sie dazu die Build Settings und suchen Sie nach optimize:

    Xcode Build Settings
  6. Bauen Sie das Projekt mit Product » Build ⌘B und prüfen Sie die Buildergebnisse in der Titelzeile und im Report Navigator ⌘9:

    Xcode Build Result
  7. Setzen Sie den Build mit Build » Clean zurück.

Tutorial 2: App im Simulator und auf dem Gerät starten

  1. Wählen Sie über die Schema-Auswahl einen der Simulatoren aus:

    Schema-Auswahl: iPhone-Simulator
  2. Öffnen Sie die Schema-Konfiguration mit Edit Scheme (Alternativ: mit Product » Run wählen):

    Edit Scheme
  3. Prüfen Sie hier unter Run die Einstellung, mit welcher Build Configuration das Projekt gebaut wird:

    Xcode Scheme: Run
  4. Starten Sie die App mittels Product » Run ⌘R.

  5. Wählen Sie im Simulator unter Window » Scale ⌘1…⌘3 verschiedene Bildschirm-Skalierungen.

  6. Verbinden Sie ein iPhone mit dem Mac. Prüfen Sie, dass es unter Window » Devices ⇧⌘2 erscheint. Wählen Sie das Gerät aus und starten Sie die App mit ⌘R auf dem Gerät:

    Schema-Auswahl: iPhone-Gerät

    Falls das Gerät als Inelegible Devices - Device OS version lower than deployment target angezeigt wird, verwenden Sie auf dem Gerät noch eine ältere iOS-Version. Konfigurieren Sie dann in den Projekteinstellungen ein Mindest-Deployment-Target welches der Version auf dem Gerät entspricht, siehe Deployment Target.

    Beim ersten Start einer App auf dem Gerät wird Xcode automatisch ein Provisioning Profile und ein Entwickler-Zertifikat einrichten und auf dem Gerät installieren. Seit Xcode 7 wird dafür keine Mitgliedschaft im Apple Developer Program mehr benötigt. Unter Launch Your App on Devices Using Free Provisioning finden Sie weitere Informationen dazu.

Weiterführende Informationen

Xcode Help ▸ Die offizielle Dokumentation von Apple zu Xcode.
https://help.apple.com/xcode/mac/current/

What’s New in Xcode ▸ Hier werden die neuen Features der jeweiligen Xcode-Versionen ausführlich beschrieben.
https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/WhatsNewXcode/

Xcode Release Notes ▸ Bei neuen Xcode-Releases empfiehlt sich ein Blick in die Release Notes. Unter Known Issues werden hier bekannte Probleme und zugehörige Workarounds dokumentiert.
https://developer.apple.com/library/content/releasenotes/DeveloperTools/RN-Xcode/

App Distribution Guide ▸ Hier werden die verschiedenen Wege, iOS-Apps zu verteilen, beschrieben. Das Thema Starten von Apps auf den Hardware-Geräten wird im Kapitel Launching Your App on Devices behandelt.
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/

Submitting Bugs and Feedback ▸ Sollten Sie einen Fehler in Xcode bemerken, können Sie das Problem im Apple Bug Reporter berichten.
https://developer.apple.com/bug-reporting/

iOS Support Matrix ▸ Hier finden Sie eine Übersicht, welche Geräte von welchen iOS-Versionen unterstützt werden. Dies ist hilfreich um einschätzen zu können, ob sich der zusätzliche Aufwand für die Kompatibilität mit älteren iOS-Versionen lohnt.
http://iossupportmatrix.com/

Btn book fed239f0c0 Buch „iOS 11-Apps entwickeln mit Swift & Xcode 9“
Btn training bbbdf557d2 Nächste iOS-Schulung: 25. Februar - 01. März 2019, Stuttgart
Btn about 5378472193 Über mich · Kontakt