iOS didRegisterForRemoteNotifications returns 测试飞行时 运行 不同的标记

iOS didRegisterForRemoteNotifications returns different tokens when run from test flight

我正在开发一个使用 Apple 推送通知的 iPhone 应用程序。我已按照此处列出的步骤进行操作:https://parse.com/tutorials/ios-push-notifications,当我通过 Xcode 连接我的设备 运行 应用程序时,我的设备会收到通知。但是,当我将应用程序上传到 Test Flight 时,该应用程序无法接收通知。经过进一步调查,我发现

返回的令牌
NSString * token = [NSString stringWithFormat:@"%@", deviceToken];

在应用 运行 到 Xcode 时不同,在 运行 来自 Test Flight 时也不同。这是为什么?我该如何解决?我正在使用 APNS 发送推送通知。

您需要检查证书。当您注册 bundle id 时,您可以选择生成两个配置文件和相应的两个推送通知证书,dev 和 production。当您 运行 应用程序处于 Xcode 的开发模式时,即当 Xcode 将您 运行 配置为获取指定的开发配置文件时,您的服务器需要使用 dev/sandbox 证书 returns 你从 apple 的沙箱服务器中得到的令牌(这发生在你的情况下)。当您使用产品证书签署应用程序时,即您在生成 ipa 时使用产品配置文件,您的服务器需要使用产品推送证书。可能在您的情况下,您上传​​了使用产品证书签名的应用程序,而服务器仍在使用开发证书。检查一下。祝你好运。