The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
* Added a separate APM Configs with following options:
* `enableForegroundBackgroundTracking`
* `enableAppStartTimeTracking`
* `enableManualAppLoadedTrigger`
* `setAppStartTimestampOverride:`
* Mitigated an issue in the symbol file uploading script where some dSYM files were archived without content
* Deprecated `enablePerformanceMonitoring` initial config flag
* dSYM uploading script now can upload multiple dSYM files if their location is provided
* Added support for Xcode 15 DWARF file environment variable changes while using dSYM upload script
* Added `disableLocation` initial config property to disable location tracking
* Added `addSegmentationToViewWithID:` in view interface for adding segmentation to an ongoing view
* Added `addSegmentationToViewWithName:` in view interface for adding segmentation to an ongoing view
* Fixed bug with "pauseViewWithID" call where it could go into a recursive loop
- Added `requestDropAgeHours` initial config property to set a time limit after which the requests would be removed if not sent to the server
- Added a call to enroll users to A/B tests when getting a remote config value: 'getValueAndEnroll'
- Added a call to enroll users to A/B tests when getting all remote config values: 'getAllValuesAndEnroll'
- Added app version in all API requests.
- Fixed sending '--' as carrier name due to platform changes from iOS version 16.4. This version and above will now not send any carrier information due to platform limitations.
- Mitigated an issue where users could not enroll to an A/B tests if enrollment request has failed
- Fixed rating feedback widget event key for widget closed event
- Added `testingDownloadExperimentInformation:` in remote config interface
- Added `testingGetAllExperimentInfo:` in remote config interface
- Expanded feedback widget functionality. Added ability to use rating widgets.
- Added functionality to access tags for feedback widgets.
- Fixed SPM public header issues of `CountlyViewTracking.h`
- Added `CountlyViewTracking:` interface with new view methods:
- `setGlobalViewSegmentation:`
- `updateGlobalViewSegmentation:`
- `startView:`
- `startView:segmentation`
- `startAutoStoppedView:`
- `startAutoStoppedView:segmentation`
- `stopViewWithName:`
- `stopViewWithName:segmentation`
- `stopViewWithID:`
- `stopViewWithID:segmentation`
- `pauseViewWithID:`
- `pauseViewWithID:`
- `stopAllViews:`
- Added `enableAllConsents` initial config property to give all consents at init time
- Added `giveAllConsents` method to give all consents
- Added `enableAutomaticViewTracking` config for automatic track views
- Added `automaticViewTrackingExclusionList` config for automatic view tracking exclusion list
- Added `globalViewSegmentation` config to add set global view segmentation.
- Added `enrollABOnRCDownload` config method to auto enroll users to AB tests when downloading RC values.
- Added `enableManualSessionControlHybridMode` config. With this mode 'updateSession' calls will automatically be handled by SDK for manual session handling.
- Deprecated `giveConsentForAllFeatures` method
- Deprecated `CLYAutoViewTracking` in config
- Deprecated existing view tracking methods and variables:
- `recordView:`
- `recordView:segmentation`
- `addExceptionForAutoViewTracking:`
- `removeExceptionForAutoViewTracking:`
- `isAutoViewTrackingActive`
- Fixed SPM public header issues of `CountlyRCData.h` and `CountlyRemoteConfig.h`
- !! Major breaking change !! Automatically downloaded remote config values will no longer be automatically enrolled in their AB tests.
- Added `CountlyRemoteConfig:` interface with new remote config methods:
- `getValue:`
- `getAllValues:`
- `registerDownloadCallback:`
- `removeDownloadCallback:`
- `downloadKeys:`
- `downloadSpecificKeys:completionHandler`
- `downloadOmittingKeys:completionHandler`
- `enrollIntoABTestsForKeys:`
- `exitABTestsForKeys:`
- `testingGetAllVariants:`
- `testingGetVariantsForKey:`
- `testingDownloadVariantInformation:variantName:completionHandler`
- `testingEnrollIntoVariant:`
- `clearAll:`
- Added `enableRemoteConfigAutomaticTriggers` config for automatic remote config download
- Added `enableRemoteConfigValueCaching` config for caching of remote config
- Added `remoteConfigRegisterGlobalCallback` config to register remote config global callbacks during init.
- Added `getRemoteConfigGlobalCallbacks` config to get a list of remote config global callbacks.
- Deprecated `enableRemoteConfig` initial config flag
- Deprecated `remoteConfigCompletionHandler` in config
- Deprecated existing remote config methods:
- `remoteConfigValueForKey:`
- `updateRemoteConfigWithCompletionHandler:`
- `updateRemoteConfigOnlyForKeys:completionHandler`
- `updateRemoteConfigExceptForKeys:completionHandler`
- Added back battery level reporting to crash reporting. Battery level is only reported if the battery was enabled before.
- Added new methods for changing the device id: `changeDeviceIDWithMerge:`, `changeDeviceIDWithoutMerge:`.
- Fixed a bug where the app would crash if `city`, `countryCode` or `IP` in location was null.
- Deprecated existing method to change the device id: `setNewDeviceID:`
- Deprecated `attributionID` initial config flag
- Deprecated `recordAttributionID` method