Migration Guides - infobip/mobile-messaging-flutter-plugin GitHub Wiki
- Changes in documentation
- Migration from
9.6.xto9.7.x - Migration from
9.3.xto9.4.0 - Migration from
9.2.xto9.3.0 - Migration from
8.x.xto9.1.x - Migration from
6.0.xto8.0.x - Migration from
5.0.xto6.0.x - Migration from
3.0.xto4.0.x - Migration from
1.xto2.x - Migration from
1.3.xto1.4.x - Migration from
0.8.xto0.9.x
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
MobileMessagingSDK. Instead, it uses the standaloneMobileMessagingNotificationExtensionmodule. - The
mmineRuby Gem (version 2.0.0+) now generates extension code that importsMobileMessagingNotificationExtensioninstead ofMobileMessaging. - The
--application-codeand--static-linkageflags have been removed frommmine— 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:
- Select the
MobileMessagingNotificationServiceExtensiontarget in your project navigator. - Delete the target (select the target, press Delete or right-click > Delete).
- Remove all files associated with the extension group:
NotificationService.swift,Info.plist, and the.entitlementsfile. - Remove the extension target entry from your Podfile (the block containing
MobileMessagingNotificationExtensionorinherit! :search_paths), then runpod deintegratefollowed bypod installto 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.