我在客户端应用程序中将这些代码行实现到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'具有配置不允许的值。
答案 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);
}
创建新的配置文件并启用推送通知服务。
注意:您的捆绑包标识符应该没有通配符。
如果您仍然遇到任何问题,请告诉我。