Release Notes
Below is a list of changes for each release of the iOS library.
5.8.3 (February 2022)
Low Impact Changes
- Added the
sessionCountingEnabled
flag toTEALConfiguration
to allow disabling of session counting for Tealium iQ accounts that use self-hosted JavaScript files. - Fixed a crash that could happen for devices with no preferred language.
5.8.2 (August 2021)
Low Impact Changes
- Fixed issue with Lifecycle XCFramework file that prevented successful archiving of the enclosing app’s .ipa file
- Carthage can now use XCFrameworks directly from the Github repo without requiring an intermediate JSON file (see Install). Any existing Cartfile references must be updated.
- CocoaPods now uses XCFramework files
5.8.1 (June 2021)
High Impact Changes
- Added the option to set a
WKProcessPool
instance on theTealiumConfig
object for the Tealium Tag Management webview to use to avoid cookie synchronization issues.
5.8.0 (February 2021)
Medium Impact Changes
- Lower-cased the value of the
platform
variable to correct mobile session timer. Previously, sessions were measured similarly to web (30 minutes of consistent activity). By lower-casing theplatform
variable, the Customer Data Hub recognizes the incoming data as a mobile session and the session length is shortened to 2 minutes.
Update your load rules if you have Load or Attribute Rules configured checking for case sensitive platform
values such as iOS
vs ios
.
Low Impact Changes
- Resolved build warnings and updated deprecated APIs
5.7.0 (August 2020)
High Impact Changes
- Added support for native session counting in lieu of using the session counting logic within utag.js. This provides more accurate session counts, and fixes some edge cases where background activities triggered new sessions, resulting in higher than expected session counts.
⚠️ Important ⚠️ If Tag Management is enabled in the Mobile Publish Settings, you must also update the mobile.html template within the associated account. If this action isn’t performed, duplicate sessions are recorded in Tealium. Read more about how to update a template.
5.6.6 (January 2020)
Low Impact Changes
- Bug Fix. Update log format on
removeRemoteCommandID
.
5.6.5 (November 2019)
Low Impact Changes
- Added the
tealium_session_id
the volatile data variables so is easily retrieved and used.
5.6.4 (October 2019)
Low Impact Changes
- Added an additional
device_type
variable that includes the Apple internal identifier for the model, such as"iPhone10,4"
.
5.6.3 (October 2019)
Low Impact Changes
- Bug fix. Updated the
destroyInstanceForKey
method to safely remove dispatch services while iterating through theTEALDispatchService
array.
5.6.2 (October 2019)
Low Impact Changes
- Updated the Devices and Models we pull from to create the device,
model_name
,model_variant
variables to include the latest iPad 7th Generation models. - Added some additional logic that will fall back to using the basic model name (such as iPhone 10, 4) if a match isn’t found in the device list we maintain.
5.6.1 (October 2019)
Low Impact Changes
- Removed the
DevicesOnly
frameworks folder that was preventing a successful Carthage install. #99
5.6.0 (October 2019)
High Impact Changes
- Removed the
UIWebView
entirely to now only supportWKWebView
as Apple has deprecatedUIWebView
since iOS 8.0. We kept the support for theUIWebView
for convenience, and to ensure visitor sessions and analytics history was left intact. However, per ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that useUIWebView
APIs. Learn more aboutUIWebView
. We do have the WKHTTPCookieStore in place that will migrate the cookies used inUIWebView
over to theWKWebView
. This will ensure that the user IDs/visitor cookies will seamlessly transition to the new implementation.
Medium Impact Changes
- Updated the device list to include the latest Apple devices (X, XR, XS, 11, etc). We also updated the implementation to load from a JSON file instead of hardcoding the device names. Lastly, we added two more variables with extra device detail:
model_name
(such as iPhone 8, iPhone XR Max, iPhone 11 Pro, etc) andmodel_variant
" For example,"GSM"
,"WiFi"
,"model A1457, A1518, A1528"
, etc. If no extra model information is available, the standarddevice
variable will read something like:"iPhone 10,0"
.
5.5.4 - 5.5.5 (August 2019)
Low Impact Changes
- Added functionality to reattach to the view at each track call so that Tealium does not need to be reinitialized when view hierarchy changes. Validation in your own app is essential; verify that you see tracking calls leaving your app in a variety of different screens in your app, including any views that may be launched from push notifications, where the view hierarchy may have changed.
5.5.3 (July 2019)
High Impact Changes
UIView
auto-detection logic forWKWebView
has been improved, which accounts for most cases with complex view hierarchies, without the need to manually pass aUIView
instance in the webview config. Validation in your own app is essential; verify that you see tracking calls leaving your app in a variety of different screens in your app, including any views that may be launched from push notifications, where the view hierarchy may have changed.
5.5.2 (July 2019)
Low Impact Changes
- Removed trace ID cookie check on each call to the webview since this appeared to be causing crashes. This worked nicely with
UIWebView
but seemed to cause problems withWKWebView
. Refer to Debugging Tealium Mobile Apps for other Tealium installation validation and debugging methods.
5.5.1 (December 2019)
Low Impact Changes
- Fix to the
captureTimeDataSourcesForType
method to use thevolatileDatasourcesCopy
instead of theclientVolatileDataSources
directly. This means that theaddToVolatileDataSources
method may now safely be called from a separate thread.
5.5.0 (April 2019)
High Impact Changes
- Tag Management now uses
WKWebView
instead ofUIWebView
by default. Read Tag Management documentation carefully before upgrading.
Low Impact Changes
- New sample app added to showcase
WKWebView
updates/changes
4.x to 5.x Migration
Features Added in 5.x
- Collect, Compact, and Full libraries have been combined into a single library
- Remote configurable dispatch services
- Multi-instance support
- Delegates to monitor or edit dispatches
4.x Features Removed
- Lifecycle Tracking
- UI Event Auto-tracking
- Mobile Companion
Available as a separate module to be added separately.
Data Layer Differences
Version 5.x currently uses a subset of the data layer variables available from the 4.x libraries. All the previous variables, however, are available in your Data Layer as future 5.x optional classes and updates make use of them.
API Differences
Version 5.x uses a completely different set of APIs to set it apart from version 4.x. The two main differences are:
- Multiton instance requiring an instance key (any string), replaces the singleton instance call. The SDK uses it to reference that particular instance of the library.
- Event and view change calls replace the single track call
Objective-C Example
// version 4.x & prior
[Tealium trackCallType:TealiumEventCall
customData:@{@"testKey":@"testValue"}
object:nil];
// version 5.x
[Tealium instanceForKey:@"testInstanceID"] trackEventWithTitle:@"buttonClick"
dataSources:@{@"testKey":@"testValue"}];
[Tealium instanceForKey:@"testInstanceID"] trackViewWithTitle:@"mainView"
dataSources:@{@"testKey":@"testValue"}];
// Note: An event or view title is required, but dataSources are still optional
Additionally, the useHttps
option is no longer necessary as of iOS 9 (September 2015), Apple requires HTTPS with TLS 1.2+ support for all URL communications (unless explicitly overwritten by the App developer).
See Apple’s Official documentation (App Transport Security section).
Tealium iQ Tag Management Setup Differences
New remote configuration options are available for version 5.x. If an account was previously using 4.x, do the following:
-
In Tealium iQ click Save/Publish, then click Configure Publish Settings…
-
Click Mobile Library Publishing
-
Click + Add Version and select Mobile SDK 5.0
-
Click Add and then Save
-
Enter in any publish details and publish the updated settings
Tag Management is disabled by default. Enable it to run tags from a native mobile application. If Tag Management is enabled, turn off Collect in order to not send duplicate requests. The Collect Tag may be added in Tealium iQ.
This page was last updated: July 6, 2023