由于我们使用xCode 8和OS 10,因此Firebase推送通知功能存在一些问题.在我们的应用程序中,我们要求用户在第二次启动应用程序时启用推送通知,但在第一次(和下一次)启动后10秒后,它会崩溃这个日志:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'-[FIRInstanceIDConfig setAllowGCMRegistrationWithoutAPNSToken:]: unrecognized selector sent to instance 0x170207740'
Run Code Online (Sandbox Code Playgroud)
我们还尝试禁用调配,但问题再次发生.
有人能告诉我们哪里出错了吗?
Firebase AppDelegate代码:
#pragma mark - Notification
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
UALog(@"success to register notification");
#ifdef DEBUG
[[FIRInstanceID instanceID] setAPNSToken:deviceToken
type:FIRInstanceIDAPNSTokenTypeSandbox];
#else
[[FIRInstanceID instanceID] setAPNSToken:deviceToken
type:FIRInstanceIDAPNSTokenTypeProduction];
#endif
}
Run Code Online (Sandbox Code Playgroud)
推送通知问:
if ([popUpViewController isKindOfClass:[GSPushNotificationsPopupViewController class]]) {
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:NSUD_ALREADY_DISPLAYED_NOTIF_MESSAGE];
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_9_x_Max) {
UIUserNotificationType allNotificationTypes = (UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge);
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:allNotificationTypes categories:nil]; …Run Code Online (Sandbox Code Playgroud) objective-c apple-push-notifications ios firebase firebase-cloud-messaging