Skip to content

Migration to version 8.3.x

Ivan Bilobrk edited this page Apr 2, 2026 · 1 revision

Migration from 8.2.x to 8.3.x

Version 8.3.0 brings a major overhaul of the iOS Notification Service Extension integration. The extension is now fully automatically integrated into your Xcode project during cordova prepare ios, with no manual steps required.

What changed

Ruby is no longer required

The mmine Ruby gem is no longer used. You can remove Ruby from your iOS build dependencies.

cordova-plugin-add-swift-support removed

The plugin no longer depends on cordova-plugin-add-swift-support. Swift support is now handled natively via a bridging header in plugin.xml. If you added this plugin only for Mobile Messaging, you can remove it:

cordova plugin remove cordova-plugin-add-swift-support

IOS_EXTENSION_APP_CODE removed

The IOS_EXTENSION_APP_CODE variable is no longer used (it was already ignored since version 6.0.0). Remove it from your config.xml if present.

Notification Service Extension is now auto-integrated

Previously, after adding the plugin, you had to manually modify the Podfile (either by editing node_modules/cordova-ios/lib/Podfile.js or by writing a custom after_prepare hook). This is no longer needed. The plugin now automatically:

  • Creates the MobileMessagingNotificationServiceExtension target in your Xcode project
  • Adds the NotificationService.swift source file
  • Creates and configures entitlements with the App Group
  • Adds the MobileMessagingNotificationExtension pod to the Podfile
  • Runs pod install

If you have a custom hook for Podfile modifications related to the Notification Service Extension, you should remove it.

New required preferences

Add the following inside the <platform name="ios"> section of your config.xml:

<platform name="ios">
    <preference name="SwiftVersion" value="5.0" />
    <preference name="deployment-target" value="15.0" />
</platform>

Migration steps

  1. Update the plugin:

    cordova plugin remove com-infobip-plugins-mobilemessaging
    cordova plugin add com-infobip-plugins-mobilemessaging@8.3.x
  2. Update your config.xml:

    Before (8.2.x):

    <plugin name="com-infobip-plugins-mobilemessaging" spec="8.2.x">
        <variable name="IOS_EXTENSION_APP_CODE" value="..." />
        <variable name="IOS_EXTENSION_APP_GROUP" value="group.your.bundle.id" />
    </plugin>

    After (8.3.0):

    <plugin name="com-infobip-plugins-mobilemessaging" spec="8.3.x">
        <variable name="IOS_EXTENSION_APP_GROUP" value="group.your.bundle.id" />
    </plugin>
    <platform name="ios">
        <preference name="SwiftVersion" value="5.0" />
        <preference name="deployment-target" value="15.0" />
    </platform>

    The IOS_EXTENSION_APP_GROUP variable stays in the same place — no changes needed if you already have it configured.

  3. Remove custom Podfile hooks (if any): If you added a custom after_prepare hook to modify the Podfile for the Notification Service Extension, remove it from your config.xml and delete the hook script. The plugin handles this automatically now.

  4. Remove cordova-plugin-add-swift-support (if present):

    cordova plugin remove cordova-plugin-add-swift-support
  5. Remove Ruby dependency (if installed only for mmine): The mmine gem and Ruby are no longer needed for the plugin.

  6. Clean rebuild:

    cordova platform remove ios
    cordova platform add ios

    Then open the project in Xcode, verify signing for both the main target and MobileMessagingNotificationServiceExtension, and build.

Podfile structure

After cordova prepare ios, your Podfile should look like this:

use_frameworks!
platform :ios, '15.0'
target 'YourApp' do
    project 'YourApp.xcodeproj'
    pod 'MobileMessaging', '~> 15.0'
    pod 'MobileMessaging/InAppChat', '~> 15.0'
    pod 'MobileMessaging/Inbox', '~> 15.0'
end

target 'MobileMessagingNotificationServiceExtension' do
    project 'YourApp.xcodeproj'
    pod 'MobileMessagingNotificationExtension', '~> 15.0'
end

Note that the extension target is now a separate top-level target with the MobileMessagingNotificationExtension pod, rather than a nested target with inherit! :search_paths as in previous versions.

Clone this wiki locally