apns设备令牌不使用生产证书生成

时间:2012-03-01 13:38:07

标签: iphone

我已经从那里阅读了关于apns的有关apns的很棒的教程 http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12 http://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2

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

- (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。导

2 个答案:

答案 0 :(得分:1)

此类行为的一个原因可能是您尚未为RemoteNotifications注册申请。要为apns注册它,您需要在Application Delegate的didFinishLaunchingWithOptions方法中编写以下代码。

[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge ];

它会为您的设备注册Badge和Alert类型的通知。要验证应用程序是否已注册,您可以进入设置&gt;通知&gt;您的应用程序,如果它们具有这两种通知类型,那么您的应用程序将准备好调用委托方法并接收通知(如果设置中的开关打开了。)

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

由于

答案 1 :(得分:1)

前一段时间我遇到了同样的问题。调用didFailToRegisterForRemoteNotificationsWithError后,即使registerForRemoteNotificationTypes未被调用。

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

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