1

好的,我有一部 ios 3.0.1 的 iPhone,我打开了 wifi,没有蜂窝网络。

我已经正确地创建了我的配置文件和我的证书。为什么?...过一会儿会告诉你,当我运行应用程序时,我已经输入了 NSLog

- (void)application:(UIApplication *)app  didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 

- (void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err 

但是当我运行应用程序时,我什么也没有得到,没有成功也没有错误。

无论如何,我尝试了相同的应用程序并在带有 ios 4.0 的 iphone 上运行它,它确实有效,它打印了设备令牌。哦,他们都使用同一个wifi网络。

它可能是设备吗?IOS?还是wifi连接的安全性?在这种情况下至少不应该给我一个错误吗?

这可能是由于缺少库文件引起的吗

warning: Unable to read symbols for "/Library/MobileSubstrate/MobileSubstrate.dylib" (file not found).

谢谢你

4

1 回答 1

0

根据苹果文档

没有委托回调

当第一个支持推送的应用程序安装在设备上时,iOS 会尝试建立与推送服务的持久网络连接,该连接将由设备上所有支持推送的应用程序共享。

如果既没有委托回调 application:didRegisterForRemoteNotificationsWithDeviceToken: 也没有 application:didFailToRegisterForRemoteNotificationsWithError: 调用,则表示该连接尚未建立。

这不一定是错误情况。该设备可能根本没有互联网连接,因为它超出了任何手机信号塔或 Wi-Fi 接入点的范围,或者它可能处于飞行模式。您的应用程序不应将此视为错误,而应正常继续,仅禁用依赖于推送通知的功能。

请记住,网络可用性可能会经常变化。一旦与推送服务的持久连接成功,将调用前面提到的应用程序委托方法之一。

推送通知尽可能使用蜂窝数据网络,即使设备当前正在使用 Wi-Fi 进行其他网络活动,例如网页浏览或电子邮件。但是,如果蜂窝数据服务不可用,推送服务将退回到 Wi-Fi。

如果您的设备能够使用蜂窝数据网络,请检查它是否具有有效的蜂窝数据计划。例如,在“设置”中关闭 Wi-Fi,看看您是否仍然可以使用 Safari 浏览网页。另一方面,如果推送服务使用 Wi-Fi,则您的设备和 Internet 之间的任何防火墙都必须允许 TCP 流量进出端口 5223。

注意:对于每个环境,推送服务都有一个单独的持久连接。iOS 建立与沙盒环境的持久连接以进行开发构建;ad hoc 和分发版本连接到生产环境。

关于你问题的第二部分,MobileSubstrate不是罪魁祸首,这是一条正常的日志消息......来自越狱的 iPhone :)

于 2011-04-27T16:26:51.053 回答