2012-03-01 43 views
0

我已经从那里 http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12 http://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2APNS设备令牌不符合生产证书

阅读APNS射线的要命教程产生

我已经用开发证书实现了它们,每件事情都很好,但现在当我用生产证书实现它时,设备令牌已停止生成。我已经为生产创建了新的App ID,并且还生成了新的生产推送SSL证书,并且我还创建了.pem文件,但是一些设备令牌没有生成。指导我在这个因为我卡在这里,即使这个通知不被称为

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 
{ 
    NSString* oldToken = [dataModel deviceToken]; 

    NSString* newToken = [deviceToken description]; 
    newToken = [newToken stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]; 
    newToken = [newToken stringByReplacingOccurrencesOfString:@" " withString:@""]; 

    NSLog(@"My token is: %@", newToken); 

    [dataModel setDeviceToken:newToken]; 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"TokenRecieved" object:nil]; 

    if ([dataModel joinedChat] && ![newToken isEqualToString:oldToken]) 
    { 
     [self postUpdateRequest]; 
    } 
} 

PLZ。指导

回答

1

此类行为的一个原因可能是您尚未将您的应用程序注册到RemoteNotifications。要注册apns,您需要在应用程序代理的didFinishLaunchingWithOptions方法中编写以下代码。

[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge ]; 

它会为您的设备注册徽章和警报类型的通知。要验证应用程序是否已注册,您可以在设置>通知>您的应用程序中使用这两种通知类型,然后您的应用程序将准备好调用委托方法并接收通知(如果切换设置在)。

此外,如果您实施application:didFailToRegisterForRemoteNotificationsWithError:方法并记录错误(如果有),将会有所帮助。

谢谢

+0

Thanx Ravin,但我已经添加该行“[应用程序registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge];”在didFinishLaunchingWithOptions之前,仍然没有生成设备标记,并且关于日志错误的第二点,你能否解释一点,即如何记录错误,同时我已经实现了应用程序:didFailToRegisterForRemoteNotificationsWithError:在我的应用程序中,但没有任何想法记录错误,plz。指南。 Thanx – 2012-03-02 11:19:50

+0

通过日志错误的手段:如果您使用开发人员配置文件签署应用程序然后NSLog它在控制台上,以查看设备是否已注册自己的远程通知或不。但是,如果您使用分发配置文件签署应用程序,然后使用警报。所以,基本上在这个代表中,你需要向用户显示一个警告,显示该应用程序无法注册apns。 – Ravin 2012-03-02 13:10:55

+0

Thanx Ravin我会做到这一点,但这不会解决问题,我真的想知道为什么应用程序不生成设备令牌或为什么应用程序没有得到与分布配置文件apns注册,我从这个安静卡住了很长现在的时间,有没有解决办法? – 2012-03-03 04:41:55

1

我刚才有一个完全相同的问题。拨打registerForRemoteNotificationTypes后,即使拨打didFailToRegisterForRemoteNotificationsWithError也不会被呼叫。

我遇到并花费数小时才能发现的一个原因是我有一个与APN证书关联的旧配置文件。我所需要做的就是重新创建(不仅是重新下载)供应配置文件以供生产,并重新安装它们。

如果您在创建配置文件后创建了APN证书,则此步骤可能会对您有所帮助。