Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Offline-Mode


For Android and iOS version, spring-lib has a feature the so-called "offlineMode". This mode can be switched on and off by using public API: setOfflineMode (boolean offlineMode)

If the lib is configured to offlineMode, spring library will hold all requests in a local buffer and send them when the device goes back online.
The spring-lib checks the Internet connection regularly by using the Android/iOS Timer and sends the data as soon as possible.

Please notice:

  • Old requests will be dropped if too many requests pump into local buffer for the limitation in buffer size. 
  • The default buffer size is 500.
  • The data will be stored in a local file, so the lib will not lose the requests even if the application terminates
  • the spring-lib tries to send the requests in a fixed rate, 10 seconds by default, and sends them if device is online again

 

iOS

Identifiers on iOS

 Device ID (did)Advertising ID (ai)Mac ID (mid)ID_For_Vendor (ifv)
iOS4------(plus)---
iOS5------(plus)---
iOS6---(plus)(plus)(plus)
iOS7---(plus)---(plus)
iOS8---(plus)---

(plus)

iOS9

(plus)

(plus)

 

Considering that the Apple private policy is changing all the time, Spring libs have to adapt different UDIDs for identifying the end user's devices.

  • Since iOS7 the Mac ID is not available anymore,
  • Since iOS7 introducing of Advertising ID and ID_For_Vendor

Please attention:
Apple will reject all the applications which retrieve Advertising ID (ai) but with no advertising content provided.

So Advertising-Framework is linked as optional in Spring lib,
If the Advertising ID should be used as udid, please import Advertising-Framework into your projects.

Migration to iOS9


URL Scheme

Starting on iOS 9, iOS apps will have to declare what URL schemes they would like to be able to check for and open in the configuration files (plist file) of the app as it is submitted to Apple. So if your application is combining with a specific "Panel App" (e.g. Virtualmeter App), please register the URL scheme in your application, the syntax is as following:

 

<key>LSApplicationQueriesSchemes</key> 
     <array> 
         <string>XX.XXX.ipm</string> 
         <string>XXXXXPanelApp</string> 
     </array>

 

App Transport Security (ATS)

Starting from iOS 9.0, App Transport Security (ATS) enforces best practices in the secure connections between an app and its back end. Migrating from http to https has to be planed for the more secure communication. However for this moment, if you decide to enable ATS, a temporary solution can be adapted by adding an exception for Kantar Media Audiences measurement box:

 

<key>NSAppTransportSecurity</key> 
 <dict> 
         <key>NSAllowsArbitraryLoads</key> 
         <false/> 
         <key>NSExceptionDomains</key> 
         <dict> 
             <key>XXXXXXXXX</key> 
             <dict> 
                 <key>NSIncludesSubdomains</key> 
                 <true/> 
                 <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> 
                 <true/> 
                 <key>NSExceptionRequiresForwardSecrecy</key> 
                 <false/> 
             </dict> 
         </dict> 
     </dict>
if ATS is not enabled in your application, as NSAllowsArbitraryLoads = true, then you don't need to modify anything.

 

BitCode

Bitcode is a new feature on iOS 9, an intermediate representation of a compiled program. Now you have the new Kantar Media Audiences lib with bitcode enabled, for your application you have the chance to enable or disable the bitcode service.

Android

Google Advertising ID

Beginning with Spring lib 1.6.0, GoogleAdvertisingID is adapted to identify the android devices. In order to achieve this, please import google-play-services_lib to your application. Follow the tutorial detailed info: http://developer.android.com/google/play-services/setup.html

  • Install the Google Play Services SDK.
  • Import the project into your application.
  • Don't forget to add following items into your project AndroidManifest.xml file:

    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />




  • No labels