iOS 27 introduces the Poster Generic pass style for bold, image-forward loyalty and membership cards, four new barcode formats (EAN-13, Code 39, Codabar, ITF), and a new featuredActions API that surfaces contextual actions below any pass style. A new Pass Designer Mac app and Pass Builder Swift package streamline template creation and server-side pass signing.
• Poster Generic enables visually rich membership and loyalty passes with full-bleed artwork, giving brands a premium canvas without custom UI
• Featured actions let any pass style (not just event tickets) expose deep-link actions like viewing member benefits or managing bookings directly from Wallet
• Pass Builder (Swift on Server, Mac + Linux) automates manifest generation, signing, and packaging, replacing manual shell-script pipelines for pass distribution at scale
Demonstrates building a Poster Generic membership pass with a PDF417 barcode and a featuredActions entry using the Pass Builder Swift package on a server or Mac target.
import Foundation
import PassBuilder // swift package: apple/pass-builder
// Represents data loaded from your database
struct MemberRecord {
let memberID: String
let name: String
let favoriteToy: String
let photoURL: URL
}
func createMemberPass(for member: MemberRecord,
templateURL: URL,
outputDirectory: URL) async throws -> URL {
// 1. Load the .pkpasstemplate created in Pass Designer
var package = try PassPackage(contentsOf: templateURL)
// 2. Personalise pass fields
try package.pass.fields.setValue(member.name, forKey: "DOG_NAME")
try package.pass.fields.setValue(member.memberID, forKey: "DOG_ID")
try package.pass.fields.setValue(member.favoriteToy, forKey: "LOVES")
// 3. Set the full-bleed background photo (Poster Generic)
package.backgroundImage = PassImage(contentsOf: member.photoURL)
// 4. Configure a PDF417 barcode encoding the member ID
let barcode = Pass.Barcode(
message: member.memberID,
format: .PDF417
)
package.pass.barcodes = [barcode]
// 5. Add a featured action so members can view their benefits
let benefitsAction = Pass.Action(
identifier: "view-benefits-\(member.memberID)",
type: .membershipBenefits,
value: URL(string: "https://example.com/members/\(member.memberID)/benefits")!
)
package.pass.featuredActions = [benefitsAction]
// 6. Load signing certificates and sign the pass
let passCert = try PassCertificate(
contentsOf: URL(filePath: "/secrets/pass.p12"),
passphrase: "s3cr3t"
)
let wwdrCert = try PassCertificate(
contentsOf: URL(filePath: "/secrets/AppleWWDRCAG4.cer")
)
let signer = PassSigner(passCertificate: passCert,
wwdrCertificate: wwdrCert)
let outputURL = outputDirectory
.appendingPathComponent("\(member.memberID).pkpass")
try await signer.signPass(package, to: outputURL)
return outputURL
}iOS 27 adds sectioned queries, codable model attributes, ResultsObserver for non-SwiftUI change observation, and HistoryObserver for reacting to persistent history changes in SwiftData.
USDKit is a new first-party Swift framework introduced in iOS/macOS 27 that brings native USD scene creation, composition, modification, and export capabilities to Apple platform apps, with deep RealityKit and Spatial Preview integration.
LiveCommunicationKit is the modern replacement for CXProvider that delivers rich, native conversation UIs integrated with the Lock Screen, Dynamic Island, Phone app Recents, and Siri. It provides a unified lifecycle model for audio and video conversations with a single delegate-driven action pipeline.
Poster Generic only displays the first footer field — additional footer fields are silently ignored. New barcode formats (Codabar, EAN-13, Code 39, ITF) are not rendered on iOS 26 and earlier; always include a fallback format (e.g. QR or PDF417) as a second entry in the barcodes array. featuredActions supports at most two actions per pass. Pass Builder is a new Swift package (not a built-in Apple framework) that must be added as a SPM dependency.
Poster Generic and new barcode formats require iOS 27+. Passes targeting older OS versions should include fallback generic style and fallback barcode formats in the barcodes array.
The NowPlaying framework introduces a first-class Swift API for surfacing app media in system-wide now-playing surfaces — Lock Screen, Control Center, Dynamic Island, StandBy, CarPlay, Apple Watch, and Apple TV — via a declarative MediaSessionRepresentable protocol. It also supports remote media sessions (for controlling external speakers/TVs) and Media Sharing Extensions for routing media to third-party devices.