Was ist die PassKit API?

Apples PassKit-Framework ist ein umfassendes Set von Tools und Services, die es iOS-Entwicklern ermöglichen, digitale Pässe für Apple Wallet zu erstellen, zu verteilen und zu verwalten. Ein Pass kann eine Bordkarte, ein Eventticket, eine Treuekarte, eine Geschenkkarte, ein Gutschein oder jede andere Art von Anmeldeinformationen sein, die davon profitieren, sicher auf dem Gerät eines Benutzers gespeichert zu werden. Die PassKit-API übernimmt alles von der Passgenerierung und -signierung bis hin zu Echtzeit-Updates über Push-Benachrichtigungen. Für Fluggesellschaften, Ticketing-Plattformen und Eventorganisatoren ist die PassKit-API zum De-facto-Standard für die Beseitigung von Papierdokumenten geworden und bietet ein reibungsloses mobiles Erlebnis.

Jeder Pass wird als -Datei verpackt – ein signiertes ZIP-Archiv mit JSON-Daten, Bildern und Lokalisierungszeichenfolgen. Wenn ein Benutzer diese Datei öffnet (über einen Link, eine E-Mail oder einen In-App-Download), validiert iOS die Signatur und präsentiert den Pass in Wallet. Von diesem Moment an lebt der Pass auf dem Gerät, kann über die Luft aktualisiert werden und funktioniert auch offline für kritische Informationen wie Barcodes oder QR-Codes.

Wie die PassKit API funktioniert

Struktur der Pass-Datei

Eine -Datei ist ein Standard-ZIP-Archiv, das mindestens ein -Manifest, ein (eine Liste aller Dateien mit ihren SHA-1-Hashes) und eine Signaturdatei () enthalten muss. Die -Datei definiert den gesamten Pass-Inhalt: Header-Felder, Primärfelder, Sekundärfelder, Hilfsfelder, Barcodes und Transit-Typ für Bordkarten. Bilder (Logo, Icon, Hintergrund, Streifen, etc.) werden in Unterverzeichnissen für jede Anzeigeauflösung (z.B. für 1x, für 2x, für 3x platziert.

Signing und Distribution

Apple verlangt, dass alle Pässe kryptographisch mit einem Zertifikat signiert werden, das von Entwicklern ausgestellt wurde (erhältlich über das Apple Developer Portal). Die Signatur überprüft die Authentizität und Integrität des Passes. Nach der Signatur kann der Pass auf einem Server gehostet und über eine URL verteilt werden, die die Wallet-Installation auslöst. Alternativ können Pässe als E-Mail-Anhänge gesendet, in QR-Codes eingebettet oder direkt von Ihrer App aus mit dem oder dem modernen geschoben werden.

Echtzeit-Updates über Push

Eine der mächtigsten Funktionen von PassKit ist die Möglichkeit, Pässe nach der Ausgabe zu aktualisieren. Wenn ein Flug Gates wechselt oder ein Ticket aktualisiert wird, kann der Server eine stille Push-Benachrichtigung an das Gerät des Benutzers senden. Das Gerät holt dann eine neue -Datei von der registrierten Webservice-URL ab. Der Pass in Wallet wird nahtlos ersetzt und der Benutzer sieht die aktualisierten Informationen sofort. Für Boarding-Pässe bedeutet dies, dass Gate-Änderungen, Sitzplatzumwidmungen oder Verzögerungen automatisch angezeigt werden, ohne dass der Benutzer eine App erneut öffnen muss.

Der Push-Update-Fluss erfordert einen Webdienst, der der Spezifikation von Apple entspricht: Der Dienst muss Endpunkte für den Erhalt des neuesten Passes, der Seriennummern und der Remote-Geräteregistrierung freigeben. Dies wird normalerweise in Ihrem Backend mit Node.js, PHP, Python oder einem beliebigen Stack implementiert, der HTTP-Anforderungen verarbeiten kann.

Wichtige Vorteile für Boarding Pass und Ticket Management

Benutzer Komfort und reduzierte Reibung

Durch die Speicherung einer Bordkarte oder eines Tickets in Apple Wallet ist es nicht mehr erforderlich, nach einer Papierversion zu suchen oder eine App eines Drittanbieters offen zu halten. Die Pässe sind über den Sperrbildschirm (über Geofencing, zeitbasierte Benachrichtigung oder manuelles Tippen) zugänglich und können schnell an Gates, Drehkreuzen oder Einstiegspunkten gescannt werden. Für Fluggesellschaften beschleunigt dies das Boarding. Für Veranstaltungsorte reduziert es die Linien an Anruffenstern.

Zuverlässige, immer verfügbare Daten

Sobald ein Pass heruntergeladen wird, werden das Barcodebild und die Schlüsselinformationen lokal gespeichert. Selbst wenn das Gerät die Mobilfunkverbindung verliert, bleibt der Pass scannbar. Dies ist in Flughäfen, Stadien und Transit-Hubs, in denen die Netzabdeckung fleckig sein kann, von entscheidender Bedeutung. Der Pass erscheint dank Apples Intelligenz auch auf dem Sperrbildschirm, wenn sich das betreffende Datum/die entsprechende Uhrzeit nähert.

Dynamische Updates ohne Benutzeraktion

Mit Push-Benachrichtigungen-basierten Updates kann jede Änderung des Passinhalts sofort berücksichtigt werden. Bei einer Flugverspätung kann die geschätzte Abflugzeit in den Pass-Updates berücksichtigt werden; bei einem Festival erscheint ein Bühnenwechsel auf dem Ticket. Benutzer müssen nichts manuell aktualisieren oder herunterladen. Dies reduziert Support-Anfragen und verbessert das Gesamterlebnis.

Mehr Sicherheit und Betrugsbekämpfung

Apple Wallet-Pässe werden mit einem Entwicklerzertifikat signiert, so dass Manipulationen erkannt werden können. Darüber hinaus können Pässe eine eindeutige Seriennummer enthalten, die Sie serverseitig validieren können. Bei hochwertigen Ereignissen können Sie PassKit mit serverseitigen Prüfungen kombinieren, beispielsweise indem Sie einen Pass remote ungültig machen, wenn er erstattet wird, und dann eine aktualisierte Version mit einem "voided" -Status drücken. Barcodes können auch periodisch regeneriert werden, um eine Wiederverwendung von Screenshots zu verhindern, obwohl dies bei dynamischen Barcodesystemen üblicher ist.

Pass Schöpfung und Design

Definieren von Pass-Feldern

Pass-Inhalte werden in logische Gruppen unterteilt: Header-Felder (z. B. „Boarding Pass), Primärfelder (z. B. „Gate A12), Sekundärfelder (z. B. „Seat 23A), Hilfsfelder (z. B. „Frequent Flyer Number) und Back-Felder (z. B. Bedingungen). Jedes Feld hat einen Schlüssel, ein Label, einen Wert und optionale Attribute wie Datumsstil, Zahlenstil oder Währungsstil. Für Boarding-Pässe legen Sie außerdem die auf PKTransitTypeAir, PKTransitTypeTrain usw. fest, was sich auf das visuelle Layout und die Sperrbildschirm-Ticketansicht auswirkt.

Barcodes und QR-Codes

Jeder Pass muss mindestens ein Barcode-Objekt enthalten. Sie können , , oder verwenden (die letzten beiden sind für das Boarding von Fluggesellschaften üblich). Der Barcode-Wert - typischerweise die Ticketnummer oder ein Bestätigungscode - wird zum Zeitpunkt der Passgenerierung in das Bild codiert. Für eine erhöhte Sicherheit können Sie einen einmaligen Barcode auf dem Server generieren und in den Pass aufnehmen, dann ein Push-Update durchführen, um den alten nach dem Scannen zu ungültig zu machen. Die meisten Fluggesellschaften und Eventplattformen verwenden jedoch eine statische Passagier-ID in Kombination mit einer serverseitigen Validierung.

Leitlinien für die visuelle Gestaltung

Apple bietet strenge Designrichtlinien, um sicherzustellen, dass Pässe über Geräte hinweg konsistent aussehen. Das Logo sollte einfach und zentriert sein, der Hintergrund sollte den Barcode ergänzen, und Streifenbilder (optional) können Branding-Flair hinzufügen. Sie müssen Bilder mit mehreren Auflösungen (1x, 2x, 3x) für alle Bildschirmdichten bereitstellen. Mit dem Aufstieg größerer iPhones passt sich das Passlayout automatisch an, aber sorgfältiges Testen auf verschiedenen Bildschirmgrößen ist wichtig.

Ein praktisches Beispiel für einen richtig strukturierten Pass JSON finden Sie in der offiziellen Dokumentation von Apple Creating a Pass.

Lokalisierung

Die Lokalisierung von Pässen erfolgt durch die Aufnahme von sprachspezifischen Unterverzeichnissen (z. B. , ) innerhalb des -Pakets. Das kann diese lokalisierten Zeichenfolgen für Feldbeschriftungen und Werte referenzieren. Dies ist besonders wichtig für internationale Fluggesellschaften und globale Eventorganisatoren, die Ticketinformationen in der vom Nutzer bevorzugten Sprache präsentieren möchten.

Verteilung von Pässen an Benutzer

In‐App Direktzusatz

Wenn Ihre App der primäre Touchpoint ist, können Sie einen Pass zu Wallet mit (iOS 6+) oder dem moderneren (iOS 12+) programmatisch hinzufügen. Die Passdatei muss zuerst von Ihrem Server (als NSData) heruntergeladen und dann dem Benutzer präsentiert werden. Ein Standardfluss: Der Benutzer kauft ein Ticket oder checkt ein, Ihre App holt die signierte ab und zeigt eine Schaltfläche “Zu Wallet hinzufügen”.

E-Mail und Web-Verteilung

Für Benutzer, die Ihre App nicht installiert haben (oder es vorziehen, sie nicht für die Passverwaltung zu verwenden), können Sie einen Link zur Datei per E-Mail senden oder einen direkten Download-Link auf einer Website platzieren. Wenn der Benutzer auf ein iOS-Gerät auf den Link tippt, öffnet Safari automatisch die Wallet und fordert Sie auf, den Pass hinzuzufügen. Sie können auch Universal Links verwenden, um das Erlebnis zu verbessern. Diese Methode wird häufig von Fluggesellschaften verwendet, die Passlinks in Buchungsbestätigungs-E-Mails senden.

QR-Code oder Barcode Scannen

Ein weiteres gängiges Muster ist die Einbettung einer URL, die auf die -Datei in einen QR-Code zeigt. Beim Scannen mit der Kamera-App zeigt iOS oben auf dem Bildschirm ein Wallet-Banner an. Tippen Sie auf den Pass. Dies ist ideal für Walk-up-Ticketing an den Eventkassen oder Selbstbedienungs-Kiosken an Flughäfen. Weitere Details zu diesem Ansatz finden Sie im Einen Pass zu Wallet-Guide.

Aktualisierung von Pässen in Echtzeit

Push-basierte Update-Architektur

Um automatische Updates zu ermöglichen, müssen Sie einen einfachen Webdienst implementieren, den Apple Wallet aufrufen kann.

  1. Holen Sie sich die neueste Version eines Passes (genannt von Wallet, wenn es eine Push-Benachrichtigung erhält).
  2. Gebet Seriennummern für ein Gerät (verwendet während der Erstregistrierung und zur Erkennung von Änderungen).
  3. Registrierung und Unregistrierung (speichert Gerätetoken für Push-Benachrichtigungen).

Wenn ein Pass aktualisiert werden muss, sendet Ihr Server eine Push-Benachrichtigung (unter Verwendung von APNs) an die registrierten Geräte. Das Gerät fragt dann den Webdienst nach einer neuen -Datei. Wenn sich die Passversion geändert hat, lädt Wallet den alten Pass herunter und ersetzt ihn stillschweigend. Der aktualisierte Inhalt (z. B. neues Gate, neue Abfahrtszeit, Void-Status) ist für den Benutzer sofort sichtbar.

Wann Updates verwendet werden sollten

Häufige Anwendungsfälle sind:

  • Änderungen, Verspätungen oder Annullierungen von Fluggates
  • Umplanung von Veranstaltungen oder Änderungen des Veranstaltungsorts
  • Sitz-Upgrades oder -Downgrades
  • Validierung des Tickets (z. B. Scannen am Eingang markiert den Pass wie verwendet)
  • Sicherheitsupdates (z.B. Ersetzen eines Barcodes nach einem Scanversuch)

Beachten Sie, dass jeder Pass nur mit dem gleichen Zertifikat aktualisiert werden kann, mit dem er ursprünglich signiert wurde.

Best Practices für die Umsetzung

Sicherheit und Vertrauen

  • Bewahren Sie Ihr Signaturzertifikat und Ihren privaten Schlüssel in einer sicheren Serverumgebung auf, niemals im clientseitigen Code.
  • Validieren Sie alle eingehenden Push-Registrierungsanforderungen, um die Token-Injektion zu verhindern.
  • Verwenden Sie HTTPS für alle Interaktionen zwischen Ihrem Server und Apple Wallet.
  • Erwägen Sie die Verwendung von einmaligen Barcodes oder kurzlebigen IDs für Hochsicherheitsereignisse.
  • Implementieren Sie eine Tarifbegrenzung für Ihre Webservice-Endpunkte.

User Experience

  • Zeigen Sie die Option "Zu Wallet hinzufügen" zum wichtigsten Zeitpunkt an - nach der Kaufbestätigung, nach dem Check-in oder zu Beginn eines Veranstaltungstages.
  • Verwenden Sie einen klaren, kontrastreichen Stil für Barcodes und stellen Sie sicher, dass sie die Mindestgrößenanforderungen erfüllen (mindestens 2 Zoll breit in Druckäquivalenten).
  • Halten Sie den Pass einfach: Vermeiden Sie es, unnötige Felder zu überladen. Die Sperrbildschirmansicht sollte die drei wichtigsten Informationen zeigen.
  • Test-Pässe auf realen Geräten mit verschiedenen iOS-Versionen. Simulator kann Pässe darstellen, aber Sie können Push-Updates oder das eigentliche Scannen dort nicht testen.

Backend Integration

Ihr Pass-Generierungsdienst sollte idempotent und skalierbar sein. Verwenden Sie eine Datenbank, um die Pass-Seriennummer jedes Benutzers seiner Veranstaltung oder Flugreservierung zuzuordnen. Speichern Sie die Gerätetoken für Push-Updates. Viele Teams nutzen Bibliotheken wie Swift-Protobuf oder bestehende serverseitige Helfer (z. B. Passbook PHP-Bibliothek), um die .pkpass-Generierung zu handhaben. Unabhängig von der Sprache, immer validieren, dass die generierte ZIP-Datei, wenn sie signiert ist, korrekt auf einem Testgerät geöffnet wird.

Testen und QA

Apple stellt ein Wallet Pass Testing Tool innerhalb von Xcode bereit, das die Struktur Ihres validieren kann. Verwenden Sie es vor der Verteilung von Pässen. Testen Sie außerdem den gesamten Lebenszyklus: Pass hinzufügen → aktualisieren via Push → Pass entfernen. Testen Sie mit schlechten Netzwerkbedingungen, um sicherzustellen, dass die Offline-Barcode-Anzeige funktioniert. Simulieren Sie Push-Benachrichtigungen mit APNs-Tools, um zu überprüfen, ob Ihre Webservice-Endpunkte korrekt reagieren.

Reale Welt Beispiele und Anwendungsfälle

Fluggesellschaften und Flughäfen

Alle großen Fluggesellschaften – Delta, United, Emirates und viele andere – nutzen PassKit für Bordkarten. Passagiere können über die App der Fluggesellschaft einchecken, die Bordkarte zu Wallet hinzufügen und sie während der gesamten Reise verwenden. Gate-Änderungen und Sitzplatzumwidmungen werden automatisch verschoben. Einige Fluggesellschaften nutzen den Pass sogar, um den Lounge-Zugang oder den Prioritäts-Boarding-Status anzuzeigen. Der Pass kann auch für die Bag-Tag-Validierung bei Taschenabwürfen für Selbstbedienungs-Taschen verwendet werden. Branchenberichten zufolge sehen Fluggesellschaften, die Wallet-Pässe annehmen, einen geringeren Check-in-Schalterverkehr und höhere Kundenzufriedenheit.

Veranstaltungstickets

Ticketmaster, Live Nation und viele Festival-Apps unterstützen Apple Wallet-Pässe. Fans kaufen ein Ticket, erhalten einen Pass mit einem rotierenden QR-Code (um Betrug zu verhindern) und verwenden ihn für den Eintritt. Der Pass kann auch Add-On-Käufe wie Parkplätze oder VIP-Upgrades beinhalten. Während der Veranstaltung können Organisatoren Updates zu Fahrplanänderungen, Veranstaltungsortkarten oder Wetterwarnungen veröffentlichen. Dies reduziert die Notwendigkeit von Papierbeschilderung und Ankündigungen vor Ort.

Öffentliche Verkehrsmittel und Parkplätze

Citytransit-Agenturen (wie MTA in New York oder TfL in London) haben mit PassKit für Monats- oder Single-Ride-Tickets experimentiert. Einige Park-Apps verwenden Wallet-Pässe als digitale Parkausweise, die von Strafverfolgungsbeamten validiert werden können. Transit-Pässe profitieren von der gleichen Echtzeit-Push-Fähigkeit - z. B. wenn eine Zuglinie gestört wird, kann der Pass alternative Routen vorschlagen.

Einschränkungen und Überlegungen

Während PassKit leistungsstark ist, hat es Einschränkungen, die Entwickler planen müssen für:

  • iOS only: Pässe können nicht zu Android-Geräten hinzugefügt werden. Wenn Ihre Zielgruppe plattformübergreifend ist, müssen Sie eine Alternative anbieten (z. B. ein PDF oder ein webbasiertes mobiles Ticket).
  • Keine Bluetooth- oder NFC-Interaktion (standardmäßig): Pässe unterstützen NFC nicht, es sei denn, Sie integrieren die NFC-Sitzung einer nativen App. Für echtes Tap-and-Go müssten Sie Core NFC separat verwenden.
  • Push-Update-Latenz: Während Push-Benachrichtigungen schnell sind, muss das Gerät online sein, um den Auslöser zu erhalten. Wenn ein Benutzer während eines Updates offline ist, bleibt der Pass bis zur Verbindung veraltet.
  • Speicher und Speicher: Jeder Pass ist klein (normalerweise 30-80 KB), aber wenn Sie Millionen von Pässen ausgeben, muss Ihr Push-Webdienst eine hohe Parallelität bewältigen.
  • Zertifikatverlängerung: Pass-Signaturzertifikate verfallen jedes Jahr oder zwei. Sie müssen sicherstellen, dass Ihr Server das Zertifikat vor dem Ablauf aktualisiert, da sonst alle mit dem alten Zertifikat signierten Pässe nicht mehr aktualisiert werden können (sie funktionieren immer noch, aber neue Pushes scheitern).

Schlussfolgerung

Die iOS PassKit API bietet eine robuste, sichere und benutzerfreundliche Möglichkeit, Bordkarten und Tickets in Apple Wallet zu verwalten. Durch die Nutzung von Passerstellung, Signatur, Verteilung und Push-Updates in Echtzeit können Entwickler ein nahtloses Reise- oder Event-Erlebnis bieten, das die Benutzer auf dem Laufenden hält, ohne dass ein ständiges App-Engagement erforderlich ist. Die Implementierung von PassKit erfordert eine sorgfältige Aufmerksamkeit auf Apples Design- und Sicherheitsrichtlinien sowie eine zuverlässige serverseitige Infrastruktur, aber die Kundenzufriedenheit und Betriebseffizienz sind erheblich.

Für weitere Informationen siehe Apples PassKit Dokumentation und den PassKit Programming Guide Diese Ressourcen decken Pass JSON-Tasten, Bildspezifikationen und das Push-Update-Protokoll in ausführlichen Details ab.