我已经在appstore中有一个应用程序。现在我想添加APNS。在开发人员门户网站上,我设置了开发人员证书,并为APNS启用了我的应用。我创建了一个新的配置 配置文件并在我的应用程序中设置它在调试。我已删除所有其他配置文件。
当我在iphone上运行我的应用程序时,我发送registerForRemoteNotificationTypes但从不 从apple获得响应,也没有调用错误委托。如果我删除该应用程序 在iPhone和重新安装,它从不询问推送通知。
我已经阅读了过去2天内关于该主题的尽可能多的堆栈溢出文章和教程/ Apple文档,因为到目前为止似乎没有解决我的问题。
我检查过的其他事情:
- 检查Entitlements.plist文件中的坏键
- 检查下载的.mobileprovision文件,查找带有开发字符串
的aps-environment
- 删除了管理器中的所有其他配置文件 - >设备以及钥匙扣
- 将我的iphone上的日期更改为前一天,关闭电源,打开电源,重新加载应用
有没有人对尝试尝试或尝试的答案有任何其他建议 在现有应用程序上设置APNS似乎不起作用?
请注意,我试图用APNS开发一个新版本,而不是问为什么发布 版本还没有工作。一旦我可以使用APNS进行调试,那么我会选择disto APNS。 提前谢谢。
[编辑]我想你误解了我的问题。我已经阅读了文档和 经历了这些步骤。事实上,这个相同的代码同时工作,我禁用它 暂时几个转发前,但现在想重新启用它。我也见过 相同的教程。据我所知,主要问题不是我的代码,而是规定 个人资料或与Apple的错误及其处理推送证书的方式有关 在现有文件或其他东西。
这是我的代码,但正如我所说,我不认为我的代码在这一点,它的东西 供应或某事。香港专业教育学院证实我称之为,但永远不会回电 在IOS Dev网站上获得推送证书设置之后的其中一个代表 通过推送获得新的配置文件。
[application registerForRemoteNotificationTypes:
(UIRemoteNotificationType)
(UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert) ];
代表永远不会被召唤:
- (void) application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[Log log:TINFO :@"==== APNS didRegisterForRemoteNotifcationsWithDeviceToken ===="];
NSString *devtok = [NSString stringWithFormat:@"%@",deviceToken];
devtok = [devtok stringByReplacingOccurrencesOfString: @"" withString: @""];
devtok = [devtok stringByReplacingOccurrencesOfString: @" " withString: @""];
NSString *stok = [[[NSString alloc] initWithFormat:@"%@", devtok] autorelease];
[Log log:TINFO :@"saving ", devtok];
UpdateDevToken *utok = [[UpdateDevToken alloc] autorelease];
[utok updateDeviceToken:stok];
}
错误代表:
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
[Log log:TERR :@"==== APNS didFailToRegisterForRemoteNotificationsWithError: %@", error.localizedDescription];
}
[编辑2]忘了添加我也有didReceiveRemoteNotification:
- (void)application:(UIApplication *)application didReceiveRemoteNotification(NSDictionary *)userInfo
{
[Log log:TENT :@"==== APNS didReceiveRemoteNotification"];
}
我的代表都没有接到电话。
答案 0 :(得分:0)
然后修改我们的AppDelegate类。
// Add This to did to
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
........
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
return YES;
}
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults valueForKey:@"device_token"]) { // Check existing device token
NSLog(@"My saved token is: %@", [defaults valueForKey:@"device_token"]);
}
NSString *deviceTokenString = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
deviceTokenString = [deviceTokenString stringByReplacingOccurrencesOfString:@" " withString:@""];
[defaults setObject:deviceTokenString forKey:@"device_token"];
[defaults synchronize];
NSLog(@"My token is: %@", deviceTokenString);
}
- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error
{
NSLog(@"Failed to get token, error: %@", error);
//[self showAlertMessage:@"Failed to get token, error!"];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
NSLog(@"userInfo :%@",userInfo);
//[self setUser:[[userInfo valueForKey:@"aps"] valueForKey:@"alert"]];
}