iOS SDK release notes

Version history of the TrueEngage iOS SDK, newest first, with Swift Package and CocoaPod versions, iOS requirements and changes in each release.

Updated 1 Nov 2026 8 min read

Every version of the iOS SDK, newest first. For setup, see iOS SDK.

1.0.0 — 1 November 2026

Package Requirements
Swift Package trueengage_ios 1.0.0 · CocoaPod TrueEngage 1.0.0 iOS 14 · Swift 5.9 · CoreLocation linked

Not yet compiled or tested on a Mac; verify before release.

What's new

  • First stable release. No API breaks: everything that worked in the previous release works unchanged. Includes the SDK Logger.

0.9.0 — 1 November 2026

Package Requirements
Swift Package trueengage_ios 0.9.0 · CocoaPod TrueEngage 0.9.0 iOS 14 · Swift 5.9 · CoreLocation linked

Not yet compiled or tested on a Mac; verify before release.

What's new

  • SDK logger. Pair a test phone with the QR code or short code in Developers > SDK Logger and the SDK sends its own log lines to the console for the session: info and above in Live, up to verbose in Test. Add your own URL scheme under CFBundleURLTypes, then call TrueEngage.handleOpenURL(_:) from application(_:open:options:), scene(_:openURLContexts:) or SwiftUI .onOpenURL. A debug menu can call startLoggerSession(code:) instead.
  • Start and end notice. iOS has no toast, so onLoggerSession(_:) reports active and ended (with the reason) and a line is printed to the console. Show your own banner from the callback.
  • Always scrubbed. Emails, phone numbers, JWTs, bearer tokens, app keys and push tokens are masked on the device before a line is buffered. A 9 to 15 digit number, such as a millisecond timestamp, is masked as a phone number too.
  • Works with opt-out. The logger keeps running when the user has opted out of tracking; the scrubber still applies.

Improvements

  • remoteLogger switch. TEConfig.remoteLogger = false refuses pairing entirely in a release build: no network call, no saved session resumed, no line sent. Default true.
  • Light on the device. Lines stay in memory only (2,000 lines or 1 MB), sending is limited to 50 lines a second, and it pauses while the app is in the background.

0.8.1 — 24 October 2026

Package Requirements
Swift Package trueengage_ios 0.8.1 · CocoaPod TrueEngage 0.8.1 iOS 14 · Swift 5.9 · CoreLocation linked

Not yet compiled or tested on a Mac; verify before release.

What's new

  • Ad identifiers cleared. When App Tracking Transparency stops being authorised, the IDFA changes, you pass nil to setAdvertisingIdentifier(_:) or setFirebaseAppInstanceId(_:), or you call optOut, the SDK tells TrueEngage to delete the stored id. A changed IDFA sends the clear and the new id together. Sent only for ids the SDK reported earlier. No code change needed. → When ad identifiers are cleared

Improvements

  • Opt-out clear is not lost. It is queued before the opt-out takes effect, survives flushOnOptOut = false, and is retried on the next foreground or background while opted out. reset() keeps a pending clear.

0.8.0 — 22 October 2026

Package Requirements
Swift Package trueengage_ios 0.8.0 · CocoaPod TrueEngage 0.8.0 iOS 14 · Swift 5.9 · CoreLocation linked

Not yet compiled or tested on a Mac; verify before release.

What's new

  • Ad click capture. When a link that opens the app, or the install referrer, carries utm_*, gclid, gbraid, wbraid, gad_source, gad_campaignid, fbclid or fbp, the SDK records one touch. A link with none of them records nothing. Honors the tracking opt-out. → See where each user came from
  • Install matching on the server. Installs through a smart link are matched and recorded by TrueEngage, not by the SDK, so ship this version after the matching server release.
  • Advertising id. The IDFA is attached only while App Tracking Transparency is authorized. The SDK never shows the prompt. Call setAdvertisingIdentifier only after the user allows tracking. Opting out of tracking clears the stored IDFA and Firebase app instance id. Add NSUserTrackingUsageDescription to your app. → See where each user came from
  • Firebase id for GA4. setFirebaseAppInstanceId(_:) adds your Firebase app instance id. → Send events to Google Analytics 4
  • Store declarations. The SDK links AdSupport, so App Store Connect asks whether your app uses the Advertising Identifier.

0.7.0 — 21 October 2026

Package Requirements
Swift Package trueengage_ios 0.7.0 · CocoaPod TrueEngage 0.7.0 iOS 14 · Swift 5.9 · CoreLocation linked

What's new

  • In-app messages. Modals, banners, cards and bottom sheets built in the console are fetched after initialize() and shown when their event or screen trigger fires. Self-handled campaigns are not drawn: you receive the message and show it yourself. → In-app campaigns
  • Cards feed. TrueEngage.cards gives you a persistent inbox of cards with a synchronous unread count, and mark read, clicked and dismissed actions. You draw the UI. Opting out of in-app stops fetching, showing and stats.
  • Verified identity. identify(id, attrs, token), setIdentityToken and setIdentityTokenProvider send a signed token your backend issues, so messages and cards with personal data reach only proven users. → Verify your users
  • Session caps. In-app session caps now persist across process restarts.
  • Not compiled yet. This release has not been compiled or tested on a Mac. Verify before release.

0.6.0 — 19 October 2026

Package Requirements
Swift Package trueengage_ios 0.6.0 · CocoaPod TrueEngage 0.6.0 iOS 14 · Swift 5.9 · CoreLocation linked

What's new

  • Push action buttons. Template buttons become a per-push category registered by the notification service extension. A tap records Push Clicked with the button id and label. → Push notifications
  • Push sound. A template sound plays a file in your app bundle. → Push notifications
  • Dismissals for button pushes. Push Dismissed now fires for pushes with buttons.

0.5.0 — 18 October 2026

Package Requirements
Swift Package trueengage_ios 0.5.0 · CocoaPod TrueEngage 0.5.0 iOS 14 · Swift 5.9 · CoreLocation linked

What's new

  • Referral links. createLink makes a short smart link for in-app content. It needs in-app links turned on in Smart Links settings. → Links API and webhooks
  • Referrer on deep links. onDeepLink carries the referrer when the opened link was created in an app. → Links API and webhooks

0.4.0 — 18 October 2026

Package Requirements
Swift Package trueengage_ios 0.4.0 · CocoaPod TrueEngage 0.4.0 iOS 14 · Swift 5.9 · CoreLocation linked

What's new

0.3.0 — 13 October 2026

Package Requirements
Swift Package trueengage_ios 0.3.0 · CocoaPod TrueEngage 0.3.0 iOS 14 · Swift 5.9 · CoreLocation linked

What's new

  • Opt-in device location. requestLocationPermission() asks for When-In-Use location and updateLocation() reads and syncs a fix now. The SDK reverse-geocodes the fix on the device and sends the city and region with your events. → Device location
  • Location settings. TEConfig.locationPrompt (manual by default, or auto) and locationRefreshHours (default 4). → Device location
  • Location permission events. Location Permission Granted and Location Permission Denied are recorded when the user decides, and again if they change the choice in Settings. → Device location

Improvements

  • Privacy manifest. The package includes a privacy manifest that lists the location data it can collect. You still declare location in your own App Privacy details. → Device location
  • Notification service extension is more reliable. The helper downloads the push image and posts the delivery receipt at the same time, within a 20-second limit, and returns only when both finish. The image download times out after ten seconds and is capped at 10 MB. Build of 14 October. → Push notifications

0.2.0 — 11 October 2026

Package Requirements
Swift Package trueengage_ios 0.2.0 · CocoaPod TrueEngage 0.2.0 iOS 14 · Swift 5.9

What's new

  • Country from the device. Each batch includes deviceCountry, taken from the Region setting in the user's Language & Region settings. It needs no permission. The server uses it only as a fallback behind the request address. → Device location
  • setRegion(_:). A typed setter for the user's state or province. → Events and identity

This version does not read the device's location. Location arrives, opt-in, in 0.3.0.

0.1.0 — 19 September 2026

Package Requirements
Swift Package trueengage_ios 0.1.0 iOS 14 · Swift 5.9

What's new

  • Event tracking. A durable queue, ordered compressed batches, retries and background flushing. → Events and identity
  • Identity and attributes. Anonymous users, identify, logout, reset and typed attribute setters. → Events and identity
  • Sessions and automatic events. 30-minute sessions with App Opened, Session Started, Session Ended and Screen Viewed. → Events and identity
  • Push notifications. APNs token registration (setAPNsToken), the permission request, and Push Received, Push Clicked and Push Dismissed events. Includes a notification service extension helper for receipts and push images. → Push notifications
  • Consent and remote config. optOut and optIn per scope, and hourly cached remote settings. → Consent
  • Debugging. enableValidation() and debugInfo(). → iOS SDK

Improvements

Added in October 2026, still reported as 0.1.0:

  • Push images, 8 October. Fixes for pushes that carry an image. → Push notifications
  • Taps and receipts with another push library, 9 October. trackPushClicked(userInfo:), handlePushPayload(_:) and handleNotificationResponse(_:) record taps and receipts when your own delegate or another library replaces the SDK's notification delegate. Each is recorded once per message. → Push notifications