Countly Product Analytics iOS SDK with macOS, watchOS and tvOS support.
Added attemptToSendStoredRequests
method to combine all events in event queue into a request and attempt to process stored requests
Added the iOS privacy manifest to the Countly SDK
Added a separate SDK Limits Config with the following options:
setMaxKeyLength
setMaxValueSize
setMaxBreadcrumbCount
setMaxSegmentationValues
setMaxStackTraceLineLength
setMaxStackTraceLinesPerThread
Fixed session duration inconsistency by incorporating checks for whether the session has started or not.
Deprecated maxKeyLength
initial config flag
Deprecated crashLogLimit
initial config flag
Deprecated maxValueLength
initial config flag
Deprecated maxSegmentationValues
initial config flag
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
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
testingDownloadExperimentInformation:
in remote config interfacetestingGetAllExperimentInfo:
in remote config interfaceCountlyViewTracking.h
CountlyViewTracking:
interface with new view methods:
setGlobalViewSegmentation:
updateGlobalViewSegmentation:
startView:
startView:segmentation
startAutoStoppedView:
startAutoStoppedView:segmentation
stopViewWithName:
stopViewWithName:segmentation
stopViewWithID:
stopViewWithID:segmentation
pauseViewWithID:
pauseViewWithID:
stopAllViews:
enableAllConsents
initial config property to give all consents at init timegiveAllConsents
method to give all consentsenableAutomaticViewTracking
config for automatic track viewsautomaticViewTrackingExclusionList
config for automatic view tracking exclusion listglobalViewSegmentation
config to add set global view segmentation.enrollABOnRCDownload
config method to auto enroll users to AB tests when downloading RC values.enableManualSessionControlHybridMode
config. With this mode 'updateSession' calls will automatically be handled by SDK for manual session handling.giveConsentForAllFeatures
methodCLYAutoViewTracking
in configrecordView:
recordView:segmentation
addExceptionForAutoViewTracking:
removeExceptionForAutoViewTracking:
isAutoViewTrackingActive
CountlyRCData.h
and CountlyRemoteConfig.h
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:
enableRemoteConfigAutomaticTriggers
config for automatic remote config downloadenableRemoteConfigValueCaching
config for caching of remote configremoteConfigRegisterGlobalCallback
config to register remote config global callbacks during init.getRemoteConfigGlobalCallbacks
config to get a list of remote config global callbacks.enableRemoteConfig
initial config flagremoteConfigCompletionHandler
in configremoteConfigValueForKey:
updateRemoteConfigWithCompletionHandler:
updateRemoteConfigOnlyForKeys:completionHandler
updateRemoteConfigExceptForKeys:completionHandler