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.
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 callTrueEngage.handleOpenURL(_:)fromapplication(_:open:options:),scene(_:openURLContexts:)or SwiftUI.onOpenURL. A debug menu can callstartLoggerSession(code:)instead. - Start and end notice. iOS has no toast, so
onLoggerSession(_:)reportsactiveandended(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
remoteLoggerswitch.TEConfig.remoteLogger = falserefuses pairing entirely in a release build: no network call, no saved session resumed, no line sent. Defaulttrue.- 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
niltosetAdvertisingIdentifier(_:)orsetFirebaseAppInstanceId(_:), or you calloptOut, 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,fbclidorfbp, 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
setAdvertisingIdentifieronly after the user allows tracking. Opting out of tracking clears the stored IDFA and Firebase app instance id. AddNSUserTrackingUsageDescriptionto 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.cardsgives 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),setIdentityTokenandsetIdentityTokenProvidersend 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 Clickedwith 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 Dismissednow 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.
createLinkmakes 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.
onDeepLinkcarries 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
- Deep links.
handleUniversalLinkandhandle(userActivity:)hand your app the screen a link points to, through theonDeepLinklistener. → Deep links and deferred deep links - Deferred deep links. The first launch after an install is matched to the click that led to it. → Deep links and deferred deep links
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 andupdateLocation()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(manualby default, orauto) andlocationRefreshHours(default 4). → Device location - Location permission events.
Location Permission GrantedandLocation Permission Deniedare 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,resetand typed attribute setters. → Events and identity - Sessions and automatic events. 30-minute sessions with
App Opened,Session Started,Session EndedandScreen Viewed. → Events and identity - Push notifications. APNs token registration (
setAPNsToken), the permission request, andPush Received,Push ClickedandPush Dismissedevents. Includes a notification service extension helper for receipts and push images. → Push notifications - Consent and remote config.
optOutandoptInper scope, and hourly cached remote settings. → Consent - Debugging.
enableValidation()anddebugInfo(). → 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(_:)andhandleNotificationResponse(_:)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
Was this page helpful?