You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法创建支持NFC的Apple Wallet PKPass问题求助

解决.pkpass NFC配置异常问题

问题现象复盘

  • 含单个nfc对象的pass.json生成的.pkpass无法打开,替换为barcode配置或移除NFC/barcode配置则正常
  • 将nfc改为nfcs数组后可正常打开,但Wallet不识别为NFC凭证,添加encryptionPublicKey后问题依旧
  • 需求为门禁NFC凭证(无需Apple Pay),已申请NFC证书未收到反馈

核心修复步骤

1. 修正NFC配置格式

Apple Wallet对NFC字段的格式有严格要求:

  • 必须使用nfcs数组(而非单个nfc对象),数组内仅需一个配置对象
  • message必须是无分隔符的十六进制字符串,原配置中的冒号需移除:
    "nfcs": [
      {
        "message": "049B95D1700000",
        "encryptionPublicKey": "你的PEM格式公钥(去除头尾标记和换行后的纯Base64字符串)"
      }
    ]
    
  • 非Apple Pay场景下,encryptionPublicKey是必填项,不能省略

2. 确认证书有效性

门禁类NFC凭证必须使用Apple颁发的NFC Pass专用证书,普通Pass签名证书无法激活NFC功能:

  • 若尚未收到证书,需等待Apple审核完成(通常1-3个工作日)
  • 签名时需确保证书链完整,包含Apple根证书

3. 无硬件测试方法

启用iPhone开发者模式验证

  1. 打开「设置」→「隐私与安全性」→拉至底部开启「开发者模式」,重启设备
  2. 重启后添加.pkpass至Wallet,进入「设置」→「Wallet与Apple Pay」→「开发者选项」(仅开发者模式开启后可见),可查看Pass的NFC配置是否被系统识别

使用Xcode模拟器排查

  1. 打开Xcode创建iOS项目,导入你的.pkpass文件
  2. 通过代码将Pass添加至Wallet,查看Xcode控制台日志,系统会输出Pass验证失败的具体原因(如格式错误、证书不匹配等)

额外注意事项

  • message的十六进制字符串需符合NFC读卡器的NDEF格式要求,长度建议控制在32字节以内
  • 不要在nfcs数组中添加多个配置对象,单个门禁凭证仅需一个NFC条目

内容的提问来源于stack exchange,提问作者EvMc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 20:46:33