Не получает Интерком-push в типе сборки релиза iOS или в Testflight (реагировать-нативный)
Я использую FCM и Интерком в своем приложении на собственном языке. Я использую реагирующую нативную firebase для получения push-уведомлений от Firebase, и все работает хорошо.
В случае push-уведомлений по внутренней связи я могу получать их в режиме отладки, когда тестирую на своем устройстве. Но когда я переключаюсь в режим разблокировки, параметр "Включенный push-обмен сообщениями" пользователя в Интеркоме переходит от истинного к неизвестному, и я не получаю никакого push-сообщения.
Я попытался найти ошибку в своем коде, но после 5 дней по этой проблеме я все еще не могу найти.
Мой код приложения
#import <Firebase.h>
#import "AppDelegate.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <React/RCTBundleURLProvider.h>
#import <React/RCTRootView.h>
#import "Intercom/intercom.h"
#import <GoogleMaps/GoogleMaps.h>
#import "RNFirebaseNotifications.h"
#import "RNFirebaseMessaging.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[GMSServices provideAPIKey:@"********************"];
[FIRApp configure];
[RNFirebaseNotifications configure];
NSURL *jsCodeLocation;
[Intercom setApiKey:@"ios_sdk-********************" forAppId:@"**********"];
jsCodeLocation = [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];
RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"**********"
initialProperties:nil
launchOptions:launchOptions];
rootView.backgroundColor = [UIColor blackColor];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
[[FBSDKApplicationDelegate sharedInstance] application:application
didFinishLaunchingWithOptions:launchOptions];
return YES;
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
[FBSDKAppEvents activateApp];
[application registerUserNotificationSettings:
[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)
categories:nil]];
[application registerForRemoteNotifications];
}
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
[[RNFirebaseNotifications instance] didReceiveLocalNotification:notification];
}
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(nonnull NSDictionary *)userInfo
fetchCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler{
[[RNFirebaseNotifications instance] didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
}
- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings {
[[RNFirebaseMessaging instance] didRegisterUserNotificationSettings:notificationSettings];
}
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[Intercom setDeviceToken:deviceToken];
}
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
BOOL handled = [[FBSDKApplicationDelegate sharedInstance] application:application
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]
];
return handled;
}
@end
На моем домашнем экране я звоню это
firebase.messaging().getToken().then(token => {
//my other code
if (Platform.OS != "ios") {
Intercom.sendTokenToIntercom(token);
}
Intercom.registerForPush();
});
if (Platform.OS == "ios") {
firebase.messaging().ios.getAPNSToken().then(token => {
Intercom.setupAPN(token);
});
}
пожалуйста помоги