Migration Guides - infobip/mobile-messaging-flutter-plugin GitHub Wiki

Changes in documentation

Basic In-App notifications renamed to Mirror Push notifications, Full featured in-app notifications renamed to In-App messages.

Migration from 9.6.x to 9.7.x

  • The extension no longer imports the full MobileMessaging SDK. Instead, it uses the standalone MobileMessagingNotificationExtension module.
  • The mmine Ruby Gem (version 2.0.0+) now generates extension code that imports MobileMessagingNotificationExtension instead of MobileMessaging.
  • The --application-code and --static-linkage flags have been removed from mmine — they are no longer needed.

Migration steps

1. Update the Infobip Mobile Messaging Flutter Plugin version to the latest one

Update pubspec.yaml — change the version constraint for the package, e.g.:

      dependencies:                          
        infobip_mobilemessaging: ^9.7.x  

2. Update/install mmine gem

$ sudo gem install mmine

Verify you have version 2.0.0 or later:

$ gem list mmine

3. Remove the old Notification Service Extension

In Xcode:

  1. Select the MobileMessagingNotificationServiceExtension target in your project navigator.
  2. Delete the target (select the target, press Delete or right-click > Delete).
  3. Remove all files associated with the extension group: NotificationService.swift, Info.plist, and the .entitlements file.
  4. Remove the extension target entry from your Podfile (the block containing MobileMessagingNotificationExtension or inherit! :search_paths), then run pod deintegrate followed by pod install to clean up stale build settings.

4. Re-integrate the extension

Follow the Delivery improvements and rich content notifications guide to set up the new extension using mmine integrate.

Custom NotificationService.swift

If you have customised your NotificationService.swift (e.g. modifying notification content, handling badge counts, or supporting multiple push providers), you will need to update your code after re-integration:

Old (9.6.x) New (9.7.x)
import MobileMessaging import MobileMessagingNotificationExtension
MM_MTMessage.isCorrectPayload(userInfo) MobileMessagingNotificationServiceExtension.isCorrectPayload(userInfo as? [String: Any] ?? [:])

The MobileMessagingNotificationServiceExtension.didReceive and serviceExtensionTimeWillExpire APIs remain the same.

Migration from 9.3.x to 9.4.0

See the detailed migration guide: Migration from 9.3.x to 9.4.0

Migration from 9.2.x to 9.3.0

Since version 9.3.0, the logging parameter has been moved from iOS-specific settings to the top-level configuration, making it available for both iOS and Android platforms.

Logging configuration change

Before:

Configuration(
    applicationCode: '<Your Application Code>',
    iosSettings: IOSSettings(
        logging: true,
        // iOS specific configuration
    ),
    androidSettings: AndroidSettings(
        // Android specific configuration
    ),
)

After:

Configuration(
    applicationCode: '<Your Application Code>',
    logging: true,
    iosSettings: IOSSettings(
        // iOS specific configuration
    ),
    androidSettings: AndroidSettings(
        // Android specific configuration
    ),
)

The logging feature now works on both iOS and Android, forwarding platform native logs to Flutter's console. For more information, see How to enable logging.

Migration from 8.x.x to 9.1.x

Since 9.1.0, the iOS deployment target has been increased from iOS 13 to iOS 15.

Migration from 6.0.x to 8.0.x

Since 8.0.0, the iOS deployment target has been increased from iOS 12 to iOS 13.

Changes in InAppChat

iOS only parameter shouldHandleKeyboardAppearance has been moved out of InAppChatExtras in the SDK initialisation, to the class ChatCustomization.

Migration from 5.0.x to 6.0.x

Since this version, Gradle's declarative approach is used, official migration guide. While your projects can keep the legacy imperative apply script method, for the Plugin DSL approach see this page.

For WebRTC enablement, flag should be present in gradle.properties file:

withWebRTCUI=true

Migration from 3.0.x to 4.0.x

From this version we've added support for Full-featured In-App notifications.

Migration from 1.x to 2.x

Changes for the WebRTCUI

Because the major release of Infobip WebRTC SDK 2.0, content and setup exclusive of Infobip WebRTC SDK 1.x will be deprecated on 31/10/2023. The previous WebRTC application you used must be replaced with two new separate models: WebRTC Application and WebRTC Push Configuration.

To enable calls you need to set up WebRTC Push configurationId and pass it to the configuration object instead of deprecated applicationId.

Replace old configuration:

Configuration(
    ...
    webRTCUI: WebRTCUI(
      applicationId: 'your webrtc application id'
    )
    ...
));

with new:

Configuration(
    ...
    webRTCUI: WebRTCUI(
      configurationId: 'Your WebRTC Push configuration id'
    )
    ...
));

Migration from 1.3.x to 1.4.x

If you used customization previously, you will need to replace:

mobileMessaging.setupiOSChatSettings({
        title: 'Chat title',
        sendButtonColor: '#FF0000',
        navigationBarItemsColor: '#FF0000',
        navigationBarColor: '#FFFF00',
        navigationBarTitleColor: '#FF0000',
})

with:

MobileMessaging.setupChatSettings(
	toolbarTitle: 'Chat title',
    sendButtonTintColor: '#FF0000',
    toolbarTintColor: '#FF0000',
    toolbarBackgroundColor: '#FFFF00',
    toolbarTitleColor: '#FF0000',
)

this settings will be applied for both platform instead of iOS only.

Notice: If you used Android settings in the styles.xml, they will be overridden by Mobile Messaging.setup ChatSettings method.

Migration from 0.8.x to 0.9.x

Added option to register to POST_NOTIFICATIONS permission for Android 13.