Skip to main content

Problem

Common issues with Push notifications, including failed delivery, screen navigation, deep linking, and rich landing, are occurring on iOS devices using Native iOS, Swift, and MoEngage-iOS-SDK (Versions 7.x.x, 8.x.x, 9.x.x).

Solution

Perform the following steps:
  1. Firebase Proxy:
    • If you are not using Firebase push notifications, then disable the Firebase proxy by adding the FirebaseAppDelegateProxyEnabled key in info.plist with the value Boolean = False/NO.
    • Test the push notification. If successful, no further action is required. Otherwise, follow the steps below.
    • If you are using Firebase push notifications, skip this step and proceed with the following steps.
  2. Set UNUserNotificationCenterDelegate:
    • In AppDelegate.swift, set UNUserNotificationCenterDelegate in the didFinishLaunch method.
    • If you are initializing Firebase in didFinishLaunch, do so before initializing the MoEngage SDK.
    • Ensure UNUserNotificationCenterDelegate is set at the start of this method.
      Swift
  3. Extend AppDelegate.swift:
    • Extend AppDelegate.swift to conform to UNUserNotificationCenterDelegate. Your AppDelegate.swift must resemble the following code snippets:
      Swift
  4. Disable MoEngage Proxy:
    • Add MoEngageAppDelegateProxyEnabled key in info.plist with the value Boolean = False/NO boolean.png
  5. Pass Push Notification Token Manually:
    • Use the didRegisterForRemoteNotificationsWithDeviceToken function of AppDelegate.swift to pass the push notification token manually.
      Swift
  6. Implement UNUserNotificatoinCenter Delegate Functions:
    • Ensure UNUserNotificatoinCenter Delegate functions are implemented in AppDelegate.swift.
      Swift