Skip to content

AB#293018 - Safe in-app message casting - #151

Open
kris-opti wants to merge 2 commits into
masterfrom
293018-safe-in-app-message-persist
Open

AB#293018 - Safe in-app message casting#151
kris-opti wants to merge 2 commits into
masterfrom
293018-safe-in-app-message-persist

Conversation

@kris-opti

@kris-opti kris-opti commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Description of Changes

The SDK force-cast remote message content to NSDictionary; when content was missing, null, a string, an array, or another unsupported type,

Changes:

  • Parse required in-app message fields with Overlay-style safe casting (InAppMessageParser) instead of force-casts
  • Skip malformed messages and only track delivery for successfully parsed payloads
  • Add unit tests covering valid payloads and the crash-triggering content variants
  • Bump version to 6.8.1 and update changelog

Breaking Changes

  • None

Release Checklist

Prepare:

  • Detail any breaking changes. Breaking changes require a new major version number
  • Check pod lib lint passes
  • Update any relevant sections of the repository wiki pages on a branch

Bump versions in:

  • OptimoveCore.podspec
  • OptimoveNotificationServiceExtension.podspec
  • OptimoveSDK.podspec
  • OptimoveCore/Sources/Classes/Constants/SDKVersion.swift
  • README.md (no hardcoded version to update)
  • CHANGELOG.md
  • Update major version numbers in wiki (basic integration + push guides) (N/A — patch release)

Integration tests

T&T Only

  • Init SDK with only T&T credentials
  • Associate customer
  • Associate email
  • Track events

Mobile Only

  • Init SDK with all credentials
  • Track events
  • Associate customer (verify both backends)
  • Register for push
  • Opt-in for In-App
  • Send test push
  • Send test In-App
  • Receive / trigger deep link handler (In-App/Push)
  • Receive / trigger the content extension, render image and action buttons for push
  • Verify push opened handler

Deferred Deep Links

  • With app installed, trigger deep link handler
  • With app uninstalled, follow deep link, install test bundle, verify deep link read from Clipboard, trigger deep link handler

Combined

  • Track event for T&T, verify push received
  • Trigger scheduled campaign, verify push received
  • Trigger scheduled campaign, verify In-App received

Release:

  • Squash and merge to master
  • Delete branch once merged
  • Create tag from master matching chosen version
  • Run pod trunk push to publish to CocoaPods

Post Release:

  • Push wiki pages to master

kris-opti and others added 2 commits August 6, 2026 14:16
Skip invalid payloads with Overlay-style safe parsing instead of force-casting content during Core Data persistence.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@kris-opti kris-opti changed the title AB#293018 - Safe in-app message persist AB#293018 - Safe in-app message casting Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant