我创建了一个通行证,可以将设备注册到我的服务器。我还通过更改一些内容并插入新的 pass 行来更新这个 pass 到 pass 表。但是为什么在控制台中,最后更新(null)?这是我从控制台得到的:
Apr 6 10:30:29 CamMobs-iPod4 passd[21] <Warning>: Get serial #s task (for device b6511c0dd47d04da449ce427b27fea74, pass type pass.cam-mob.passbookpasstest, last updated (null);
with web service url http://192.168.1.202:8888/passesWebserver/) got response with code 200
1 回答
每当设备的 Passbook 库中接受或替换 .pkpass 包时,Passbook 都会使用最后更新的属性标记该通行证。
此属性通常由Last-Modified
网络服务器在第一次下载通行证时发送的标头设置,并且您的网络服务会随每个响应发送到“获取通行证的最新版本”响应。
Passbook 还使用“获取与设备关联的通行证的序列号”方法轮询您的 Web 服务serialNumbers
,使用deviceLibraryIdentifier
和passTypeIdentifier
作为条件。
“获取与设备关联的通行证的序列号”响应应包含一个标签lastUpdated
,指示此查询的结果最后一次更改的时间(即最后一次使用passTypeIdentifier
注册到此的通行证deviceLibraryIdentifier
最后一次更新的时间)。
但是,Passbook 第一次发送“获取与设备关联的通行证的序列号”时,它不会收到lastUpdated
标签,这就是它显示null
在控制台日志中的原因。此外,发送lastUpdated
标签是可选的,所以如果它不存在,或者如果它没有正确发送,那么您将始终看到last updated (null)
这个请求。
您可以随意使用任何您喜欢的lastUpdated
标签。实现的最简单的解决方案是 unix 时间戳,因为没有必要搞乱日期格式。