Release Notes

Version 1.15.1

Changes Attribute Description
XCFramework Improvement

SDK is distributed now in the form of XCFramework distributable binary package.

Version 1.15.0

Changes Attribute Description
c-parameter Improvement

c-parameter is added to the request as a fallback for missing cookie.

kid Improvement

A new identifier kid is now added to the measurement.

iOS 15/iPadOS 15 Platform Review

Support for iOS 15/iPadOS 15 platforms is added.

Version 1.14.0

Changes Attribute Description
IDFA Enhancement

SDK will now drop the usage of IDFA

URLScheme Enhancement

SDK will now check for old URLScheme first and then the new one

SSL off-loader Improvement

Removing ssl off-loader. Box will now take care of all ssl requests.(Internal)

Offline Mode Bug fix

Apps built with Xcode 12 will not crash with this release of SDK

iOS14/iPadOS14 Platform review

SDK is now compatible and working with iOS14/iPadOS14

Version 1.13.0

Changes Attribute Description
Demo Libraries Improvement

Added new target "Demo" to libraries

WKWebview Improvement

Replaced UIWebview with WKWebview

Version 1.12.0

Changes Attribute Description
MultiMarket Support Improvement

Sensor now provides a way to update market/domain via new constructor(limited to Universal artifact, currently supports only UK,NO & DK markets)

Version 1.11.4

Changes Attribute Description
ITP 2.0 Analysis

Analysis: Cookie and Local Storage behavior in New Safari.

iOS 12 Analysis

Test sensor on iOS 12.

URL Scheme Trigger Improvement

Camel-Case and Lower-Case handling for URL scheme trigger.

Virtual Meter Improvement

Added Virtual Meter trigger frequency, which triggers the Virtual Meter app every week in the first month after installation of the sensor and every month afterwards.

Version 1.11.3

Changes Attribute Description
32Bit iOS devices Bugfix

Fixes a crash on 32-bit devices, when using a VirtualMeter app.

URL schema trigger Bugfix

VirtualMeter app trigger mechanism has been made more reliable.

Version 1.11.2

Changes Attribute Description
Control over IDFA Access Bug

The use of the IDFA can now be disabled in constructor. See API documentation for more information.

Version 1.11.1

Changes Attribute Description
OEWA Bug fix

OEWA version of the tagging sensor is not sending requests.

Version 1.11.0

Changes Attribute Description
Cookie Management Improvement

Store cookies in app data in order to prevent deletion of the cookies.

Expose identifiers Improvement

The mobile identifiers can be accessed with the new public method getEncryptedIdentifiers of the class Stream.

Ringbuffer Improvement

Ringbuffer now flushes all requests when the app goes into background.

Ringbuffer Improvement

Requests from the ringbuffer will now be sent always, not only in offline mode.

SSL Improvement

Non-SSL communication has been removed.

Version 1.10.0

Changes Attribute Description
Internal improvements Improvement

Some internal improvements and code cleaning

Version 1.9.1

Changes Attribute Description
Request Debugger Improvement

A debug Notification is integrated into the library, so that the customers are able to fetch the request sent by the library. See more #KMA_TAGGING_DEBUGINTERFACE_NOTIFICATION.

Debug mode Improvement

Debug mode should be set to false if the application is live product. If the debug set to true, the KMA library will automatic add a flag "isDebug=1" in the http request.

URL Scheme Improvement

New beta iOS 10 release has already fixed the url-scheme bug, now capital letters are again valid in url-scheme registration.

URL encoding bug fix

URL encoding component is updated in the library. Symbols will be also url-encoded in measurement requests.

Version 1.9.0

Changes Attribute Description
URL Scheme Improvement

In iOS 10, all the url schemes have to be lower-case string, please modify the plist to grant lower-cased url scheme.

API modifications Improvement

All the KMA_Spring library components are now with KMA as prefix, please adapt the changes in your implementation, more details can be found in the API documentation enclosed.

API replacement Improvement

Some of the APIs are replaced with the latest iOS APIs, for better compability. From this version, iOS 6 will not be supported any more.

Version 1.8.11

Changes Attribute Description
Https transmission Improvement

Change the https prefix for some clients on their demand. QSIClient now is also aligned with ssl options.

Version 1.8.10

Changes Attribute Description
Https transmission Improvement

new API setSSL() is added to the library, default https ssl transmission is off, can be switched on. please don't swtich it on until Kantar media Support Team suggest so

Version 1.8.9

Changes Attribute Description
In-app Improvement

In-app survey service is updated

In-app Bug

The sitename in waypoint information is now correct.

Version 1.8.8

Changes Attribute Description
ARC management bug

Fix the crashes caused by multiple ARC deallocation.

Compiling warning Improvement

Set "Precompiling Header Prefix" to NO, to avoid precompiling warnings.

BitCode bug

Enable "-fembed-bitcode" in 'Other C Flags', so that bitcode service can be enabled in Applications.

Version 1.8.7

Changes Attribute Description
Class Name Improvement

Add prefix to the class names and static variables, in order to avoid conflicts

Resource bundle plist Improvement

Have the update accordingly for iOS9(CFBundleExecutable).

Version 1.8.6

Changes Attribute Description
Variable Name Improvement

Rename popularize variable names, in order to slove the symbol conflict

Bitcode Improvement

Bitcode is enabled in the Spring lib, clients have the chance to enable or disable the bitcode service in their applications.

Version 1.8.5

Changes Attribute Description
Site Name Improvement

Update survey lib and apply in spring tagging measurement

Version 1.8.4

Changes Attribute Description
Site Name Improvement

Site name info now is in the QSIClient

Version 1.8.3

Changes Attribute Description
Background Thread Fix

Modify the corresponding background thread expiration handlers, prevent from the crash caused by the auto-release of the OS(180sec, or 600sec)

Http Request Handler Fix

Fix a bug with the precheck on the application event, in order to prevent unnecessary background thread for http request

Variable Name Improvement

Rename popularize variable names, in order to slove the symbol conflict

Version 1.8.2

Changes Attribute Description
Bundle Name Improvement

The 'an' parameter in the http request is restored to be the CFBundleDisplayname, instead of CFBundleName.

Release Notes

Version 1.8.1

Changes Attribute Description
Source Bundle Fix

Resource Bundle is added, only for the survey users.

Version 1.8.0

Changes Attribute Description
Survey services Improvement

Starting from the version 1.8.0, Spring lib has an extension, called SurveySpring, which offers you the opportunity to achieve the on-line questionary with the end users. The SurveySpring is not default embedded into the library, if you need more info, please contact support@spring.de, survey service can be attached on demands

ARC Fix

The Spring lib is now changing to ARC(automatic reference counting), in order to wipe out/fix the potential/existing bugs.

Delay on PanelApp switch Improvment

Postpone the URL scheme call to UIApplicationDidBecomeActive, only for panelApp users

CFBundleName Fix

Replace the CFBundleDisplayName with CFBundleName in the requests

Debug mode Improvement

Default debug setting is configured to false, only error message will present in the log if Spring lib debug mode is not set to true on purpose.

Version 1.7.3

Changes Attribute Description
Panel App Improvement

Starting from the version 1.7.3, Spring Audience Lib is able to pair with previous customized panelApp, as well as 'Nip App'. The related component is optimized.

Advertising ID Modification

As Apple requested, add the check of user's 'Limit Ad tracking' option before reading the advertising ID.

Version 1.7.2

Changes Attribute Description
Data encoding Fix

Fix a parameter encoding problem

Panel App Improvement

Speed up the switch to panel App, this improvement applies to the related clients

Panel App Modification

Preconditions which leads to the panel App switch has been modified. With this modification, the main App with spring lib imported can also trigger the panel App even though the panel App has been installed after the main App. New Spring lib attempts on switching to the panel App every time when the main App goes foreground. This modification applies to the related clients

Version 1.7.0

Changes Attribute Description
App name retrieving Fix

Spring libs will be tolerant even if the app name is not registered correctly in application

Communication with PanelApp Improvement

Optimize the communication module with Panel App, in order to register each single device with global unified id. This improvment is only applied for relative clients

User-agent string New Feature

Starting with Spring lib 1.6.1, the default user-agent string of the device is inserted into http client parameters to be collected by the backend box. The user-agent string will be used for device type recognition.

Availablity of retrieving IFV Fix

Fixed the crash caused by unavailable call of retrieving IFV (idforVendor). This bug crashes the app in iOS versions below 6.0.0.

Reorganization of imports Improvement

Reorganized the header files, includes, imports, in order to avoid potential duplicate-symbols-error in case the -all_load flag is set in the main application.

Force to apply aid Special feature

This update is only applied to some of our clients based on their requirements. Spring lib will produce a compile error to force the usage of advertising id (with the adSupportFramework imported into application)

Version 1.6.0

Changes Attribute Description
PanelApp Switch: Url Scheme New Feature

Since Spring 1.6.0, the lib will try to call a corresponding PanelApp (by URL Scheme, happens in the initializaiton phase, only called once if ifv is not changed since last lauch), and send ifv (identifier_for_vendor) and related parameters to the PanelApp. This mechanism is designed for identifying each single device owned by the end user. (ifv is unique for each vendor, but not globally)

For adapting this mechanism, the clients of Spring lib has to implement their own PanelApp and also import Spring/SpringStreams lib into it.

arm64 bits support New Feature

Since Spring 1.6.0, the lib will support arm64 bit architecture, Spring lib will be applicable for latest iOS devices.

Customized special fields Changes

More customized parameteres/special fields are inserted into measuring http request, applied to our lib accordingly based on the different domains.

Version 1.5.2

Attribute Description
Identifier of Device New Feature The identifier of the device would be advertisement id + identifier_for_vendor(https://developer.apple.com/library/ios/documentation/uikit/reference/UIDevice_Class/Reference/UIDevice.html#//apple_ref/occ/instp/UIDevice/identifierForVendor) if your application contains video advertisement, otherwise the identifier of the device would be only identifier for vendor. This change responses to the modification of Apple Developers' Policy, advertisement ids are not accepted if no video adversements are involved in the application.
lib Management Change PLEASE NOTICE: We have intergrated our spring sensor libraries for our clients to one, and this universal lib is applicable for all our clients. Your customized configurations are applied based on different domain, so it does not influence the functionalities of the library. This change affects some clients who are using old Spring library, please change your header file Spring*.h (your company indentifier), to Spring.h

Version 1.5.1

Attribute Description
Advertising-Framework Improvement Advertising-Framework is linked as optional for the compatibility purpose of iOS versions earlier than iOS 6

Version 1.5.0

Attribute Description
OfflineMode New Feature If the app is configured to offlineMode, spring library would hold all requests in a local buffer and send them until the device goes back online. Spring lib checks the internet connection regularly by using a Timer and send the data as soon as possible. Please notice:\n -# Old requests would be droped if too many requests pump into local buffer for the limitation in buffer size. The default buffer size is 1000. The data will be stored in a local file, so we would not lose the requests even if the applicaiton terminated. -# Spring lib tries to send the requests in a fixed rate, 10 seconds by default, and sends them if device is online. This is achieved by using Apple NSTimer. \n\n This mode can be switched on and off by using public API. @see Spring.offlineMode