-
Novidades na Carteira
Confira as últimas atualizações de design e ferramentas para desenvolvedores relacionadas a tíquetes na Carteira da Apple. Renove seus tíquetes com novos estilos atraentes para criar designs sofisticados e vibrantes. Descubra novos formatos de código de barras e uma API flexível para ações de tíquetes. Conheça o Pass Designer e o Pass Builder, ferramentas poderosas que simplificam a criação, personalização e distribuição de tíquetes em grande escala.
Capítulos
- 0:01 - Introdução
- 0:40 - Pôster Genérico
- 2:36 - Códigos de barras
- 4:27 - Ações em destaque
- 5:46 - Ferramentas para desenvolvedores
- 5:47 - Pass Designer
- 10:40 - Pass Builder
- 13:50 - Personalização de um modelo de tíquete
- 15:01 - Próximas etapas
Recursos
- Pass Designer
- Creating a pass with Pass Designer
- Pass Builder
- Pass.Barcodes
- Learn more about Pass Designer
Vídeos relacionados
WWDC25
WWDC24
-
Buscar neste vídeo...
-
-
1:41 - Adopting Poster Generic
// Adopting Poster Generic "posterGeneric": { "headerFields": [ { "key": "memberID", "label": "Guest No.", "value": "102035" } ], "footerFields": [ { "key": "membershipType", "value": "Family Pass" } ] } -
2:11 - Adopting Poster Generic with Generic fallback
// Adopting Poster Generic and supporting Generic on iOS 26 and earlier "posterGeneric": { "headerFields": [ { "key": "memberID", "label": "Guest No.", "value": "102035" } ], "footerFields": [ { "key": "membershipType", "value": "Family Pass" } ] }, "generic": { "headerFields": [ { "key": "memberID", "label": "Guest No.", "value": "102035" } ], "footerFields": [ { "key": "membershipType", "value": "Family Pass" } ] } -
2:52 - Barcodes: Add new types for iOS 27
// Adopting new barcode types "barcodes": [ { "format": "PKBarcodeFormatCodabar" "message": "…" "messageEncoding": "…" } ] -
3:37 - Barcodes: Supporting iOS 26 and earlier
// Adopting new barcode types and supporting iOS 26 and earlier. "barcodes": [ { "format": "PKBarcodeFormatCodabar" "message": "123456789" "messageEncoding": "iso-8859-1" }, { "format": "PKBarcodeFormatQR" "message": "123456789" "messageEncoding": "iso-8859-1" } ] -
4:48 - Featured actions
// Featured actions "featuredActions": [ { "identifier": "my-offer-id", "type": "membershipBenefits", "url": "www.example.com/offers" } ] -
10:56 - Package.swift
// Package.swift import PackageDescription let package = Package( name: "MyServer", products: [ .library( name: "MyServer", targets: ["MyServer"] ), ], dependencies: [ .package(path: "./path/to/PassBuilder") ], targets: [ .target( name: "MyServer", dependencies: [ .product(name: "PassBuilder", package: "PassBuilder") ] ), … ] -
11:05 - CreatePass.swift
// CreatePass.swift import PassBuilder func createPass(for doggo: MemeberModel) async throws -> URL { var package = PassPackage(url: "template.pkpasstemplate") package.pass.fields.setValue(doggo.name, forKey: "DOG_NAME") package.pass.fields.setValue(doggo.favoriteToy, forKey: "LOVES") package.pass.fields.setValue(doggo.id, forKey: "MEMBER_ID") package.background = PassImage(url: doggo.photoURL) package.pass.barcodes = [ Pass.Barcode(message: doggo.id, format: .pdf417) ] package.featuredActions = [ Pass.Action(id: "action-1", type: "viewMembership", url: doggo.membershipURL) ] … } -
13:11 - CreatePass.swift
// CreatePass.swift import PassBuilder func createPass(for doggo: MemeberModel) async throws -> URL { var package = PassPackage(url: "template.pkpasstemplate") package.pass.fields.setValue(doggo.name, forKey: "DOG_NAME") package.pass.fields.setValue(doggo.favoriteToy, forKey: "LOVES") package.pass.fields.setValue(doggo.id, forKey: "MEMBER_ID") package.background = PassImage(url: doggo.photoURL) package.pass.barcodes = [ Pass.Barcode(message: doggo.id, format: .pdf417) ] package.featuredActions = [ Pass.Action(id: "action-1", type: "viewMembership", url: doggo.membershipURL) ] let passCertificate = try PassCertificate(url: "pass.p12", password: "s3cr3t") let wwdrCertificate = try PassCertificate(url: "wwdr.cer") let signer = PassSigner( passCertificate: passCertificate, wwdrCertifiate: wwdrCertificate ) let destinationURL = URL(string: "/www/passes/" + doggo.id) try signer.signPass(package, writingTo: destinationURL) return destinationURL }
-