繁体   English   中英

iPhone iOS推送通知apns生产不发送

[英]iPhone iOS push notifications apns on production not sending

我一直在研究这个问题。 我知道那里有很多文章,并且已经了解了很多。

我以同样的方式创建了我的开发和生产SSL。 开发连接到ssl://gateway.sandbox.push.apple.com:2195生产连接到ssl://gateway.push.apple.com:2195连接似乎工作正常。

至于应用程序。 开发:当我从xCode直接运行到我的设备时,它运行开发版本。 该应用程序成功地将开发令牌记录在数据库中。 然后,我运行一个服务来发送推送通知,并正确传递。 msg已成功发送。

Ad-hoc:当我构建存档并将其导出以进行Ad-hoc分发时,我仔细检查包内容codesign -dvvvv --entitlements - Elepago.app并查看aps-environment是否已正确设置为production。 我将其打包并通过iTunes将其加载到我的设备上。 当应用程序启动时,我看到数据库中记录了新的生产令牌。 因此必须正确设置环境。 当我将推送通知发送到生产密钥(与开发相同,只是更改SSL .pem密钥和服务器)时,它表示已成功交付。 然而,它实际上从未到达设备!

这个问题让我抓狂。 我刚刚完成并清理了我的分发证书,并使用全新的CSR重建了它。 我还更新了所有配置文件以使用该新证书。 [任何想法这些证书如何与应用程序绑定,除了我已经检查的aps环境之外。]

任何见解将不胜感激。

经过数小时和数小时的头痛,我最终重建了SSL .pem文件,它工作了!

这是我做的:

  • 擦干净我的分发证书并创建一个新证书
  • 将所有配置文件关联到新证书
  • 在xCode中加载了新的配置文件
  • 按照Raywenderlich的精彩教程中的说明重建了我的SSL握手.pem文件

这些是我最初用于开发和制作的相同说明,但可能/显然搞砸了。 然后我测试了我的ad-hoc版本,它工作了!!!

此外,值得注意的是,当使用错误的.pem密钥时,我没有收到来自APNS的任何错误反馈。 我使用上面链接中的simplepush.php文件作为发送PN的基础。

开发和生产的设备令牌不相同。

在测试生产时,使用UIAlertView查看生产令牌。 执行以下操作:

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
    NSString *deviceID = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
    deviceID = [deviceID stringByReplacingOccurrencesOfString:@" " withString:@""];
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Device Token", nil) message:deviceID delegate:nil cancelButtonTitle:NSLocalizedString(@"OK", nil) otherButtonTitles:nil];
    [alert show];
}

使用此令牌推送生产通知。

  • 任何内部分发配置文件都会给出相同的tokenID,但这个tokenID在不同设备上的变化情况如何。
  • 其他唯一的问题可能只有ProductionURL。
  • 我还注意到推送通知接收有时会延迟,主要是与生产URL一起使用时。

希望这可以帮助。

当我在Java上开发时,我的问题是一样的但是我解决了它因为生产= true用于生产和生产=假用于开发。

有效负载(有效负载,密钥库,密码,生产,设备)

希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM