【发布时间】:2014-08-20 22:02:55
【问题描述】:
我的服务器只运行一个发送推送通知的版本,它有我的生产(发布)推送证书。
如何使用相同的生产证书在我的调试设备和调试版本上测试通知?
我的设备正在发送令牌,但是当我尝试发送真正的推送通知时,Apple 服务器返回状态 8 错误,这意味着设备令牌不正确。
【问题讨论】:
标签: ios ios7 push-notification xcode5 apple-push-notifications
我的服务器只运行一个发送推送通知的版本,它有我的生产(发布)推送证书。
如何使用相同的生产证书在我的调试设备和调试版本上测试通知?
我的设备正在发送令牌,但是当我尝试发送真正的推送通知时,Apple 服务器返回状态 8 错误,这意味着设备令牌不正确。
【问题讨论】:
标签: ios ios7 push-notification xcode5 apple-push-notifications
聚会有点晚了,但即使所有其他答案都是正确的,他们也没有真正回答你的问题。
答案是:您无法使用调试版本测试生产 APNS。
Debug 构建将始终获得 沙盒 APNS 令牌。
发布构建(临时或应用商店)将始终获得生产 APNS令牌。
这背后的逻辑是,为了调试应用程序,您需要使用调试证书和配置文件进行签名。该配置文件决定了您的应用连接到哪个 APNS 端点。
【讨论】:
Release builds (ad-hoc or app store) will always get production 令人困惑。 Xcode 中的调试和发布版本都使用开发 APN,我已经对此进行了测试。通过 Ad Hoc 或 App Store 分发改变了应用程序使用生产 APN 的权利。我想强调构建和分发之间的区别。
如果您使用开发配置文件构建应用,您将收到一个沙盒设备令牌,该令牌仅在沙盒推送环境中有效(使用沙盒推送服务器和沙盒推送证书)。
如果您使用生产或 AdHoc 配置文件构建应用,您将收到生产设备令牌,该令牌仅在生产推送环境中有效(使用生产推送服务器和生产推送证书)。
【讨论】:
如果您想在生产模式下测试您的应用,您需要使用 ad hoc 分发您的应用的分发版本。
当您的应用程序准备好提交时,您创建一个临时配置文件,指定一个与您的一个或多个应用程序匹配的应用程序 ID、一组测试设备和一个分发证书。
这是一张图片来说明配置文件的工作原理:
【讨论】:
也许解决方法是同时发送生产和沙盒推送通知。我认为如果您想测试内部(例如使用 AdHoc 构建)可能会有所帮助;但是,我认为在你的生产环境中部署这种奇怪的方式是不合理的。
【讨论】: