无法检索设备令牌

时间:2012-01-19 14:29:02

标签: iphone ios push-notification

我在客户端应用程序中将这些代码行实现到appDelegate.m文件中:

    NSLog(@"Registering for push notification..");
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | 
         UIRemoteNotificationTypeBadge |
         UIRemoteNotificationTypeSound)];


- (void)application:(UIApplication *)app didregisterForRemoteNotificationWithDeviceToken:(NSData *)deviceToken
{
NSString *myDeviceToken = [[[[deviceToken description]
                 stringByReplacingOccurrencesOfString: @"<" withString: @""]
                stringByReplacingOccurrencesOfString: @">" withString: @""]
               stringByReplacingOccurrencesOfString: @" " withString: @""];
NSLog(@"device Token =%@", myDeviceToken);
}

-(void)application:(UIApplication *)app didFailToRegisterForRemoteNotificationsWithError:(NSError *)err
{
//NSString *str = [NSString stringWithFormat:@"Error; %@", err];
NSLog(@"Error: %@", err);
}

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
for (id key in userInfo) {
    NSLog(@"key:%@, value: %@", key, [userInfo objectForKey:key]);
}
}

但didregisterForRemoteNotificationWithDeviceToken永远不会被调用didFailToRegisterForRemoteNotificationsWithError。我可以在我的设备上的设置&gt;通知下找到我的应用,但无法检索设备令牌。此外,在Xcode&gt; Organizer&gt; MyiPhone&gt;控制台下还有以下错误:

  

错误:权利'keychain-access-groups'具有配置文件不允许的值

   错误:权利'aps-environment'具有供应配置文件不允许的值

   错误:授权'application-identifier'具有配置不允许的值。

你能不知道问题会是什么? 非常感谢

2 个答案:

答案 0 :(得分:0)

我的猜测是您的权利文件与您的配置文件中的内容不匹配。尝试使用文本编辑器打开您的配置文件,您会看到很多垃圾,但您会看到列出的权利。确保将您的权利文件设置为与您的配置文件中的内容完全匹配。

答案 1 :(得分:0)

试试这段代码。这肯定会有所帮助

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    NSString* deviceTokenStr = [deviceToken description];
    deviceTokenStr = [deviceTokenStr stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
    deviceTokenStr = [deviceTokenStr stringByReplacingOccurrencesOfString:@" " withString:@""];
    NSLog(@"Device token ===> %@",deviceTokenStr);

    NSString* myDeviceToken=deviceTokenStr;

    NSLog(@"device Token =%@", myDeviceToken);
}

创建新的配置文件并启用推送通知服务。

注意:您的捆绑包标识符应该没有通配符。

如果您仍然遇到任何问题,请告诉我。