Skip to content

Releases: snowplow/snowplow-ios-tracker

Version 0.8.0 (2018-04-29)

29 Apr 20:42
Compare
Choose a tag to compare

Introduces consent tracking methods, a push notification tracking method, and a Swift demo app, among other updates and bug fixes.

New functionality

  • Add method to SPTracker to get session's userId (#345)
  • Add a Swift port of SnowplowDemo (#342)
  • Add trackConsentGrantedEvent and trackConsentWithdrawnEvent methods (#340)
  • Add support for push notification open tracking (#335)

API changes

  • Add identifyUser as alias for setUserId (#341)
  • Add preprocessor flags to disable OpenIDFA or IDFV (#334)
  • Add trackSelfDescribingEvent method as alias for trackUnstructEvent (#272)

Bug fixes

  • Fix SnowplowTests bundle custom folder name (#343)
  • Extend copyright notice in all files to 2018 (#331)
  • Replace NSGregorianCalendar with NSCalendarIdentifierGregorian (#329)
  • Fix truncation of structured event value to 6 digits (#299)

Documentation, test, and build

  • Remove "close" from CHANGELOG for issue #333 (#338)
  • Update CocoaPods to 1.4.0 and add pod update repo in build script (#347)
  • Drop iOS 8 test target, add iOS 10 and 11 (#344)

Version 0.7.0 (2017-12-24)

24 Dec 14:59
Compare
Choose a tag to compare

Refresh release, bringing dependencies up-to-date, plus some bug fixes

Bug fixes

  • Fix invalid latitude in test suite (#322)
  • Don't attempt to serialize nil object in event store (#286)

Version updates

  • Bump iOS deployment target to 8.0 (#326)
  • Bump Xcode to 9.1 and test against iOS 8.1 and 9.0 (#325)
  • Bump CocoaPods to 1.3.1 (#306)
  • Bump FMDB to 2.6.2 (#315)
  • Use default Bundler version in Travis (#336)

Documentation

  • Fix method description typos (#317)
  • Update README markdown in accordance with CommonMark (#333)

Version 0.6.2

10 Oct 14:40
Compare
Choose a tag to compare

Bugs

  • Fix failing geolocation_context test (#293)
  • Cast from NS(U)Integer to long type causes crashes on 32-bit devices, thanks @chrisfsampaio (#271)
  • App crashes on iPhone 4s simulator, thanks @chrisfsampaio (#278)
  • Fix Travis build (#295)
  • Fix failing getLanguage test on Travis (#294)
  • Correct the capitalization of Xcode in README, thanks @ReadmeCritic (#268)

Version 0.6.1

22 Feb 15:51
Compare
Choose a tag to compare

Bugs

  • Harmonized foreground and background timeouts with Android (#265)
  • Fixed Cast from NS(U)Integer to long type causing crashes on 32-bit devices (#264)
  • Fixed crash when logging emitter attempts, thanks @rockshassa! (#262)

Deployment

  • Made podfile dependencies more restrictive (#266)

Snowplow Objective-C Tracker v0.6.0

19 Jan 00:26
Compare
Choose a tag to compare

Refactors the event tracking API, introduces tvOS support and fixes an important bug with client sessionization

API Changes

  • Updated Cocoapods version to 0.39.0 (#243)
  • Added event class with builder options for all event types (#223)
  • Added tvOS deployment target to Podspec (#244)
  • Added Precondition checks for Tracker and Emitter (#221)
  • Added option to set event id manually (#195)
  • Added firstEventId to client_session context (#194)
  • Added a SelfDescribingJson class to ensure we build contexts and unstructured events properly (#119)
  • Added preconditions to event builders to ensure they are setup correctly (#117)
  • Added location context information (#68)

Performance

  • Removed buffer limit in favour of only using bytelimit (#245)
  • Added batching based on payload size (#162)

Bug Fixes

  • ClientSession needs to send null for the first previousSessionId (#257)
  • Only start a single timer, be sure to stop previous checker (#252)
  • Updated pauseEventTracking so that the emitter timer is invalidated/stopped (#218)
  • Changed floats, doubles and ints to NSNumbers (#96)
  • Floats and doubles are not being correctly shortened to two decimal places (#232)
  • OpenIDFA calendar is deprecated for iOS 8, thanks @iamjason! (#230)
  • Fixed classname collision: SPUtils vs WatchKit.framework, thanks @iamjason! (#228)
  • iOS9 ATS issues with OpenIDFA (#175)
  • SPUtilities getLanguage returns country code appended string in iOS9 (#233)
  • SPUtilities getTimestamp should return an NSInteger not double (#229)
  • Fixed tvOS could not create database queue for path (#251)

Documentation

  • Replaced legacy docset_url in podspec with documentation_url (#259)
  • Added tests to check generated self-describing jsons against their schemas in iglu (#222)
  • Added missing tickets to CHANGELOG (#226)

Snowplow Objective-C Tracker v0.5.2

30 Sep 13:18
Compare
Choose a tag to compare

Fixes a regression error with the mobile_context as well as fixing the session_context arguments.

Bugs

  • Fixed regression of mobile_context to 1-0-0 from 1-0-1 (#235)
  • Fixed SessionIndex being passed as a string not as an integer (#234)
  • Fixed .gitignore to work with Xcode 7 (#241)

Snowplow Objective-C Tracker v0.5.1

11 Sep 16:29
Compare
Choose a tag to compare

Adds SP into all tracker constants' names to prevent a build conflict with the Google Analytics tracker.

Under the hood

  • Added entropy to global constants to avoid clang errors with other libraries (closes #224)

Snowplow Objective-C Tracker v0.5.0

03 Sep 15:53
Compare
Choose a tag to compare

Introduced builder patterns for Tracker & Emitter, client sessionization and various bug fixes.

New functionality

  • Added SPSubject class equivalent to remove need to get same data over and over (#196)
  • Configured SPSubject to match how other Tracker Subject classes function (#203)
  • Added in-client sessionization (#19)
  • Simplified SPTracker event decoration into a single function (#204)
  • Changed "POST" and "GET" options to enums (#120)
  • Updated contexts schema to 1-0-1 (#207)
  • Updated payload-data to 1-0-3 (#91)
  • Created SnowplowConstant class or equivalent (#35)
  • Created an option to opt-out of data collection (#27)
  • Added Tracker builder options to pass through session timeouts (#210)
  • Added option to set emitting thread pool size (#199)
  • Added option to set events to emit range (#198)
  • Added support for checking if the device is online before attempting to emit (#184)
  • Added builder pattern for tracker/emitter (#190)
  • Added checks for malformed NSURL (#79)
  • Added is online label to the demo app (#193)

Bug fixes

  • Added synchronized mutex lock to emitter results to prevent BAD_ACCESS_ERR (#216)
  • Added an implementation of NSTimer without a strong reference to its parent target (#215)
  • Ensured that sendEvents will run in background only (#197)
  • Ensured platform is set as it is a required field for payload_data (#206)
  • Validated all public properties of all classes (#209)
  • Fixed SPUtils functions need to return nil not an empty string if they fail to get a value (#213)
  • Fixed SPUtils getPlatform function which only returns "mob" as a default string (#205)
  • Fixed RequestCallback has to import Foundation before defining protocol (#202)
  • Fixed Emitter timer must be setup on main thread or it will not run (#201)
  • Removed OCHamcrest test dependency from podfile (#211)

Documentation, test and build

  • Added Mocking library for proper unit testing of emitter requests (#212)
  • Updated all class namespaces (#200)
  • Made RequestCallback protocol more idiomatic to obj-c (#189)
  • Renamed initWithURLRequest to initWithURL (#114)
  • Updated test suite to cover all code in the tracker (#208)

Snowplow Objective-C Tracker v0.4.0

16 Aug 15:32
Compare
Choose a tag to compare

Refactored event emitting, better testing and various community PRs

Event emitting

  • Updated how the emitter sends information to match the Android Tracker flow (#185)
  • Full memory leak and performance analysis (#183)
  • Using FIFO instead of "pending" flag to track emit progress (#94)

New functionality

  • Added iOS 6 support, thanks @agarwalswapnil! (#163)
  • Added functions to access metrics on the SQLite database (#182)
  • Added network properties implementation, thanks @duncan! (#142)
  • Added support for callbacks for success/failure (#59)

Bug fixes

  • Fixed Content-Type not being set correctly (#192)
  • Macroed out the usage of sharedApplication, thanks @hlian! (#157)

Documentation, test and build

  • Made an iOS test app (#67)
  • Added target for building Static iOS Framework, thanks @AlexDenisov! (#171)
  • Added Coveralls code coverage to project (#108)
  • Added Mountebank for simple testing of tracker locally (#82)
  • Changed license in README to be pulled from CocoaPods (#130)

Snowplow Objective-C Tracker v0.3.4

05 Aug 15:58
Compare
Choose a tag to compare

Various bug fixes

Bug fixes

  • Fixed Tracker sometimes POSTs when no events to post, thanks @leonardors! (#164)
  • Fixed bug in PR whereby POST is sent with many events when Buffer type is instant (#178)
  • Fixed FMDB requirement for an operation queue to work properly in a concurrent world (#179)
  • Fixed bug where appId is nullified if namespace is nil (#165)
  • Using buffer size to limit number of events per POST, thanks @leonardors! (#169)

Under the hood

  • Removed _buffer in SnowplowEmitter in favour of boolean counter (#173)