我已经从那里阅读了关于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。导
答案 0 :(得分:1)
此类行为的一个原因可能是您尚未为RemoteNotifications
注册申请。要为apns注册它,您需要在Application Delegate的didFinishLaunchingWithOptions
方法中编写以下代码。
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge ];
它会为您的设备注册Badge和Alert类型的通知。要验证应用程序是否已注册,您可以进入设置&gt;通知&gt;您的应用程序,如果它们具有这两种通知类型,那么您的应用程序将准备好调用委托方法并接收通知(如果设置中的开关打开了。)
此外,如果您实施application:didFailToRegisterForRemoteNotificationsWithError:
方法并记录错误(如果有的话)将会有所帮助。
由于
答案 1 :(得分:1)
前一段时间我遇到了同样的问题。调用didFailToRegisterForRemoteNotificationsWithError
后,即使registerForRemoteNotificationTypes
未被调用。
我遇到并花了几个小时才发现的一个原因是我有一个与APN证书相关联的旧供应配置文件。我需要做的就是重新创建(不仅是重新下载)生产配置文件并重新安装它们。
如果您在创建配置文件后创建了APN证书,则此步骤可能会对您有所帮助。