Не удается получить токен устройства - PullRequest
0 голосов
/ 19 января 2012

Я реализовал эти строки кода в клиентском приложении в файле 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. Я могу найти свое приложение в разделе «Настройки»> «Уведомления» на моем устройстве, но не могу получить токен устройства. Также под Xcode> Органайзер> MyiPhone> Консоль есть такие ошибки:

Ошибка: право 'keychain-access-groups' имеет значение, не разрешенное профилем обеспечения

Ошибка: право 'aps-environment' имеет значение, не разрешенное профилем обеспечения

Ошибка: право 'application-identifier' имеет значение, не разрешенное инициализацией.

Ребята, вы не знаете, в чем проблема? Большое спасибо

Ответы [ 2 ]

0 голосов
/ 18 апреля 2013

Попробуйте этот код. Это определенно поможет

- (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);
}

Создайте новый профиль обеспечения и включите службу push-уведомлений.

Примечание: Ваш идентификатор пакета должен быть без подстановочного знака.

Пожалуйста, дайте мне знать, если у вас все еще есть проблемы.

0 голосов
/ 19 января 2012

Я предполагаю, что ваш файл прав не соответствует тому, что находится в вашем профиле обеспечения. Попробуйте открыть свой профиль обеспечения с помощью текстового редактора, вы увидите много мусора, но вы увидите, что перечислено для прав. Убедитесь, что вы настроили файл разрешений так, чтобы он точно совпадал с тем, что указано в вашем профиле обеспечения.

...