Release Notes
Below is a complete list of changes for each release of the iOS library. See the Change Log for a complete list.
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.