Releases: heap/heap-swift-core-sdk
0.5.2
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'sMirror
functionality to crash.
Deprecated
- Deprecated
disableInteractionReferencingPropertyCapture
in favor of off-by-default behavior.
0.5.1
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 ornil
if not
recording. - Added
sourceProperties
totrackInteraction
(for use by autocapture frameworks).
0.5.0
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 onWKWebView
deallocation,
which can be resolved by callingHeap.detachWebView
when removing the web view. -
Heap.removeHeapJsCookie
is now public.
Changed
-
Heap.shared.resetIdentity()
andHeap.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 aWKWebView
.
0.4.0
Added
- Added
.captureVendorId
option to enable capture of iOS Vendor ID and
Initial iOS Vendor ID fromUIDevice.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 instartRecording
.
0.3.1
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.
0.3.0
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 genericUIDevice.model
approach which is now used
as a fallback.
0.2.1
0.2.0
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()
0.1.2
0.1.1
Fixed
- Omits properties containing empty keys and values.