Skip to content

MOEN-46338: Support MoEngage iOS SDK 11.0.0 (Swift concurrency) - #101

Open
AnirudhaSM-engg-sdk wants to merge 3 commits into
developmentfrom
feature/MOEN-46338-sdk-11-support
Open

MOEN-46338: Support MoEngage iOS SDK 11.0.0 (Swift concurrency)#101
AnirudhaSM-engg-sdk wants to merge 3 commits into
developmentfrom
feature/MOEN-46338-sdk-11-support

Conversation

@AnirudhaSM-engg-sdk

@AnirudhaSM-engg-sdk AnirudhaSM-engg-sdk commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

#Jira
https://moengagetrial.atlassian.net/browse/MOEN-46340

Changes

Adapts MoEngagePluginBase to the MoEngage iOS SDK 11.0.0 major release (Swift-6 / concurrency migration).

  • InApp enum case renames: MoEngageNudgePosition.top/.bottom/.bottomLeft/.bottomRight/.any/.none; MoEngageInAppActionType.customAction/.navigationAction.
  • MoEngageModule.Item conformance updated to the SDK-11 actor-isolated protocol (isolated MoEngageSDKInstance, optional Info, added process(AsyncEvent) async + listensToAdditionalNotifications()).
  • Auth-error listener made @MainActor and instantiated on the main actor (SDK's MoEngageAuthenticationError.Listener is now @MainActor).
  • Info.plist config fetch migrated MoEngageInitializationMoEngageConfig.FileBased (+ asSdkConfig); PluginBase public API unchanged.
  • Bumped apple-sdk SPM pin + sdkVerMin to 11.00.0; CHANGELOG entry ([minor] feature + [major] SDK line).

Verification

  • Builds green: iOS Debug/Release + tvOS Debug/Release against published SDK 11.00.0.
  • Unit tests pass.
  • Runtime smoke test on simulator: SDK init + module lifecycle (Core config sync, InApp v8 campaigns, Inbox) confirmed.

Pending

  • Final version bump (major vs minor) resolved at release time (## Release Version placeholder; [major] SDK line drives it).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@moe-hodor

moe-hodor Bot commented Jul 28, 2026

Copy link
Copy Markdown

🚪 Hodor is reviewing this PR... 👀

@moe-hodor moe-hodor Bot added branch:feature Planned work — new functionality or enhancement (neutral CFR) cfr:neutral Change Failure Rate: neutral impact labels Jul 28, 2026
Comment thread Sources/MoEngagePluginBase/MoEngagePlugin.swift
Comment thread Sources/MoEngagePluginBase/MoEngagePlugin.swift
Comment thread Sources/MoEngagePluginBase/MoEngagePlugin.swift
Comment thread Sources/MoEngagePluginBase/MoEngagePluginUtils.swift

@moe-hodor moe-hodor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review: MOEN-46338 — MoEngage iOS SDK 11.0.0 (Swift Concurrency) Migration

Issues (5 after filtering):
🔴 Critical: 2
⚠️ Warning: 2
💡 Suggestion: 1

Hodor filtered 2 low-signal comment(s) to reduce noise.
Verdict: REQUEST_CHANGES


public static func getInfo(sdkInstance: MoEngageSDKInstance) -> MoEngageModule.Info {
return .init(name: "pluginBase", version: MoEngagePluginConstants.version)
public static func getInfo(sdkInstance: isolated MoEngageSDKInstance) -> MoEngageModule.Info? {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's return nil identity here to keep production behaviour of not sending the this module in integratedModules

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, getInfo now returns MoEngageModule.Info(identity: nil), keeping PluginBase out of the integratedModules payload

Comment thread CHANGELOG.md Outdated

## Release Version

- [minor] MOEN-46338: Added support for the MoEngage iOS SDK 11.0.0 major release (Swift concurrency migration)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in public repo no need to mention ticket id. I doubt if it gets removed while releasing

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed, the release only strips the [minor]/[major] tag, not the ticket ID

Comment thread package.json
"name": "MoEngagePluginBase",
"postBuild": "Utilities/post_build.rb",
"sdkVerMin": "10.14.0",
"sdkVerMin": "11.00.0",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just cross check that with this change, plugin base version gets updated at release time

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cross-checked, yes. The committed [major] Updated MoEngage-iOS-SDK line drives update_versions_and_changelogs to bump packages[0].version to major (6.10.0 → 7.0.0) at release, and the pluginBase-6.10.0 tag exists so the bump applies. update_sdk_dependency skips re-adding the SDK line (sdkVerMin is already 11.00.0), but the committed line preserves the major bump

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

branch:feature Planned work — new functionality or enhancement (neutral CFR) cfr:neutral Change Failure Rate: neutral impact

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants