SDKsiOS
Versioning and payload contract
SemVer policy for the MotiSig iOS SDK and the rich image payload contract.
Image payload contract
MotiSigRichPushHandler resolves the first non-empty match from:
_motisig.imageUrl/_motisig.image_url/_motisig.image(MotiSig AI canonical)_richContent.image(Expo push relay — what you get when sending via the Expo push API)fcm_options.image(FCM relay)- Top-level
image/imageUrl/image_url(host-app convenience)
A single server payload that uses _motisig.imageUrl lights up the banner image wherever the right delivery setup is in place. See Rich notification images.
What changed in 1.0.1
launchOptionsonMotiSig.initialize(UIKit) — cold-start push taps fromlaunchOptions[.remoteNotification]are handled during init.- Click reliability — persistent FIFO queue, deduplication, and exponential-backoff retries for
POST /track/click. - SwiftUI — document
@UIApplicationDelegateAdaptor+AppDelegateinit pattern in Getting started.
Full release notes: CHANGELOG.md.
Versioning
The iOS SDK follows semantic versioning. Changes considered breaking:
- Removing or renaming a public symbol exported from
MotiSig. - Changing a method signature in
MotiSigNotificationListenerorMotiSigRichPushHandler. - Adding a new
requiredinitializer parameter toMotiSig.initializeor to a public model. - Renaming or removing a
MotiSigErrorcase. - Changing the canonical push payload keys (
_motisig.imageUrl,messageId, etc.) on the wire.
Additive changes (new methods, new optional parameters, new MotiSigNotification fields) are minor or patch.
Release notes: CHANGELOG.