These release notes show incremental updates to the BlueConic SDK for iOS, including the SDK version number, the date the update was released, and major changes or additions.
3.3.0 - June 12, 2024
Changed
- Migrated SDK local file save location for enhanced security and added obfuscation to the file contents.
Added
- Added support for timeline events in the SDK.
Fixed
- Fixed minor issues with processing UI elements for Form Listeners.
3.2.0 - March 12, 2024
Added
- Privacy Manifest as required by Apple Privacy Guidelines.
- SDK Code signing.
3.1.0 - February 23, 2024
Added
- Internal tracking for React Native usage
3.0.0 - October 26, 2023
Added
- Support for Binary Framework
- Support for Swift Package Manager
Changed
- Updated minimum iOS version requirement to 12.
- The main api class renamed from 'BlueConicClient' to 'BlueConic'.
2.9.0 - September 4, 2023
Added
- Support for Swift 5.8.1
Fixed
- Set (if empty) not setting values in Rule Based form listener.
- Error on lightbox without content.
- Order of plugin disposal/recreation after a page switch is incorrect.
2.8.10 - March 1, 2022
Added
- Support for Swift 5.7.2
2.8.9 - June 7, 2022
Added
- Support for Swift 5.6.1
- Add increment method to BlueConic SDK for iOS.
Fixed
- Sending information on deleted properties for RPC hash getProperties is not supported.
2.8.8 - November 24, 2021
Fixed
- Set (if empty) not setting in Behavior Listener for Mobile SDK.
2.8.7 - September 27, 2021
Added
- Support for Swift 5.5
Fixed
- BlueConic SDK for iOS has a cache file that does not get cleared; slows the app down.
- Clean up outdated files.
2.8.6 - May 3, 2021
Changed
- BlueConic SDK for iOS creating a new profile for each pageview event. By setting bc_shared=false in the Info.plist a dedicated BlueConic cookie store is used.
Added
- Support for Swift 5.4
2.8.5 - November 3, 2020
Changed
- The logic in `setUrl` to only call `setHostname` when `debug` mode is `true` to avoid invalid URL as overrule hostname.
Fixed
- Issue in the simulator mechanism to not overrule the hostname when `debug` mode is `false`.
2.8.4 - September 20, 2020
Added
- Support for iOS 14
- New method `setMobileAdId(mobileAdId)` that can be used to programmatically set the IDFA/ Mobile Advertising UID, to apply for the new rules regarding privacy, data tracking, and IDFA.
Removed
- The `GlobalListener` will no longer auto-detect and set the IDFA/ Mobile Advertising UID. The profile properties "Mobile Ad Id (Most Recent)" `mobile_ad_id` & "Mobile Ad Id (all)" `mobile_ad_ids` are removed from this listener, and can be set/stored via the new method `setMobileAdId`.
2.8.3 - July 16, 2020
Fixed
- A small issue in `EngagementService` where multiple items were stored with pipes (`|`) instead of separate values.
2.8.2 - June 16, 2020
Changed
- BlueConicEventManager uses the BlueConic DispatchQueue.
- Changed the GlobalListener to collect data without any `Context` to also support non-`ViewController` pages.
Added
- Debug statements around connecting with the Simulator.
- New method `setURL(url) -> Bool` to connect with the Simulator and retrieve a status `true` or `false` when the connection succeeded.
Fixed
- Multithreading issues when registering Events via the `BlueConicEventManager`.
2.8.1 - April 27, 2020
Fixed
- Process of `Segments` during a register of a `PAGEVIEW` event.
- Support for callback methods, design for `ReactNative`-module.
2.8.0 - April 17, 2020
Changed
- The internal property of the ViewController `context` to a `weak` variable, to avoid keeping a refers to this.
- The `context` statement to be optional `PAGEVIEW` and/or custom events, can now trigger an event without the need of a `ViewController`.
Added
- Support for Swift 5.2
- New method `registerPluginClass :className` to register custom `BlueConicPlugin` classes, registering plugins and specify on class name.
- New method `getSegments` retrieve all segments where the profile belongs to. BlueConic Segments are retrieved when there is a `PAGEVIEW` event created.
- New method `hasSegment` validate if a profile is in a certain segment, based on Segment ID.
- New method `createEvent :properties :completion` - Create event method with a callback/ completion mechanism to do follow up actions at the time BlueConic retrieved new data from the servers.
- New method `createEvent :data :completion` - Create event method with a callback/ completion mechanism to do follow up actions at the time BlueConic retrieved new data from the servers.
- New method `updateProfile` - Update the profile instantly push/ sync all profile property data with the profile on the BlueConic tenant.
- New method `updateProfile :completion` - Update the profile method with callback/ completion mechanism to do follow up actions at the time BlueConic retrieve new profile data from the servers.
- New method `getInstance` - Retrieve an instance without sending a ViewController along, improvement on the method calls `getInstance(nil)'.
- New methods for `InteractionContext` to call within your `BlueConicPlugin`:
- `getInteractionTypeId` The ID of the interaction type.
- `getPluginType` The type of the plugin.
- Extra accessibility for other (UI) Frameworks - not using `ViewController`s
Fixed
- The issue for `addRefusedObjective` not pushing refused objectives.
- Running background tasks on the main thread.
2.7.0 - February 17, 2020
Changed
- The deprecated `UIWebView` to `WKWebView`.
- Support for custom/ timeline events with context `createEvent`- custom events are now sent to BlueConic servers and could be used to store these events on the timeline.
- Clear the events on `BlueConicClient` level when a `PAGEVIEW` event is called.
- Execute all published `Events` after the `onLoad` of all plugins is called, so none of the published `Event`s are missing for these calls.
- Moved `BlueConicEventFactory` and `BlueConicEventManager` from `Plugin`-directory to `BlueConicClient`. This is now part of the `main`.
Added
- New privacy legislation methods `getPrivacyLegislation` and `setPrivacyLegislation`.
- New Objectives getter methods `getConsentedObjectives`, `getRefusedObjectives`.
- New Objectives setters methods `setConsentedObjectives`, `setRefusedObjectives`.
- New Objectives adders methods `addConsentedObjective`, `addRefusedObjective`.
- New method `isEnabled` and `setEnabled` to enable or disable the BlueConicClient SDK programmatically.
- New method `registerPluginClass` to register custom `BlueConicPlugin` classes, registering plugins.
- New method `createEvent: withData` that supports a map `[String: Any]`
-
New methods for `InteractionContext` to call within your `BlueConicPlugin`:
- `getName` The name of the interaction
- `getPluginType` The type of the plugin
- `getPositionName` The name of the (channels) position
- `getDialogueId` The ID of the dialogue ( Only used for `Action`s )
- `getDialogueName` The Name of the dialogue ( Only used for `Action`s )
Fixed
- Handle all events between `PAGEVIEW` event and the plugins `onLoad` method correctly.
- Don't store the invalid value (`00000000-0000-0000-0000-000000000000`) to profile property `Mobile Ad ID`.
- Crashes around registering plugin classes. Issue `objc_getClassList` when the parameter is not a `MutablePointer`.
Removed
- All `cleanup`-event calls in `Listeners` this is no longer required this is no managed by `BlueConicClient` instead by the `BlueConicPlugin`s individually.