我发现发布应用无法接收设备令牌。我在服务器中找不到设备令牌。但是开发版本可以做到这一点。
这是我的注册码:
[[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];
}
答案 0 :(得分:0)
记住: 必须在构建和签署应用程序之前创建Apple Developer Portal中的推送证书(在配置/应用程序下)。
所以我建议: - >检查配置门户 - >应用程序,如果正确创建生产推送证书 - >重新构建应用商店配置文件 - >使用重建版本重新构建应用程序。文件
- >再次上传应用商店的更新
纳斯
答案 1 :(得分:0)
您是否仍在使用推送通知开发个人资料? 如果没有,请将其更改为生产配置文件。