iPhone SDK推送通知

时间:2009-06-26 10:02:57

标签: iphone push-notification adhoc

我在apple开发人员面板中设置了推送通知,并将代码添加到我的应用程序中。

使用开发配置文件在手机上工作正常但如果我使用分发(ad-hoc)配置文件以便我可以将它提供给少数用户进行测试,则会出现错误并导致崩溃,日志会出现以下错误

代码:

Thu Jun 25 22:22:35 unknown SpringBoard[729] <Warning>: *** Assertion failure in -[SBRemoteNotificationServer registerApplication:forEnvironment:withTypes:], /SourceCache/SpringBoard/SpringBoard-919.5/SBRemoteNotificationServer.m:633
Thu Jun 25 22:22:35 unknown SpringBoard[729] <Error>: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'no connection found for environment production'

我在应用中使用以下代码

代码:

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

我不明白的是为什么它使用开发配置文件完美地运行,但是ad-hoc它会崩溃。

有谁知道会导致这种情况的原因?我尝试过改变很多事情来尝试找到问题但却一无所获。

6 个答案:

答案 0 :(得分:2)

我也有这个问题。症状是应用程序在调用[[UIApplication sharedApplication] registerForRemoteNotificationTypes:...]时会崩溃。

似乎一旦给定设备加载APNs分发配置文件,尝试稍后返回使用APNs开发配置文件将无法工作,除非您更改应用程序ID。

如果您在Xcode中创建用户定义的构建设置,如下所示:

iPhone "Good Practices"

你可以停止崩溃,同时让两个版本共存于同一台设备上进行测试等。

答案 1 :(得分:2)

我通过从App Store安装使用推送通知的随机应用程序,在我的一个开发设备上解决了这个问题。在这种情况下,我安装了Le Monde.fr应用程序。在我运行该应用程序一次后,我自己的应用程序不再崩溃。

答案 2 :(得分:1)

我设法通过重新请求所有证书等来实现这一点。

答案 3 :(得分:0)

我通过转到设置,然后关闭顶部“主”推送通知开关,然后重新打开来解决这个问题。

答案 4 :(得分:0)

冗长但可靠的解决方案是“删除所有内容和设置”。

答案 5 :(得分:0)

这是我的解决方案,它与adhoc配置文件的工作方式有关。无法通过xCode安装Adhoc配置文件。您需要构建和存档应用程序,并使用iTunes或组织者进行安装。这为我解决了。