gpt4 book ai didi

ios - 推送通知 Firebase 导致崩溃

转载 作者:可可西里 更新时间:2023-11-01 02:59:30 26 4
gpt4 key购买 nike

自从我们使用 xCode 8 和 OS 10 以来,我们在使用 Firebase 推送通知功能时遇到了一些麻烦。在我们的应用程序中,我们要求用户在第二次启动应用程序时启用推送通知,但是在第一次(和下一次)启动后 10 秒后,它与此日志一起崩溃:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 
'-[FIRInstanceIDConfig setAllowGCMRegistrationWithoutAPNSToken:]: unrecognized selector sent to instance 0x170207740'

我们也尝试禁用 swizzling,但问题再次出现。

谁能告诉我们哪里出了问题?

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
}

请求推送通知:

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];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
} else {
// iOS 10 or later
UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert | UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
[[UNUserNotificationCenter currentNotificationCenter] requestAuthorizationWithOptions:authOptions completionHandler:^(BOOL granted, NSError * _Nullable error) {

}];

// For iOS 10 display notification (sent via APNS)
[[UNUserNotificationCenter currentNotificationCenter] setDelegate:self];
// For iOS 10 data message (sent via FCM)
[[FIRMessaging messaging] setRemoteMessageDelegate:self];
}
}

最佳答案

您是否已将应用的其他链接器标记添加到 -ObjC?您可以通过单击:Project Name -> Build Settings -> Other Linker Flags

enter image description here

关于ios - 推送通知 Firebase 导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40935799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com