iPhone SDK 推送通知

3
我已在苹果开发者面板中设置了推送通知并将代码添加到我的应用程序中。
在使用开发配置文件的手机上,它可以正常工作,但如果我使用分发(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 时却会崩溃。

有没有人知道是什么原因导致的?我已经尝试了很多方法来查找问题,但都没有发现任何问题。


看看下面"sint"提出的"Le Monde.fr"建议-它有效!我认为这是一个错误,所以我已经向苹果提出了Bug ID#7365308(“使用APNS从开发者版本更改为Ad Hoc版本的应用程序会导致崩溃”)。 - Dan J
FYI,苹果公司对我的漏洞报告做出了非常迅速的回应,并表示:“请验证一下这个问题是否也会在iPhone 3.1.2 GM(7D11)中发生。” 我可能无法在短时间内进行测试。 - Dan J
6个回答

2

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


我本来不相信这个解决方案会有用,但在其他办法都用尽的情况下,我最终尝试了一下 - 结果真的有效!太棒了! - Dan J

2

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

似乎一旦给定设备加载了APNs分发配置文件,如果你想后来重新使用APNs开发配置文件,则必须更改应用程序ID才能使其正常工作。

如果您在Xcode中创建一个用户定义的构建设置,如此处建议:

iPhone "好实践"

您可以防止应用程序崩溃,并且可以在同一设备上测试两个版本。


1

我通过重新请求所有证书等方式成功解决了此问题。


0

虽然有点麻烦,但最保险的解决方案是“擦除所有内容和设置”。


0

我通过进入设置,然后将顶部的“主”推送通知开关切换关闭,再切换开来解决了这个问题。


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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接