我有一个需要推送功能的iOS应用程序,并为此创建了必要的dev和Prod证书,并将它们加载到通知提供程序(Node)上;
但是,在APN沙箱环境中,通知在生产设置上发送通知时,提供者会从APNs网关获得缺少的主题错误。
在检查prod证书时,我看到证书扩展项下列出的三个项目如下所料:
APSd登录电话,显示当应用程序向操作系统注册其通知设置时启用了相关主题(app.bundle.id)。所以,在我看来,应用程序端的设置很好。
根据苹果的文档,提供者发布的通知必须包含一个apn-topic头文件,应用程序支持多个主题。
我的理解是,voip和复杂节点是自动添加到证书扩展中的,并不一定意味着单独的主题。
问题:
敬请指教。
发布于 2017-01-04 20:24:26
我在dev和prod之间也遇到了类似的问题,在我的例子中,与文档相关的标题中的问题是这样说的:
根据apns是初始的还是后续的POST操作的一部分,为apns使用的适当编码id-id过期和apns-折叠-id请求头不同,如下所示:第一次发送这些标头时,用增量索引对它们进行编码,以便在发送这些标头时将头名称添加到动态表中,然后将其编码为文字标题字段,而无需索引。
因此,在PHP中,请求的头部如下所示:
$headers[] = 'content-length: ' . strlen($data);
$headers[] = 'apns-topic: ' . $message->topic;
$headers[] = 'apns-expiration: ' . ($message->time_to_live ? (int)$message->time_to_live + time() : 0);没有名字和钥匙。
我希望这能帮到别人
发布于 2017-02-15 12:00:03
使用传统证书,开发人员为其应用程序支持的每种功能提供了一个证书:常规推送通知、VoIP等。每个功能只配置一个主题,因此,当Notification使用遗留证书与APN网关接口时,主题规范是可选的。
通过新的http2接口和通用证书的引入,开发人员现在可以获得一个证书,该证书允许标准的push、VoIP push和watchkit通知(如果他们愿意的话)。这意味着同一个证书可以有多个主题(就像我的情况一样)。因此,当通知提供程序使用新的通用证书与APN网关接口时,必须在http报头中指定主题,并且需要匹配证书中的主题。
主题标题不再是可选的。
https://stackoverflow.com/questions/40351170
复制相似问题