【问题标题】:Can you update serial number of the iOS-wallet pass?你能更新iOS-wallet pass的序列号吗?
【发布时间】:2018-01-31 12:55:53
【问题描述】:

您可以更新已安装的 iOS 钱包通行证的序列号吗?
钱包开发者指南声明您可以更新钱包通行证的某些字段,但没有说明您是否可以更新任何字段。另外我知道序列号是用来发送更新通知的,那么,更改序列号会破坏更新过程吗?
我没有使用 Wallet Developer Guide 找到答案。有人可以帮帮我吗?

【问题讨论】:

    标签: ios serialization coupon wallet


    【解决方案1】:

    底线是没有。 documentation 只列出了 2 个不能更改的字段; serialNumberpassTypeIdentifier。这两个字段的组合创建了一个唯一密钥,该密钥用于许多内部和外部 API,以明确识别钱包中的通行证。

    使用通行证类型标识符和序列号的组合 整个 PassKit 以唯一地识别通行证。两次通过相同的 相同序列号的类型被理解为相同的通行证, 即使关于它们的其他信息不同。例如,当通行证是 更新了,新版本的pass type identifier和serial一样 编号为旧版本,所以新版本替换旧版本 版本。

    如果您的 Web 服务返回的序列号与 Getting the latest Version of a Pass 请求中请求的序列号不同,则设备将拒绝该传递。

    对您开放的唯一选择是使用新序列号安装新通行证并删除旧通行证。如果您通过应用程序进行交互,则可以自动执行此操作(尽管仍需要用户操作来安装更新的通行证),如果不是,则需要指导您的用户完成该过程。

    【讨论】:

    • 感谢您的回答!还有一件事:据我了解,您可以计算安装相同通行证的设备数量,对吗?你只需要统计相同serialNumber和不同deviceLibratyID的注册请求数。它会起作用吗?
    • 排序。问题在于 Apple 会定期轮换设备 ID 和令牌。每次发生这种情况时,您都会收到一个新的注册请求,但不会收到取消注册的请求。只有当您尝试推送令牌时,您才会知道令牌是否无效。因此,如果您不定期推送您的通行证更新或不管理响应,那么平均而言,您的注册将缓慢增加,超过持有通行证的实际手机数量。
    【解决方案2】:

    bundleID 用于识别 pass 属于哪个 App。SerialNumber 用于识别需要更新或更改的 pass。

    每个应用程序可以有多个通行证,为了区分它们,我们使用序列号。您无法更改序列号easily。我的意思是,您可以将通行证安装为具有新序列号的新通行证并删除旧的通行证(如上面的附加逻辑,将需要您的应用程序的新版本)。就是这样。您不能只更改序列号。

    当前不起作用的一个选项是更新旧通行证并设置到期日期。

    【讨论】:

    • 感谢您的回答!您可以在多个设备上安装相同的通行证(具有相同的序列号),对吗?您可以使用正确的推送地址只更新其中一个而不影响其他人吗?
    • 不,那是不可能的。如果您更新通行证,它不会仅针对“设备”进行更新。它会针对安装了该通行证的所有设备进行更新。我的意思是,您可以专门检查 deviceLibraryIdentifier 并查看哪个设备正在添加通行证,但这并不常见..
    • 那么,如果我检查 deviceLibraryIdentifier,我可以“计算”安装了特定通行证的设备数量吗?
    猜你喜欢
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多