为什么上次更新(null)

时间:2013-04-06 03:37:57

标签: web-services ios6 passbook

我创建了一个传递,可以将设备注册到我的服务器。我还通过更改一些内容并在传递表中插入新的传递行来更新此传递。但为什么在控制台,最后更新(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 个答案:

答案 0 :(得分:0)

每当在设备的Passbook库中接受或替换.pkpass包时,Passbook将使用最后更新的属性标记该传递。

此属性通常由网络服务器在第一次下载传递时发送的Last-Modified标头设置,并且您的网络服务会在每次响应“Get Latest Version of a Pass”响应时发送。

Passbook还使用serialNumbers的“Getting the Serial Numbers for Passes Associated with a Device”方法轮询您的网络服务,并使用deviceLibraryIdentifierpassTypeIdentifier作为条件。

Getting the Serial Numbers for Passes Associated with a Device”响应应包含标记lastUpdated,指示上次更改此查询的结果的时间(即最后一次使用passTypeIdentifier注册的通道的时间最后更新了此deviceLibraryIdentifier

但是,Passbook第一次发送“Getting the Serial Numbers for Passes Associated with a Device”时,它不会收到lastUpdated标记,这就是它在您的控制台日志中显示null的原因。此外,发送lastUpdated标记是可选的,因此如果它不存在,或者未正确发送,那么您将始终看到last updated (null)此请求。

您可以随意使用自己喜欢的任何内容作为lastUpdated代码。最简单的解决方案是使用unix时间戳,因为不需要使用日期格式。