为什么我的发布应用程序无法接收apns的推送通知,它适用于开发人员版本?

时间:2011-10-21 08:31:31

标签: iphone ios apple-push-notifications

我发现发布应用无法接收设备令牌。我在服务器中找不到设备令牌。但是开发版本可以做到这一点。

这是我的注册码:

[[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 :(得分:0)

记住: 必须在构建和签署应用程序之前创建Apple Developer Portal中的推送证书(在配置/应用程序下)。

所以我建议: - >检查配置门户 - >应用程序,如果正确创建生产推送证书 - >重新构建应用商店配置文件 - >使用重建版本重新构建应用程序。文件

- >再次上传应用商店的更新

纳斯

答案 1 :(得分:0)

您是否仍在使用推送通知开发个人资料? 如果没有,请将其更改为生产配置文件。