iPhone 设备令牌的大小

Posted

技术标签:

【中文标题】iPhone 设备令牌的大小【英文标题】:Size of iPhone device token 【发布时间】:2012-09-17 02:19:49 【问题描述】:

APN(Apple 推送通知)生成的设备令牌的大小是多少。我正在尝试将设备令牌存储在 mysql 数据库中的服务器端,并想知道生成的设备令牌的最大大小

【问题讨论】:

长度为 64 个字符 长度不再是 64 个字符,它会发生变化,其中一些是 64,一些是 108,等等。 【参考方案1】:

你被告知,但它目前是 32 字节。 Apple says the token length is variable and to not hard code it

当您收到通知时,它有一个标头,当前大小为 35 个字节。安排如下:

字节 1: 命令 字节 2-3: 令牌长度 字节 4-35: 令牌

来源:http://mark.aufflick.com/files/view/talks/apns.pdf

【讨论】:

你说它总共有 32 个字节......但你提到的是 4-35 个字节......你能解释一下吗? @NagaR 我刚刚稍微扩展了内容以解释编号的来源。数字是标题中的索引。所以token的第1个字节占据了header的第4个字节,token的第2个字节占据了header的第5个字节……token的第32个字节占据了header的第35个字节。 感谢您的解释! Apple 表示令牌长度是可变的并且不对其进行硬编码:developer.apple.com/library/ios/documentation/…【参考方案2】:

Apple Push Notification Service Programming guide很清楚地说:

“重要提示:APN 设备令牌的长度可变。请勿对其大小进行硬编码。”

【讨论】:

我希望能重新审视这个问题。这是(截至目前)正确答案。【参考方案3】:

根据 Apple 的 iOS 开发者库,正如 Philip 所说,它是 32 字节。

这是他们关于“本地和推送通知编程”页面的链接,其中可能包含有关该主题的其他有用信息。

https://developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/Introduction.html

【讨论】:

链接失效 @QED 链接已修复 @Alastair 链接再次断开【参考方案4】:

据报道,iOS8 中的限制为 2k。仍然是 GCM 4k 大小的一半,但我怀疑大多数人将不得不改变他们的表来处理新的 iOS8 令牌限制。

【讨论】:

他没有询问推送有效载荷的大小,而是询问了令牌本身。 GCM 令牌(技术上)也可以长达 4k。但实际上它应该在 255 以内。 我同意 James,GCM 的令牌长度可以达到 4K,而有效负载本身可以达到 4K。 问题是关于令牌大小,而不是关于有效负载大小。

以上是关于iPhone 设备令牌的大小的主要内容,如果未能解决你的问题,请参考以下文章

读取 iPhone 推送通知的设备令牌

iPhone推送通知设备令牌-如何“解密”

沙盒与生产中的 iPhone APNS 设备令牌

使用运行 iOS 7.1 的 iPhone 5s 时,设备令牌为零

iphone app APNS 无法获取设备令牌,错误:“没有为应用程序找到有效的‘aps-environment’权利字符串”

推送通知未在 iPhone 应用程序中的多个设备上传递?