# Changelog

# Version 2.2.0

# Version 2.2.2

August 31, 2021

IMPORTANT

The dependencies used by PinchSDK has to be explicitly defined due to the nature of XCFramework being dependent on XCFrameworks. See Install SDK for the required dependencies.

Behavior Changes

  • Converted PinchSDK from fat library to XCFramework

# Version 2.1.0

# Version 2.1.0

August 04, 2021

New Features

  • Added motion provider and accompanying methods to indepedently collect motion data without requiring location access

Bug Fixes

  • Fixes an issue where a race condition would desynchronize private key for authentication header hash

Behavior Changes

  • Location provider no longer collects motion.

# Version 2.0.0

Breaking Change

All references to the public api must now be done through PinchSDK.

# Version 2.0.3.2

April 29, 2021

  • Swift 5.4 Support

# Version 2.0.3

  • Added Swift 5.3.1 compiler support

Behavior Changes

  • Device name is offloaded to remote

# Version 2.0.2

September 28, 2020

Bug Fixes

  • Fixes a case where events could be delivered before the SDK was ready
  • Fixes concurrent array access which could occur in environments with a lot of iBeacons

Behavior Changes

  • Eddystone events are now sent as incomplete batch events if location is missing
  • Consents are added to header for all network requests
  • Location permission state is now included with all location objects. Can be any of: always, foreground, unknown, not_determined, denied, restricted
  • Location accuracy is now included with all location objects. Can be any of: unknown, full, reduced
  • Device accuracy is sent as installation information

# Version 2.0.1

September 21, 2020

Bug Fixes

  • Added missing dependency references to legacy PinchSDK.

# Version 2.0.0

September 21, 2020

Caution

This version is missing dependency references to the legacy PinchSDK and will cause a fatal exception on app launch.
This can be resolved by using version 2.0.1 or by explicitly importing the CocoaPods PinchSDKLegacy and PinchSDKLegacyBluetooth.

Breaking Changes

  • All references to Pinch has been renamed to PinchSDK

New Features

  • Added getGender method to retrieve Pinch.DemographicProfile.Gender based on name. Internet connection required

# Version 1.1.0

# Version 1.1.11

May 29, 2020

  • Fixed an issue where briding headers would be merged incorrectly

# Version 1.1.10

March 26, 2020

  • Adds support for building with latest version of Swift

# Version 1.1.9

March 20, 2020

Bug Fixes

  • Fixes an issue where timestamp on collected events would be incorrect by +/- 10 seconds
  • Fixes an issue where eddystone collection would never work after swipe killing the application

# Version 1.1.8

February 26, 2020

New Features

  • Added class PinchX to access PinchSDK from ObjC

# Version 1.1.7

February 25, 2020

Bug Fixes

  • Fixes crash that could occur due to dispatch group usage
  • Fixes live visits & live events being delayed when location anonymization is turned on
  • Fixes fatal exception in notification tracker

Behavior Changes

  • Add support for bluetoothAuthorization & bluetoothHardwareState
  • Add support for notificationPermission
  • Added support for activity tracking

# Version 1.1.3 – 1.1.6

Caution

An error in the build pipeline caused incorrectly bundled binaries to be uploaded to CocoaPods. The pipeline retried 4 times, causing versions 1.1.3 through 1.1.6 to be published. Adding these versions to your project will cause build failure during compilation of your target application.

# Version 1.1.3

February 12, 2020

Bug Fixes

  • Fixed an issue during initialization which could cause an fatal exception

# Version 1.1.2

February 03, 2020

Behavior Changes

  • SDK is now intialized with default endpoints for events

Bug Fixes

  • Fixed an issue where Api-Key would not be added to header

# Version 1.1.1

January 27, 2020

Bug Fixes

  • Fixed an issue where PinchMessage had incorrect access modifier

# Version 1.1.0

January 27, 2020

New Features

  • Added messaging center

# Version 1.0.0

# Version 1.0.24

January 27, 2020

Breaking Changes

  • Pinch.start() with no providers or .bluetooth no longer triggers bluetooth dialog. Use Pinch.requestBluetoothPermission() to trigger bluetooth dialog.

Behavior Changes

  • Improves handling of applicationDidTerminate
  • Reduces code size by distributing more binaries for different vendors
  • Optimizes internal startup time by skipping some migrations when possible
  • startTracking is no longer requires for requestBluetoothPermission to function correctly

Bug Fixes

  • Fixes a case where an app termination event could cause start / stop tracking to fail
  • Fixes some memory leakage
  • Fixes case where SDK would not provide callback for addCustomData, setMetadata, grant and revoke methods

# Version 1.0.23

January 24, 2020

Breaking Changes

  • Pinch.requestBluetoothPermission() is removed due to a bug that would not trigger permission dialog. Reverted to Pinch.start() with no providers or .bluetooth triggering bluetooth dialog.

New Features

  • Implementing app can manually collect and share IDFA to PinchSDK with Pinch.adid.

Behavior Changes

  • Removed usage of AdSupport. IDFA will no longer be collected by PinchSDK, unless manually given by implementing application.

# Version 1.0.22

January 23, 2020

Breaking Changes

  • The deprecated method, Pinch.started, has been removed
  • Pinch.start() will no longer trigger bluetooth permission request dialog

New Features

  • System dialog for requesting bluetooth permission can be triggered by calling Pinch.requestBluetoothPermission()

Behavior Changes

  • IDFA accompanying event uploads is now disabled by default. Usage of IDFA will be completely removed in the future.

# Version 1.0.21

January 23, 2020

Caution

This version references a wrong version of Pinch Legacy, resulting in bluetooth data not being collected. Please update to the latest version.

# Version 1.0.20

December 19, 2019

New Features

  • Pinch.start() and Pinch.stop() now accepts a list of providers to only start parts of the SDK.

Breaking Changes

  • Pinch.started is deprecated – replaced with Pinch.isTracking() which accepts a closure returning the current tracking state

Bug Fixes

  • Fixes a race condition that could occur on consent grant

# Version 1.0.19

December 19, 2019

Breaking Changes

  • grant() and revoke() no longer starts or stops the SDK based on available consents

New Features

  • Added no-op methods that accepts providers, implementation will follow in a later release

Behavior Changes

  • Encryption for checksum token is temporarily disabled due to a critical issue on a minimal amount of devices

# Version 1.0.18

December 17, 2019

Behavior Changes

  • Use Apple API for encrypting with RSA

# Version 1.0.17

December 13, 2019

Behavior Changes

  • Unique token used to generate checksum is now encrypted when reporting itself to remote

Bug Fixes

  • Fixes an issue where unique token would never be generated, resulting in checksum not matching with remote