Почему мое приложение публикации не может получить push-уведомление от apns, оно работает в версии для разработчиков? - PullRequest
0 голосов
/ 21 октября 2011

Я обнаружил, что приложение публикации не может получить токен устройства. Я не могу найти токен устройства на моем сервере. Но версия для разработки может сделать это.

Это мой регистрационный код:

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
 (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound |      UIRemoteNotificationTypeAlert)];

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken

{

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentDir=[paths objectAtIndex:0];

NSFileManager *myFM=[NSFileManager defaultManager];

NSString *filepath = [documentDir stringByAppendingPathComponent:@"devicetoken.plist"];

if([myFM fileExistsAtPath:filepath]==NO){

NSString * str = [NSString stringWithFormat:@"%@",deviceToken];
dic = [[NSMutableDictionary alloc]init];

[dic setObject:[NSString stringWithString:@"DeviceToken"] forKey:@"type"];

[dic setObject:[NSString stringWithString:@""] forKey:@"_id"];

[dic setObject:str forKey:@"token"];

CJSONDeserializer * jo=[[CJSONDataSerializer alloc]autorelease];

NSData *data=[jo serializeDictionary:dic];

NSURL* url=[NSURL URLWithString:[NSString stringWithString:url]];

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url];

[request setHTTPMethod:@"POST"];

NSString *contentType = [NSString stringWithFormat:@"application/json"];

[request addValue:contentType forHTTPHeaderField: @"Content-Type"];

[request setHTTPBody:data];

putDoc = [NSURLConnection connectionWithRequest:request delegate:self];
}

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Вы все еще используете профиль разработки push-уведомлений?Если нет, измените его на производственный профиль.

0 голосов
/ 21 октября 2011

Помните: push-сертификат на портале разработчика Apple (в разделе инициализации / приложения) должен быть создан до того, как приложение будет создано и подписано.

Поэтому я бы порекомендовал: -> проверить на портале инициализации -> приложениеесли производственный push-сертификат создан надлежащим образом -> пересоберите файл обеспечения магазина приложений -> пересоберите приложение с помощью перестроенной пров.файл

-> снова загрузить обновление в магазин приложений

Jonas

...