如何在应用内动态创建自定义卡片并添加至Apple Wallet
Apple Wallet 自定义凭证接入实现方案
你的需求完全可以通过苹果官方提供的原生能力实现,不需要依赖第三方服务,具体支撑依据和实践要点如下:
官方API与文档支撑
- 核心依赖框架为系统原生的
PassKit框架,覆盖从凭证创建、校验到写入Wallet的全流程能力,支持用户在App内动态添加多张自定义凭证,没有添加数量限制。 - 你提到的登机牌、折扣卡都属于官方定义的标准凭证类型,对应框架内的
PKBoardingPass、PKStoreCard类型标识,完成基础开发者配置即可使用,无需申请特殊权限。 - 二维码能力为框架原生支持:你只需要在凭证配置文件的
barcodes字段中指定条码类型为QR、填入二维码对应的内容字符串即可,系统会自动渲染符合Wallet设计规范的二维码,不需要自行合成二维码图片。 - 动态添加流程支持:你不需要在App安装包内预置所有凭证文件,可以在用户触发添加操作时,动态组装或从服务端拉取对应凭证包,调用系统提供的添加面板完成写入,重复执行该流程即可实现多张卡片的连续添加。
成熟实践注意事项
- 前置配置要求:你需要先在苹果开发者后台创建Pass Type ID,生成对应的签名证书,所有凭证包必须经过该证书签名后才能被Wallet正常识别,未签名或签名不匹配的凭证会直接添加失败。
- 多卡片区分配置:每张自定义凭证必须设置全局唯一的
serialNumber字段,否则系统会将同类型同序列号的凭证判定为同一张,出现新卡片覆盖旧卡片的问题,这是实现多卡片独立添加的核心配置项。 - 二维码配置建议:二维码内容不要传入无意义的过长字符串,避免二维码密度过高导致核销端识别失败;如果是登机牌、交通票等公共场景凭证,建议遵循对应行业的内容格式标准写入。
- 后续更新能力:如果需要修改已经添加到Wallet的卡片内容(比如折扣卡余额变动、登机口信息更新),可以通过APNs推送触发凭证的静默更新,不需要用户手动删除重加。
最小实现流程
- 按照苹果Pass规范组装凭证目录,包含配置文件
pass.json、图标/背景等静态资源、二维码字段配置 - 使用提前申请的Pass Type签名证书对凭证目录做签名,打包为
.pkpass格式文件 - 在App内校验凭证文件合法性,初始化
PKPass实例 - 弹出系统标准的
PKAddPassesViewController面板,用户确认后凭证会自动写入Apple Wallet
内容的提问来源于stack exchange,提问作者Martin Kostadinov
相关产品推荐
相关产品推荐

