• Platforms
  • Partners
  • Forums
  • TLC Tealium Learning Center Tealium Learning
    Community
  • Discussions & Ideas Dicussions & Ideas
  • Product Guides Product Guides
  • Knowledge Base Knowledge Base
  • Developer Docs Developer Docs
  • Education Education
  • TLC Blog TLC Blog
  • Support Desk Support Desk
  • CDH Customer Data Hub Customer Data Hub

Table of Contents

  • 5.7.0 (August 2020)
  • 5.6.6 (January 2020)
  • 5.6.5 (November 2019)
  • 5.6.4 (October 2019)
  • 5.6.3 (October 2019)
  • 5.6.2 (October 2019)
  • 5.6.1 (October 2019)
  • 5.6.0 (October 2019)
  • 5.5.4 - 5.5.5 (August 2019)
  • 5.5.3 (July 2019)
  • 5.5.2 (July 2019)
  • 5.5.1 (December 2019)
  • 5.5.0 (April 2019)
  • 4.x to 5.x Migration
IOS OBJECTIVE C

Release Notes

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 the TEALDispatchService 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 support WKWebView as Apple has deprecated UIWebView since iOS 8.0. We kept the support for the UIWebView 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 use UIWebView APIs. Learn more about UIWebView. We do have the WKHTTPCookieStore in place that will migrate the cookies used in UIWebView over to the WKWebView. 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) and model_variant” For example, "GSM", "WiFi", "model A1457, A1518, A1528", etc. If no extra model information is available, the standard device 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 for WKWebView has been improved, which accounts for most cases with complex view hierarchies, without the need to manually pass a UIView 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 with WKWebView. 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 the volatileDatasourcesCopy instead of the clientVolatileDataSources directly. This means that the addToVolatileDataSources method may now safely be called from a separate thread.

5.5.0 (April 2019)

High Impact Changes

  • Tag Management now uses WKWebView instead of UIWebView 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:

  1. In Tealium iQ click Save/Publish, then click Configure Publish Settings…

  2. Click Mobile Library Publishing

  3. Click + Add Version and select Mobile SDK 5.0

  4. Click Add and then Save

  5. 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.

API Reference

 
  • Mobile
  • Getting Started
    • Overview
    • Quick Start Guide
    • Mobile Concepts
    • Client-Side
    • Server-Side
    • Tracking Webviews
    • Data Layer
    • Consent Management
    • Event Batching
    • User Location and Geofencing
    • Deep Links
    • Timed Events
    • Trace
    • Hosted Data Layer
    • Feature Comparison
    • Troubleshooting
  • Remote Commands
    • Overview
    • How It Works
    • Integrations
      • AppsFlyer
      • Braze
      • Contentsquare
      • Facebook
      • Firebase
      • Kochava
      • Usabilla
  • Android (Java)
    • Overview
    • Install
    • Track
    • Data Layer
    • Data Management
    • Consent Management
    • Module List
      • Ad Identifier Module
      • Crash Reporter Module
      • Install Referrer Module
      • Lifecycle Tracking Module
      • Location Module
      • Optimizely X Tracking Module
    • Android TV
    • Android Wear
    • API Reference
      • ConsentManager
      • DataSources
      • Lifecycle
      • Tealium
      • Tealium.Config
      • TealiumLocation
    • Release Notes
  • Android (Kotlin)
    • Overview
    • Install
    • Track
    • Data Layer
    • Consent Management
    • Identity Resolution
    • Module List
      • Collect Module
      • Collectors Module
      • Crash Reporter Module
      • Install Referrer Module
      • Lifecycle Tracking Module
      • Location Manager Module
      • Tag Management Dispatcher Module
      • Visitor Service Module
    • Android TV
    • API Reference
      • ConsentCategory
      • ConsentManager
      • CurrentVisit
      • DataLayer
      • Lifecycle
      • LocationManager
      • Tealium
      • TealiumConfig
      • VisitorProfile
      • VisitorService
    • Release Notes
  • Cordova
    • Overview
    • Install
    • Track
    • Data Management
    • Module List
      • Ad Identifier Module
      • Crash Reporter Module
      • Install Referrer Module
    • API Reference
    • Release Notes
  • Flutter
    • Overview
    • Install
    • Track
    • Consent Management
    • Data Management
    • API Reference
    • Release Notes
  • iOS (Objective-C)
    • Overview
    • Install
    • Track
    • Data Layer
    • Data Management
    • Consent Management
    • Tag Management
    • Module List
      • Lifecycle Tracking Module
      • Optimizely X Tracking Module
    • tvOS
    • watchOS
    • API Reference
    • Release Notes
  • iOS (Swift) 1.x
    • Overview
    • Install
    • Track
    • Data Layer
    • Data Management
    • App Extensions
    • Identity Resolution
    • Consent Management
    • Modules
    • Module List
      • AppData Module
      • Attribution Module
      • AutoTracking Module
      • Collect Module
      • Connectivity Module
      • CrashReporter Module
      • DataSource Module
      • DefaultStorage Module
      • Delegate Module
      • DeviceData Module
      • DispatchQueue Module
      • FileStorage Module
      • Lifecycle Module
      • Location Module
      • Logger Module
      • PersistentData Module
      • RemoteCommands Module
      • TagManagement Module
      • VisitorService Module
      • VolatileData Module
    • Feature Comparison
    • Working with Objective-C
    • API Reference
      • TealiumConfig
      • TealiumConsentCategories
      • TealiumConsentManagerDelegate
      • TealiumConsentManager
      • TealiumInstanceManager
      • TealiumPersistentData
      • TealiumVolatileData
      • Tealium
    • Release Notes
  • iOS (Swift) 2.x
    • Overview
    • Install
    • Track
    • Data Layer
    • Consent Management
    • App Extensions
    • Identity Resolution
    • Modules
    • Module List
      • AppData Module
      • Attribution Module
      • AutoTracking Module
      • Collect Module
      • Connectivity Module
      • CrashReporter Module
      • DeviceData Module
      • Lifecycle Module
      • Location Module
      • RemoteCommands Module
      • TagManagement Module
      • VisitorService Module
    • Working with Objective-C
    • API Reference
      • Tealium
      • TealiumConfig
      • TealiumConsentCategories
      • TealiumConsentManager
      • TealiumDataLayer
      • TealiumInstanceManager
    • Release Notes
  • React Native
    • Overview
    • Install
    • Track
    • API Reference
    • Release Notes
  • Unity
    • Overview
    • Install
    • Track
    • API Referencee
  • Xamarin
    • Overview
    • Install
    • Track
    • Data Management
    • Consent Management
    • API Reference
    • Release Notes
  • Web
  • AMP
    • Overview
    • Install
    • Track
    • Data Layer
  • Angular
    • Overview
    • Install
    • Track
    • API Reference
  • Google Tag Manager
    • Overview
    • Install
    • Data Layer
  • JavaScript (Web)
    • Overview
    • Install
    • Track
    • Data Layer
    • Universal Data Object (utag_data)
    • Universal Tag (utag.js)
    • Data Layer Object (b)
    • Single-Page Applications
    • Settings
    • Debugging
    • API Reference
      • Cookie Functions
      • GDPR Functions
      • Tracking Functions
      • Utility Functions
    • Release Notes
  • Server
  • C#
    • Overview
    • Install
    • Track
    • Data Layer
    • API Reference
    • Release Notes
  • HTTP API
    • Overview
    • Endpoint
    • Data Layer
  • Java
    • Overview
    • Install
    • Track
    • API Reference
    • Release Notes
  • Node
    • Overview
    • Install
    • Track
    • API Reference
  • Python
    • Overview
    • Install
    • Track
    • API Reference
  • Roku
    • Overview
    • Install
    • Track
    • API Reference
  • Ruby
    • Overview
    • Install
    • Track
    • API Reference

Was this article helpful?

This page was last updated: August 27, 2020       Thank you for your feedback!
  • Platforms
  • Partners
  • Forums
  • Mobile
  • Getting Started
  • Remote Commands
  • Android (Java)
  • Android (Kotlin)
  • Cordova
  • Flutter
  • iOS (Objective-C)
  • iOS (Swift) 1.x
  • iOS (Swift) 2.x
  • React Native
  • Unity
  • Xamarin
  • Web
  • AMP
  • Angular
  • Google Tag Manager
  • JavaScript (Web)
  • Server
  • C#
  • HTTP API
  • Java
  • Node
  • Python
  • Roku
  • Ruby