Apple in-app provisioning(添加卡片到钱包)如何向PKPass的userInfo写入数据
PKPass userInfo写入及配置方案
核心结论
PKPass的userInfo确实为只读属性,iOS客户端无权限直接写入或修改该值,所有自定义数据必须在pass包生成阶段配置,必须后端参与流程。
具体操作流程
- 后端生成pass压缩包时,在
pass.json的顶级节点添加userInfo字段,字段值为任意可序列化的JSON对象,示例如下:
{ "userInfo": { "customerId": "你的客户ID值", // 其他你需要存储的自定义业务字段 }, // pass.json原有必填字段(passTypeIdentifier、serialNumber、teamIdentifier等保持不变) }
- 后端修改
pass.json后,必须对整个pass包重新执行签名操作,未签名的修改会导致pass失效,无法被添加到苹果钱包。 - iOS端读取逻辑:用户将pass添加到钱包后,通过
PKPassLibrary获取到对应PKPass实例后,可直接读取userInfo属性获取预存的自定义数据。
常见问题说明
如果你在客户端读取userInfo始终返回空,本质原因是生成pass包时未在pass.json中正确添加userInfo字段,和客户端读取逻辑无关。
内容的提问来源于stack exchange,提问作者Lukáš Šálek
相关产品推荐
相关产品推荐

