更新 Apple Wallet 的通行证 - 无法提取存档

Updating Pass for Apple Wallet - Could not extract archive

问题 1

我正在尝试为 Apple 通行证设置服务器端,以便更新它们。我目前正在生成签名的压缩通行证,它也注册更新我的表,使用设备令牌 /id 等

通行证不会更新为我生成的新通行证(相同的序列号,身份验证令牌 - 不同 message/image)

在控制台中我收到此错误(故障):

BOM could not extract archive : Couldn't read PKZIP signature

Received invalid pass data (The pass cannot be read because it isn\U2019t valid

我正在使用 https://github.com/tschoffelen/PHP-PKPass

连同存储数据和通行证,以及我服务器上的 webserviceurl php 页面。

有人对此有想法吗?

问题 2

我也在控制台中收到错误(故障):

Setting display properties with screenSize=(375, 667) scale=2

不确定为什么,或者这是否重要?

问题在于生成 ZIP (pkpass) 文件的方式。我查看了代码,发现它使用的是 PHP 的 ZipArchive。虽然生成的 ZIP 文件在 Windows 和 Linux 上都可以无误地解压,但 Apple 服务器比较挑剔。

我也试过 PclZip,它也有同样的问题。

解决方案是通过命令行 zip 命令调用 system() 来压缩文件。这样生成的ZIP文件被Apple接受了。

已修复!

我创建了自己的生成器版本,例如 github link。

这解决了问题。