Skip to content

Latest commit

 

History

History
218 lines (140 loc) · 7.18 KB

CHANGELOG.md

File metadata and controls

218 lines (140 loc) · 7.18 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Note

When publishing releases, the syntax of ## [VERSION_NUMBER] is used to automatically extract the release notes. To ensure the entire section is copied, only include ### or deeper headings in a release section.

Added

  • The SDK now sends identity to the Live data feed.

Added

  • Added new interfaces for upcoming autocapture release.

Fixed

  • Fixed session creation from integration code.

Added

  • Added new startRecording option, resumePreviousSession, which resumes the previous session on start if the session has not yet expired.
  • Added new signature stopRecording(deleteUser: Bool) which deletes the current user state. Subsequent calls to startRecording will have a new user and session as a result.
  • Added several internal interfaces to support an upcoming integration.

Changed

  • Improved trace logging for failed Sqlite queries.

Added

  • Added enableInteractionReferencingPropertyCapture, which will be used in heap-ios-autocapture 0.5.0 and later to enable "Target Ivar" capture. The feature is off-by-default to avoid edge conditions that can cause Swift's Mirror functionality to crash.

Deprecated

  • Deprecated disableInteractionReferencingPropertyCapture in favor of off-by-default behavior.

Fixed

  • Native track calls now preserve session expiration dates set by heap.js when using Heap.attachWebView.

Added

  • Added Heap.shared.environmentId, which returns the current environment ID or nil if not recording.
  • Added sourceProperties to trackInteraction (for use by autocapture frameworks).

Fixed

  • Fixed crash on Heap.attachWebView when called twice on the same web view prior to iOS 15. Now, subsequent calls are ignored.

  • Fixed small memory leak when an attached WKWebView is deallocated. This was caused by the WKUserContentController maintaining a strong self reference when it has message handlers attached. This change may trigger a warning message from WebKit on WKWebView deallocation, which can be resolved by calling Heap.detachWebView when removing the web view.

  • Heap.removeHeapJsCookie is now public.

Changed

  • Heap.shared.resetIdentity() and Heap.shared.identify() no longer clear event properties by default when a new user is identified.

    The previous behavior is available using the option .clearEventPropertiesOnNewUser.

  • Changed uploader behavior around server errors.

Added

  • Added option .clearEventPropertiesOnNewUser to continue using existing SDK behavior where event properties are cleared when a new user is identified.

  • Added Heap.detachWebView. This method removes most integrations added with Heap.attachWebView with the exception of the heap.js cookie. This method is optional and intended to be used before deallocating a WKWebView.

Added

  • Added .captureVendorId option to enable capture of iOS Vendor ID and Initial iOS Vendor ID from UIDevice.current.identifierForVendor. This supports a behavior change discussed in the Changed section.

Changed

  • Target Text and Target accessibilityLabel are now trimmed of whitespace.

  • Properties from addEventProperties will no longer show up on sessions, matching Classic SDK behavior. Pageviews and events are not affected by the change.

  • The SDK no longer captures iOS Vendor ID and Initial iOS Vendor ID by default. This change allows developers to opt into Vendor ID tracking after they've validated their use complies with Apple's user privacy and data use guidelines. To enable these properties, use the .captureVendorId option in startRecording.

Fixed

  • Fixed code signing on macOS. The issue was caused by the HeapSwiftCoreInterfaces zip file not preserving symlinks.

Added

  • Exposed +[HeapSourceInfo sourceInfoWithName:version:platform:properties:] and -[Heap track:properties:sourceInfo:] to Objective-C.

Added

  • Added app version change and install events. These will fire when an environment first encounters a different application identifier, app name, or version at session start.

Changed

  • Changed process to retrieve iOS device model. sysctlbyname is now used to retrieve the detailed hardware identifier (e.g., "iPhone10,3"). This results in more specific model identification than the generic UIDevice.model approach which is now used as a fallback.

Fixed

  • Added missing Objective-C module to HeapSwiftCoreInterfaces to unblock CocoaPods release.

Added

  • Added option startSessionImmediately to begin tracking sessions immediately.

Changed

  • Default behavior for sessions has been changed (startSessionImmediately = false).
    Tracking of sessions is now delayed until one of the following is called:
    • Heap.shared.track()
    • Heap.shared.trackPageview()
    • Heap.shared.trackInteraction()
    • Heap.shared.uncommittedInteractionEvent()
    • Heap.shared.fetchSessionId()

Changed

  • Split out public APIs into a ABI-stable XCFramework to better support heap-ios-autocapture-sdk.

Fixed

  • Removed usage of unsafeFlags in Package.swift.

Fixed

  • Omits properties containing empty keys and values.

Added

  • Manual capture SDK.
  • Support methods and classes for runtime bridges.
  • Support methods and classes for autocapture sources.
  • Support for manual capture within WKWebView.
  • Support for platforms targeting Swift: macOS, watchOS, iOS, iPadOS, tvOS.