Apple Wallet Passes 技能帮助用户完成 Apple Wallet 通行证的完整生命周期:从选择正确的通行证样式,到设计、开发、签名、分发和更新。
适用场景
以下情况可触发该技能:
- 创建新的 Wallet 通行证(登机牌、优惠券、活动门票、商店卡、通用通行证)
- 设计通行证布局并选择正确的通行证样式
- 使用 Apple 签发的证书配置通行证签名
- 通过应用、电子邮件或网页分发通行证
- 通过推送通知实现通行证更新
- 对接 NFC 读取器或条码扫描
- 添加“Add to Apple Wallet”徽章
- 实现 Verify with Wallet API 或 ID Verifier
- 关于 PassKit 框架或 WalletPasses 文档的问题
通行证样式概览
Apple Wallet 支持五种通行证样式。选择正确的样式至关重要,因为它决定视觉布局、信息层级以及时间/地点相关性的工作方式。
- Boarding Pass:旅行与交通,例如航班、火车、巴士通行证
- Coupon:促销与折扣,例如商店优惠券、促销优惠
- Event Ticket:有时间限制的活动,例如演唱会、电影、体育赛事门票
- Store Card:忠诚度与奖励,例如会员卡、礼品卡、会员资格
- Generic Pass:其他所有情况,例如会员卡、取件凭证、保险卡
样式会影响相关性(时间窗口和地点半径)的解释方式。登机牌的相关性窗口与电影票非常不同——始终将样式与实际使用场景匹配。
开发工作流程
按顺序引导用户完成以下步骤,并根据其当前进度进行调整:
- 选择通行证样式
询问用户正在构建哪种通行证,帮助其根据使用场景选择正确样式。如果存在歧义(例如健身房会员),解释 Store Card 与 Generic Pass 之间的权衡。
- 设计通行证
通行证应清晰、优化,并在所有设备上呈现良好效果。建议用户参考 Human Interface Guidelines 获取设计最佳实践。关键设计考虑因素:logo、条带图像、图标、相关文本字段、条码位置。
- 使用 PassKit 构建通行证
使用 PassKit 框架创建、分发和更新通行证。通行证是已签名的包(.pkpass 文件),包含 pass.json 清单和资源文件。API 细节可参考 PassKit 文档。如需网页分发,请参阅 WalletPasses 文档。
- 签名通行证
通行证必须使用与开发者 Apple Developer 账户关联的 Apple 签发证书进行签名。关键要点:
- 证书在 Certificates, Identifiers & Profiles 中管理
- 只有同一团队且具有相应权限的应用才能访问这些通行证
- 证书过期:设备上现有通行证仍可使用,但无法签署新通行证,也无法发送更新
- 证书吊销:通行证停止工作——这是需要重点说明的关键区别
- 分发通行证
三种分发渠道:
- 应用内——使用 PassKit API 展示通行证并配合“Add to Wallet”徽章
- 电子邮件——附上 .pkpass 文件;收件人点击添加
- 网页——托管通行证以供下载;使用“Add to Wallet”徽章
重要细节:
- 用户无需安装相关应用即可添加通行证
- 如果有相关应用,用户可直接从通行证安装
- iCloud 会在用户所有设备之间同步通行证
- 遵循 Add to Apple Wallet 徽章指南进行品牌展示
- 更新通行证
两种更新机制:
- 推送通知——服务器发送更新通知;用户点击查看更改
- 下拉刷新——用户在通行证背面手动刷新
常见更新场景:登机口变更、余额调整、日程变更。
- 接受/核销通行证
三种核销方式:
- NFC:非接触式核销;用户将设备靠近读取器。无需条码。Apple Pay 忠诚度场景请参阅 loyalty passes 文档。
- 条码:支持 QR、Aztec、PDF417 格式。屏幕锁定为竖屏并提高背光。对于 iPhone 屏幕,光学扫描器比激光扫描器效果更好。
- 文本备用:会员/账户号码显示在条码下方,供手动输入。
- 身份验证(可选)
两种身份验证 API:
- Verify with Wallet API——使用 Wallet 中存储的 ID 进行年龄或身份验证
- ID Verifier——将 iPhone 用作移动 ID 读取器进行现场验证,无需外部硬件
常见问题
- “证书过期会怎样?”→ 设备上现有通行证继续工作。只是无法签署新通行证或推送更新。
- “应使用哪种条码格式?”→ QR 最通用。Aztec 紧凑,被航空公司使用。PDF417 用于一些旧系统。请用实际扫描硬件测试。
- “用户可以在没有我的应用的情况下添加通行证吗?”→ 可以。通行证可通过电子邮件或网页添加,无需安装任何应用。
- “如何测试通行证扫描?”→ 始终使用实际要用的硬件测试。对于 iPhone 屏幕,光学扫描器比激光扫描器好得多。
参考
如需更深入的技术细节,请阅读 references/passkit-technical.md,其中涵盖 pass.json 结构、服务器端更新流程和代码示例。