首先,我可以确定的是,证描述文件、代码、推送配置(push notifications勾选了、background mode —> remote notifications勾选了),苹果服务器那边应该也没有问题(因为新工程正常,市场的app也正常)。
公司的旧工程中是用xcode6创建的,didRegisterForRemoteNotificationsWithDeviceToken 和 didFailToRegisterForRemoteNotificationsWithError死活没有回调。
当我用xcode7.3创建一个新的项目时,把bundle ID和描述文件都改一致,代码也保持一致,didRegisterForRemoteNotificationsWithDeviceToken却可以收到回调。
所以我怀疑是IDE创建工程的原因,可能xcode6和xcode7.3创建新工程时有些参数不一样,但是我定位不出是哪里有问题。
以下是代码:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if ([UIDevice currentDevice].systemVersion.doubleValue >= 8.0) {
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil];
[application registerUserNotificationSettings:settings];
}else{
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound];
}
return YES;
}
-(void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
[application registerForRemoteNotifications];
}
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
NSLog(@"deviceToken ==== %@", deviceToken); // 没有回调
}
- (void)application:(UIApplication *)application
didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
NSLog(@"did Fail To Register For Remote Notifications With Error: %@", error); // 没有回调
}
重申一遍,新建的工程可以收到回调,所以证书和配置和代码都没有问题的。我应该怎么解决问题,已经花了几天时间在各个网站寻找答案,但始终没有找到问题根源所在。求各位支招,感激不尽。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
ringa_lee