Apps für iOS 10 professionell entwickeln - Sauberen Code schreiben mit Swift 3 und Objective-C. Stabile Apps für iPhone und iPad programmieren. Techniken & Methoden von Grund auf verstehen

Thomas Sillmann

Apps für iOS 10 professionell entwickeln

Sauberen Code schreiben mit Swift 3 und Objective-C. Stabile Apps für iPhone und iPad programmieren. Techniken & Methoden von Grund auf verstehen

2016

811 Seiten

Format: PDF, ePUB

E-Book: €  45,99

E-Book kaufen

E-Book kaufen

ISBN: 9783446452060

 

Inhalt

8

Vorwort

22

Danksagung

26

1 Über iOS

28

1.1 Was ist iOS?

28

1.1.1 iOS und macOS

29

1.1.2 Besonderheiten der iOS-Plattform

30

1.2 iOS für Entwickler

31

1.2.1 Hardware für Entwickler

31

1.2.2 Software für Entwickler

33

1.2.3 Das Apple Developer Program

33

1.3 Der Aufbau von iOS

35

1.3.1 Die vier Schichten von iOS

35

1.4 Die perfekte iOS-App

37

1.4.1 iOS Human Interface Guidelines

38

2 Die (bisherige) Programmiersprache – Objective-C

40

2.1 Über Objective-C und objektorientierte Programmierung

40

2.2 Grundlagen der Programmierung

41

2.2.1 Objekte

41

2.2.2 Primitive Datentypen

41

2.2.3 Variablen

42

2.2.4 Operatoren

44

2.2.5 Abfragen und Schleifen

44

2.2.6 Kommentare

49

2.3 Aufbau einer Klasse

50

2.3.1 Die Header-Datei

50

2.3.2 Die Implementation-Datei

52

2.3.3 Los geht’s: Unsere erste Klasse!

53

2.4 Methoden

57

2.4.1 Aufbau von Methoden

57

2.4.2 Methoden in Header- und Implementation-Dateien einer Klasse

59

2.4.3 Implementierung von Methoden

61

2.4.4 Methoden aufrufen

63

2.4.5 Klassen- und Instanzmethoden

64

2.5 Instanzvariablen

65

2.6 Properties

67

2.6.1 Aufbau einer Property

67

2.6.2 Die Punktnotation

69

2.6.3 Optionen

70

2.6.4 Direktzugriff auf Properties

72

2.6.5 Setter und Getter überschreiben

74

2.7 Konstanten

76

2.7.1 Deklaration von Konstanten

77

2.8 Namenskonventionen

78

2.8.1 Klassen

78

2.8.2 Methoden

78

2.8.3 Properties

79

2.9 Strukturen

79

2.9.1 enum

79

2.9.2 typedef

80

2.10 Initialisierung von Objekten

81

2.10.1 alloc und init

82

2.10.2 Zeiger

84

2.11 init im Detail

85

2.11.1 Erstellen eigener init-Methoden

87

2.11.2 Designated Initializer

88

2.12 Vererbung

90

2.12.1 Methoden der Superklasse überschreiben

92

2.13 Kategorien

94

2.13.1 Aufbau von Kategorien

94

2.13.2 Kategorien in Xcode erstellen

95

2.13.3 Verwenden von Kategorien

97

2.14 Erweiterungen

97

2.14.1 Aufbau von Erweiterungen

98

2.14.2 Erweiterungen innerhalb der Implementation-Datei

98

2.14.3 Erweiterungen in Xcode erstellen

99

2.15 Protokolle

100

2.15.1 Aufbau von Protokollen

101

2.15.2 Zuweisen eines Protokolls zu einer Klasse

102

2.15.3 Vererbung in Protokollen

103

2.15.4 Protokolle in Xcode erstellen

103

2.16 #import und @class

105

2.16.1 #import

105

2.16.2 @class

106

2.17 Blöcke

107

2.17.1 Was sind Blöcke?

108

2.17.2 Aufbau eines Blocks

108

2.17.3 Zuweisen eines Blocks zu einer Variablen

109

2.17.4 Nutzen eines Blocks als Parameter einer Methode

110

2.17.5 Blöcke als Properties

112

2.17.6 Blockvariablen

112

2.17.7 Globale Blöcke

113

2.18 Singletons

114

3 Der Neue im Club – Swift

116

3.1 Programmierst du noch oder swifst du schon?

116

3.1.1 Über Swift

116

3.1.2 Voraussetzungen zur Nutzung von Swift

117

3.1.3 Swift und Objective-C

117

3.1.4 Playgrounds

118

3.2 Grundlagen der Programmierung

120

3.2.1 Swift Standard Library und Fundamental Types

120

3.2.2 Variablen und Konstanten

122

3.2.3 Operatoren

124

3.2.4 Abfragen und Schleifen

125

3.2.5 Kommentare

132

3.2.6 print

133

3.3 Fundamental Types und Swift Standard Library im Detail

135

3.3.1 Strings

135

3.3.2 Arrays

138

3.3.3 Dictionaries

143

3.3.4 Any und AnyObject

147

3.4 Aufbau einer Klasse

147

3.4.1 Erstellen einer Instanz einer Klasse

150

3.4.2 Zugriff auf Eigenschaften einer Klasse

150

3.5 Methoden

151

3.5.1 Methoden mit Rückgabewert

152

3.5.2 Methoden mit Parametern

153

3.5.3 Local und External Parameter Names

156

3.5.4 Methodennamen in Swift

158

3.5.5 Aufruf von Methoden einer Klasse

159

3.5.6 Zugriff auf andere Eigenschaften und Methoden einer Klasse

160

3.5.7 Klassen- und Instanzmethoden

161

3.5.8 Verändern von Parametern einer Methode mittels inout

163

3.6 Closures

164

3.6.1 Closures als Variablen und Konstanten

166

3.6.2 Closures als Parameter für Methoden

167

3.6.3 Kurzschreibweise für Closures als Parameter von Methoden

170

3.7 Properties

173

3.7.1 Computed Properties

174

3.7.2 Property Observers

177

3.7.3 Type Properties

178

3.8 Vererbung

179

3.8.1 Überschreiben von Eigenschaften und Methoden der Superklasse

181

3.8.2 Zugriff auf Eigenschaften und Methoden der Superklasse

182

3.9 Optionals

183

3.9.1 Deklaration von Optionals

183

3.9.2 Zugriff auf Optionals

184

3.10 Initialisierung

187

3.10.1 Schreiben von Initializern

188

3.10.2 Designated und Convenience Initializer

193

3.10.3 Initializer und Vererbung

194

3.10.4 Deinitialisierung

196

3.11 Type Casting

197

3.11.1 Typ prüfen

197

3.11.2 Downcasting

199

3.12 Enumerations

201

3.12.1 Zusätzliche Werte in Membern einer Enumeration speichern

202

3.13 Structures

204

3.14 Generics

205

3.14.1 Generic Function

207

3.14.2 Generic Type

209

3.15 Error Handling Model

211

3.16 Extensions

214

3.17 Protocols

215

3.17.1 Protocol Type

216

3.18 Access Control

218

4 Grundlagen der iOS-Entwicklung

220

4.1 Foundation-Framework

220

4.1.1 Die wichtigsten Klassen aus dem Foundation-Framework und ihre Funktionen

221

4.2 UIKit-Framework

226

4.3 Speicherverwaltung

226

4.4 Besonderheiten von Objective-C

230

4.4.1 Kurzschreibweisen zum Erstellen von Objekten

230

4.4.2 Vergleichen der Werte von verschiedenen Objekten

233

4.4.3 Schlüsselwörter zum Zusammenspiel mit Optionals

234

4.5 Besonderheiten von Swift

235

4.5.1 Zusammenspiel zwischen Fundamental Types und Foundation-Framework-Klassen

235

4.5.2 Playgrounds im Detail

235

4.6 ObjectiveC und Swift vereint

239

4.6.1 ObjectiveC-Code in Swift verwenden

240

4.6.2 Swift-Code in Objective-C verwenden

241

4.7 NSError

241

4.7.1 Eigene Methode mit NSError-Parameter erstellen

243

4.8 Dokumentation

244

4.8.1 Besonderheiten bei Methoden

245

4.8.2 Doxygen-Dokumentation in Xcode

247

4.9 Nebenläufigkeit mit Grand Central Dispatch

248

4.9.1 Parallel laufenden Code erstellen

249

4.10 Grundlegende Struktur einer App

251

4.10.1 main.m

251

4.10.2 Info.plist

252

4.10.3 App Delegate

252

4.11 Lebenszyklus einer iOS-App

253

4.11.1 Start einer App

253

4.11.2 Lebenszyklus einer App

254

4.11.3 Die Methoden des App Delegate

255

4.11.4 Start der App

256

4.12 Tipps für die tägliche Arbeit

258

4.12.1 Die netten Kleinigkeiten .?.?.

258

4.12.2 Fast Enumeration in ObjectiveC

259

4.12.3 Type Casting in ObjectiveC

259

4.12.4 Xcode-Beispielprojekte

260

5 Die Entwicklungsumgebung – Xcode

262

5.1 Willkommen bei Xcode!

262

5.1.1 Was ist Xcode?

263

5.1.2 Interface Builder und Xcode – endlich vereint!

263

5.2 Arbeiten mit Xcode

264

5.2.1 Dateien und Formate eines Xcode-Projekts

264

5.2.2 Umgang mit Dateien und Ordnern in Xcode

269

5.3 Der Aufbau von Xcode

272

5.3.1 Die Toolbar

272

5.3.2 Die Navigation Area

274

5.3.3 Die Editor Area

277

5.3.4 Die Utilities Area

279

5.3.5 Die Debug Area

280

5.4 Einstellungen in Xcode

281

5.4.1 Anpassen von Xcode

281

5.4.2 General

281

5.4.3 Accounts

282

5.4.4 Behaviors

283

5.4.5 Navigation

283

5.4.6 Fonts & Colors

284

5.4.7 Text Editing

285

5.4.8 Key Bindings

285

5.4.9 Source Control

286

5.4.10 Components

287

5.4.11 Locations

287

5.5 Projekteinstellungen

288

5.5.1 Grundlagen

288

5.5.2 Einstellungen am Projekt

290

5.5.3 Einstellungen am Target

293

5.5.4 Einstellungen am Scheme

299

5.6 Grafiken und Asset-Bundles

302

5.7 Lokalisierung mit Localizable.strings

304

5.7.1 Grundlagen

304

5.7.2 NSLocalizedString

304

5.7.3 Erstellen der Localizable.strings-Datei

305

5.7.4 Localized String mit Parameter

307

5.7.5 Alle Localized Strings automatisch auslesen

308

5.8 Der iOS-Simulator

309

5.8.1 Grundlagen

309

5.8.2 Funktionen und Möglichkeiten des Simulators

309

5.8.3 Performance und Einschränkungen des Simulators

313

5.9 Dokumentation

313

5.9.1 Nichts geht über die Dokumentation!

313

5.9.2 Das Documentation-Window

316

5.9.3 Direktes Aufrufen der Dokumentation aus Xcode heraus

319

5.10 Devices

320

5.11 Organizer

322

5.12 Debugging in Xcode

325

5.12.1 Was ist Debugging?

325

5.12.2 Die Debug Area

325

5.12.3 Die Arbeit mit dem Debugger – NSLog und Breakpoints

326

5.12.4 Debug Navigator

335

5.13 Refactoring

336

5.13.1 Grundlagen

336

5.13.2 Refactoring-Funktionen in Xcode

337

5.14 Instruments

340

5.14.1 Über Instruments

340

5.14.2 Nächste Schritte

343

5.15 Tipps für die tägliche Arbeit

343

5.15.1 Man lernt immer was dazu!

343

5.15.2 Code Snippets

344

5.15.3 Open Quickly

345

5.15.4 Caller einer Methode feststellen

346

5.15.5 Speicherorte für Ordner und Dateien ändern

347

5.15.6 Shortcuts für die Navigation Area

347

5.15.7 Run Without Building

348

5.15.8 Clean Build

349

6 MVC – Model-View-Controller

350

6.1 MVC .?.?. was?

350

6.2 MVC in der Praxis

352

6.3 Kommunikation zwischen Model und Controller

352

6.3.1 Key-Value-Observing

353

6.3.2 Notifications

359

6.4 Kommunikation zwischen View und Controller

362

6.4.1 Target-Action

362

6.4.2 Delegation

364

7 Die Vielfalt der (View-)Controller

366

7.1 Alles beginnt mit einem View-Controller .?.?.

366

7.2 UIViewController – die Mutter aller View-Controller

368

7.2.1 Wichtige Methoden von UIViewController

370

7.2.2 UIView – fester Bestandteil eines jeden UIViewControllers

372

7.3 View-Controller-Hierarchien

373

7.4 View-Controller erstellen mit dem Interface Builder

375

7.4.1 View-Controller mit NIB-File

376

7.5 Storyboards

406

7.5.1 Über Storyboards

406

7.5.2 Das Storyboard-Projekt

407

7.5.3 Die Klasse UIStoryboard

417

7.5.4 Segues

419

7.5.5 Zugriff über den App Delegate

422

7.5.6 Quo vadis – Storyboard oder NIB-File?

423

7.6 Auto Layout

424

7.6.1 Setzen und Konfigurieren von Constraints

424

7.6.2 Constraints bearbeiten und weiter anpassen

426

7.6.3 „Optimale“ Constraints automatisch setzen lassen

428

7.7 UIViewController und seine Subklassen

429

7.7.1 UINavigationController

430

7.7.2 UITabBarController

436

7.7.3 UITableViewController

440

7.7.4 UICollectionViewController

447

7.7.5 UISplitViewController

448

8 Views erstellen und gestalten

452

8.1 Über Views in iOS

452

8.2 UIView – die Mutter aller Views

452

8.3 Arbeiten mit UIView

453

8.3.1 Programmatisches Erstellen einer UIView

453

8.3.2 View-Hierarchien

455

8.3.3 Weiterführendes zu UIView

459

8.4 Views erstellen mit dem Interface Builder

460

8.4.1 Grundlagen

460

8.4.2 View-Klasse mit NIB-File erstellen

461

8.4.3 Beliebiges NIB-File laden und verwenden

465

8.4.4 NIB-File nachträglich erstellen

466

8.4.5 Unterschiedliche NIB-Files für iPhone und iPad erstellen

468

8.5 Die wichtigsten Views und ihre Funktionen

470

8.5.1 Grundlagen

470

8.5.2 UILabel

470

8.5.3 UIButton

470

8.5.4 UISwitch

471

8.5.5 UISegmentedControl

471

8.5.6 UITextField

471

8.5.7 UIImageView

472

8.5.8 UIPickerView

472

8.5.9 UIDatePicker

473

8.5.10 UIWebView

473

8.5.11 UIMapView

474

8.5.12 UIScrollView

474

8.5.13 UITextView

475

8.5.14 UITableView

476

8.5.15 UICollectionView

476

8.5.16 Wichtig und unerlässlich: die Dokumentation!

476

8.5.17 Views und der Interface Builder

477

8.6 Die Grundlage gut gestalteter Views

477

9 Das Model und die Datenhaltung

480

9.1 Die Logik Ihrer App

480

9.2 Benutzereinstellungen sichern und nutzen

481

9.2.1 Über UserDefaults

481

9.2.2 Standardeinstellungen festlegen

484

9.3 Zugriff auf das Dateisystem

484

9.3.1 Das Dateisystem von iOS

484

9.3.2 FileManager

486

9.3.3 File-Sharing-Funktion nutzen

493

9.4 Core Data

494

9.4.1 Datenbankverwaltung mit Core Data

494

9.4.2 Wie funktioniert Core Data?

495

9.4.3 Die Klassen und Bestandteile von Core Data

496

9.4.4 Aufbau eines Standard-Core Data Stacks

497

9.4.5 Der Core Data-Editor

500

9.4.6 Erstellen eines neuen Managed-Objects

508

9.4.7 Löschen eines Managed-Objects

509

9.4.8 Laden von Managed-Objects

509

9.4.9 Was kommt als Nächstes?

511

10 Local und Push Notifications

512

10.1 Was sind Notifications?

512

10.2 Registrieren von Notification Types

514

10.3 Registrieren von Notification Categories und Actions

518

10.3.1 Erstellen einer Action

518

10.3.2 Erstellen einer Kategorie

520

10.3.3 Registrieren von Kategorien

522

10.3.4 Reagieren auf eine Action

523

10.4 Local Notifications

525

10.4.1 Konfiguration des Alerts

525

10.4.2 Konfiguration des Sounds

527

10.4.3 Konfiguration des Badge Values

528

10.4.4 Konfiguration von Audio, Bildern und Videos

528

10.4.5 Speichern zusätzlicher Informationen in einer Local Notification

530

10.4.6 Festlegen des Ausführungsereignisses

531

10.4.7 Erstellen von Notification Requests

535

10.4.8 Registrieren von Local Notifications im System

536

10.4.9 Abbrechen bereits registrierter Local Notifications

537

10.4.10 Reagieren auf den Erhalt einer Notification bei aktiver App

537

10.5 Push Notifications

539

10.5.1 Versand von Push Notifications

540

10.5.2 Erstellen einer Push Notification

544

10.5.3 Quality of Service

547

11 Extensions

548

11.1 Verfügbare Typen von Extensions

548

11.2 Erstellen von Extensions in Xcode

551

11.3 Funktionsweise einer Extension

554

11.4 Wichtige Klassen und Objekte

555

11.5 Unterstützte Dateitypen für Share- und Action-Extensions festlegen

556

11.6 Action Extension

557

11.6.1 Action mit User Interface

557

11.6.2 Action ohne User Interface

558

11.7 Content Blocker Extension

559

11.7.1 Konfiguration eines Content Blockers

560

11.7.2 Aktualisieren eines Content Blockers

563

11.7.3 Die Klasse ContentBlockerRequestHandler

563

11.8 Custom Keyboard

564

11.8.1 Erstellen eines Custom Keyboards

564

11.8.2 Arbeit mit der Klasse UIInputViewController

565

11.8.3 Bearbeiten und Setzen von Text

567

11.8.4 Mehrsprachige Keyboards

568

11.9 Document Provider

568

11.9.1 Document Provider-Extension

569

11.9.2 File Provider

572

11.9.3 Document Provider aufrufen

574

11.10 iMessage Extension

576

11.10.1 Aufbau und Funktionsweise der iMessage Extension

576

11.10.2 Entwicklung einer iMessage Extension

580

11.11 Intents Extension

591

11.11.1 Domains und Intents

592

11.11.2 Bestandteile einer Intents Extension

593

11.11.3 Funktionsweise einer Intents Extension

594

11.11.4 Übersicht über verfügbare Intents

603

11.11.5 Voraussetzungen zur Verwendung von Siri in einer Intents Extension

605

11.11.6 Erweitern von Siris Vokabular

608

11.11.7 Testen einer Intents Extension

614

11.12 Intents UI Extension

615

11.12.1 Vorbereitung der Intents UI Extension

616

11.12.2 Konfiguration des View-Controllers

617

11.12.3 Default-Layout bei Maps und Messaging deaktivieren

619

11.13 Notification Content Extension

619

11.13.1 UNNotificationContentExtension

619

11.13.2 Konfiguration der Info.plist-Datei

621

11.14 Notification Service Extension

622

11.15 Photo Editing Extension

623

11.15.1 Festlegen der unterstützten Typen zur Bearbeitung

627

11.16 Share Extension

628

11.17 Shared Links Extension

629

11.17.1 Erstellen eines NSExtensionItem

630

11.17.2 NSExtensionItem als Shared Link bereitstellen

631

11.18 Sticker Pack Extension

632

11.18.1 Erstellen einer Sticker Pack Extension

633

11.18.2 Komplexere Sticker Pack Extensions erstellen

637

11.19 Today Extension

639

11.19.1 Today Extension testen

641

11.20 Watch App

642

11.21 App Groups

642

11.21.1 Registrieren einer App Group im Apple Developer Portal

643

11.21.2 Registrieren einer App Group innerhalb einer App

644

11.21.3 Zugriff auf eine App Group

645

12 App-Entwicklung für die Apple Watch

648

12.1 Apples neues großes Ding: Die Apple Watch

648

12.2 Möglichkeiten, Einschränkungen, Unterschiede

649

12.3 Das WatchKit SDK

651

12.3.1 WKInterfaceController

652

12.3.2 WKInterfaceObject

652

12.3.3 WKExtensionDelegate

653

12.3.4 Weitere Klassen

653

12.4 Aufbau und Funktionsweise von Apple Watch-Apps

654

12.4.1 iPhone-App

654

12.4.2 WatchKit Extension

654

12.4.3 WatchKit App

655

12.4.4 Verbindung von WatchKit Extension und WatchKit App

655

12.4.5 Notification Scene

655

12.4.6 Complications

656

12.5 Erstellen einer WatchKit App mitsamt WatchKit Extension

656

12.5.1 Dateien der WatchKit Extension

659

12.5.2 Dateien der WatchKit App

660

12.5.3 Ausführen und Testen der Apple Watch-App

661

12.6 Lebenszyklus einer WatchKit App

662

12.7 Der WKInterfaceController im Detail

664

12.7.1 Initialisierung

664

12.7.2 Activation Events

666

12.7.3 Setzen des Titels

666

12.7.4 Ein- und Ausblenden von Interface-Controllern

667

12.7.5 Umsetzen eines Navigation Stacks

669

12.7.6 Reaktion auf Storyboard-Events

670

12.7.7 Weitere Attribute

671

12.7.8 Weitere Funktionen von WKInterfaceController

672

12.8 Arbeiten mit dem Interface-Storyboard einer WatchKit App

672

12.8.1 Erstellen und Konfigurieren eines WKInterfaceController

673

12.8.2 Hinzufügen und Konfigurieren von Interface-Elementen

675

12.8.3 Positionierung und Anordnung von Interface-Elementen

676

12.8.4 Ändern der Größe von Interface-Elementen

676

12.8.5 Unterschiedliche Konfigurationen für verschiedene Apple Watch-Größen

678

12.8.6 Gruppierung von Interface-Elementen mittels WKInterfaceGroup

680

12.8.7 Verbindung von Storyboard und Code

682

12.8.8 Zusammenfassen mehrerer Interface-Controller zu einem page-based Interface

686

12.8.9 Erstellen und Konfigurieren von Segues

686

12.9 Erstellen von Tabellen

689

12.9.1 Hinzufügen einer Tabelle im Storyboard

689

12.9.2 Konfiguration einer Zelle

690

12.9.3 Konfiguration einer Tabelle

694

12.9.4 Verwenden verschiedener Zellen in einer Tabelle

696

12.9.5 Zellen hinzufügen und entfernen

699

12.9.6 Direkt zu einer bestimmten Zelle scrollen

700

12.9.7 Aktuelle Anzahl an Zellen auslesen

700

12.9.8 Auf die Auswahl einer Zelle reagieren

701

12.9.9 Segues von Zellen einer Tabelle über das Storyboard konfigurieren

702

12.10 Erstellen von Menüs

703

12.10.1 Erstellen eines Menüs im Storyboard

704

12.10.2 Erstellen eines Menüs im Code

708

12.10.3 Fazit: Menüerstellung im Storyboard oder im Code?

710

12.10.4 Mischen von Menüpunkten aus Storyboard und Code

711

12.11 Eingabe von Text

711

12.12 Notification Scene

713

12.12.1 Short-Look und Long-Look Interface

714

12.12.2 Long-Look Interface im Detail

715

12.12.3 Erstellen eigener Notification Scenes

716

12.12.4 Testen einer Notification Scene

724

12.13 Complications

724

12.13.1 Was sind Complications?

725

12.13.2 Das ClockKit Framework

725

12.13.3 Aufbau und Bestandteile von Complications

725

12.13.4 Vorbereiten des eigenen Projekts

729

12.13.5 Entwicklung einer Complication

731

12.13.6 Bereitstellen der Complication mittels CLKComplicationDataSource

736

12.14 Kommunikation und Datenaustausch zwischen iOS und watchOS

739

12.14.1 Watch Connectivity

740

12.15 Was sonst noch zu sagen und zu beachten ist

745

13 Tests

748

13.1 Unit-Tests

748

13.1.1 Aufbau und Funktionsweise von Unit-Tests

753

13.1.2 Aufbau einer Test-Case-Klasse

755

13.1.3 Neue Test-Case-Klasse erstellen

757

13.1.4 Ausführen von Unit-Tests

759

13.1.5 Was sollte ich eigentlich testen?

761

13.2 Performance-Tests

761

13.3 UI-Tests

763

13.3.1 Klassen für UI-Tests

764

13.3.2 Aufbau von UI-Test-Klassen

767

13.3.3 Automatisches Erstellen von UI-Tests

767

13.3.4 Einsatz von UI-Tests

768

13.4 Test-Driven Development

768

14 Versionierung

770

14.1 Über Versionskontrolle

770

14.2 Basisfunktionen und -begriffe von Git

771

14.2.1 Begriffe

771

14.2.2 Funktionen

771

14.3 Source Control in Xcode

773

14.4 Version Editor und Source Control

777

15 Veröffentlichung im App Store

780

15.1 Zertifikate, Provisioning Profiles und Ihre App

780

15.1.1 Certificates, IDs & Profiles

782

15.1.2 Erstellen von?.?.?.

784

15.2 Testen auf dem eigenen Endgerät

797

15.2.1 Setzen des Teams

797

15.2.2 Auswahl Ihres iOS-Geräts

797

15.3 iTunes Connect und Veröffentlichung im App Store

799

15.3.1 Vorbereiten der App in iTunes Connect

801

15.3.2 Upload der App in den App Store

804

15.3.3 Wie geht es weiter?

805

Index

806

 

© 2009-2024 ciando GmbH