Releases: Countly/countly-sdk-ios
20.11.0
-
Added Surveys and NPS feedback widgets
-
Added Swift Package Manager support
-
Added
replaceAllAppKeysInQueueWithCurrentAppKey
method to replace all app keys in queue with the current app key -
Added
removeDifferentAppKeysFromQueue
method to remove all different app keys from the queue -
Added
deviceIDType
method to be able to check device ID type -
Added precaution and warning for
nil
crash report case -
Added
consents
initial config property -
Added device type metric
-
Updated dismiss button design
-
Fixed web view autoresizing mask for legacy feedback widgets
-
Fixed a missing
CoreLocation
framework import -
Fixed unnecessary recreation of
NSURLSession
instances -
Fixed dismiss button layout
-
Changed interface orientation change event consent from
Events
toUserDetails
-
Changed remote config consent from
Any
toRemoteConfig
-
Marked
pushTestMode
initial config property as_Nullable
-
Other various improvements
- Refactored picture upload data extraction
- Suppressed an internal log for interface orientation change
- Updated some constant key declarations for common use
- Updated HeaderDocs, internal logs, inline notes and pragma marks
20.04.3
Warning
Although this is a minor release (due to current version numbering conventions in Countly), it has serious changes regarding Location and Attribution features. Please make sure you read HeaderDocs for deprecated methods and properties.
-
Deprecated
recordLocation:
,recordCity:andISOCountryCode:
,recordIP:
methods -
Added new combined
recordLocation:city:ISOCountryCode:IP:
method for recording location related info -
Deprecated
enableAttribution
initial config flag -
Added
attributionID
initial config property -
Added
recordAttributionID:
method -
Discarded IDFA usage on optional attribution feature
-
Discarded
COUNTLY_EXCLUDE_IDFA
preprocessor flag -
Updated
PLCrashReporter
subspec dependency version specifier as~> 1
-
Other various improvements
- Updated HeaderDocs, internal logs, inline notes and pragma marks
- Updated some initial config property modifiers as
copy
- Treated empty string
city
,ISOCountryCode
andIP
values asnil
- Added warnings for the cases where
city
andISOCountryCode
code are not set as a pair
20.04.2
-
Implemented overriding default metrics and adding custom ones
-
Fixed advertising tracking enabled check
-
Other various improvements
- Improved internal logs for pinned certificate check
- Refactored extra slash check using
hasSuffix:
method - Renamed some app life cycle observing methods for clarity
20.04.1
-
Added Application Performance Monitoring (Phase 1)
- Manual network traces
- Manual custom traces
- Semi-automatic app start time trace
- Automatic app foreground time trace
- Automatic app background time trace
- Consent handling for Application Performance Monitoring
-
Added
COUNTLY_EXCLUDE_PUSHNOTIFICATIONS
flag to disable push notifications altogether in order to avoid App Store Connect warnings (thanks @grundleborg) -
Fixed an incorrect internal logging on SDK start
-
Fixed location consent order to avoid some legacy Countly Server issue with location info being unavailable even after giving consent
-
Improved
UIApplicationWillTerminateNotification
behaviour -
Prevented recording empty string as
city
,ISOCountryCode
andIP
for location info -
Applied
alwaysUsePOST
flag to feedback widget check requests -
Applied
alwaysUsePOST
flag to remote config requests -
Other various improvements
- Deleted some unnecessary imports
- Updated HeaderDocs, internal logs, inline notes and pragma marks
- Added missing frameworks to CocoaPods podspec
- Added ability to override SDK name and version for bridge SDKs
20.04
-
Added crash reporting feature for tvOS
-
Added crash reporting feature for macOS
-
Added crash reporting feature for watchOS
-
Added optional crash reporting dependency PLCrashReporter for iOS
-
Added UI orientation tracking
-
Added crash filtering with regex
-
Updated dSYM uploader script for accepting custom dSYM paths
-
Updated enableAppleWatch flag default value for independent watchOS apps
-
Fixed push notification consent method for macOS targets
-
Fixed not appearing rich push notification buttons for some cases
-
Discarded OpenGL ES version info in crash reports
-
Other various improvements
- Deleted an unnecessary UIKit import
- Added precaution for possible nil lines in backtrace
- Added precaution for possible nil OS name value
- Replaced scheduledTimerWithTimeInterval call with timerWithTimeInterval (thanks @mt-rpranata)
- Updated architerture method for crash reports
- Updated CocoaPods podspec for core subspec approach
- Updated feature, consent and push test mode specifiers as NSString typedefs
- Updated HeaderDocs, internal logs, inline notes and pragma marks
19.08
-
Added temporary device ID mode
-
Added support for Carthage
-
Added custom URL session configuration support
-
Added custom segmentation support on view tracking
-
Added ability to change app key on the run
-
Added ability to flush queues
-
Added
pushTestMode
property and discardedisTestDevice
property -
Fixed
WCSessionDelegate
interception -
Fixed title and message check in push notification payloads
-
Fixed binary image name extraction for crash reports
-
Fixed missing delegate forwarding for
userNotificationCenter:openSettingsForNotification:
method -
Fixed in-app alerts on iOS10+ devices when a silent notification with alert key arrives
-
Discarded device ID persistency on Keychain
-
Discarded OpenUDID device ID option
-
Discarded IDFA device ID option
-
Discarded zero IDFA fix
-
Updated default device ID on tvOS as
identifierForVendor
-
Other various improvements
- Renamed
forceDeviceIDInitialization
flag asresetStoredDeviceID
- Added lightweight generics for segmentation parameters
- Added dSYM upload script to preserved paths in Podspec
- Updated dSYM upload script to support paths with spaces
- Changed request cache policy to
NSURLRequestReloadIgnoringLocalCacheData
- Added battery level for watchOS 4.0+
- Added JSON validity check before converting objects
- Deleted unused
kCountlyCRKeyLoadAddress
constant - Improved internal logging in binary images processing for crash reports
- Added persistency for generated
NSUUID
- Added precaution to prevent invalid requests from being added to queue
- Discarded null check on request queue
- Discarded all APM related files
- Added length check for view tracking view name
- Added length check for view tracking exceptions
- Updated HeaderDocs, internal logs, inline notes and pragma marks
- Renamed
19.02
19.02
-
Added push notification support for macOS
-
Added provisional push notification permission support for iOS12
-
Added remote config feature
-
Added
recordPushNotificationToken
method to be used after device ID changes -
Added
clearPushNotificationToken
method to be used after device ID changes -
Discarded
Push Open
event and replaced it withPush Action
event -
Fixed push notification token not being sent on some iOS12 devices
-
Fixed device ID change request delaying issue by discarding delay altogether
-
Fixed internal view controller presenting failure when root view controller is not ready yet
-
Fixed
openURL
freeze caused by iOS -
Fixed wrong
kCountlyQSKeyLocationIP
key in location info requests -
Fixed missing app key in feedback widget requests
-
Fixed feedback widget dismiss button position
-
Other various improvements
- Discarded separate UIWindow usage for presenting feedback widgets
- Added checksum to feedback widget requests
- Improved internal logging for request queue
18.08
-
Added feedback widgets support
-
Added limit for number of custom crash logs (100 logs)
-
Added limit for each custom crash log length (1000 chars)
-
Added support for cancelling timed events
-
Added support for recording fatal exceptions manually
-
Added
userInfo
to crash report custom property -
Added delay before sending change device ID request (server requirement)
-
Renamed
isAutoViewTrackingEnabled
asisAutoViewTrackingActive
-
Fixed Xcode warnings for
askForNotificationPermission
method -
Fixed
UIAlertController
leak in push notification manager -
Fixed
crashSegmentation
availability for manually recorded crashes -
Fixed
openURL:
call thread as main thread -
Updated minimum supported
macOS
version as10.10
-
Other various improvements
- Discarded separate
UIWindow
for presentingUIAlertControllers
- Refactored
buildUUID
andexecutableName
as properties - Refactored custom crash log array and date formatter
- Updated HeaderDocs, inline notes, pragma marks
- Discarded separate
18.04
-
Added consent management for GDPR compliance
-
Exposed device ID to be used for data export and/or removal requests
-
Added precautions for SDK start state to prevent re-starting and early method calls
-
Added mutability protection for core functions, configuration properties, events and user details
-
Added
COUNTLY_EXCLUDE_IDFA
pre-processor flag to exclude IDFA references -
Added API availability checks and warnings for Apple Watch and Push Notifications
-
Renamed
reportView:
method asrecordView:
-
Fixed early ending of
UIBackgroundTask
-
Fixed getting file path form local storage URL (thanks @dsmo)
-
Fixed not respecting
doNotShowAlertForNotifications
flag on iOS10+ devices -
Fixed not starting requests queue when
manualSessionHandling
is enabled -
Fixed
block implicitly retains self
warning in Star Rating -
Fixed local variable shadowing warnings
-
Fixed Japanese language code for Star Rating dialog
-
Other various improvements
- Refactored all location info into Location Manager
- Refactored
checkForAutoAsk
in Star Rating - Refactored event recording for consents compatibility
- Refactored Apple Watch matching
- Refactored auto view tracking
- Added top view controller finding method
- Replaced asserts with exceptions
- Deleted unneccessary method declarations in Push Notifications
- Deleted unnecessary reference for
WCSession.defaultSession.delegate
- Deleted unnecessary
TARGET_OS_OSX
definition - Standardized
nil
checks - Renamed and reordered some query string constants
- Updated HeaderDocs, inline notes, pragma marks
- Performed whitespace cleaning
18.01
-
Added
attribution
config -
Added recording city and country for GeoLocation
-
Added recording explicit IP address for GeoLocation
-
Added disabling GeoLocation
-
Updated
recordLocation
method to override initiallocation
config -
Fixed reserved key for IP address query string
-
Fixed a
CoreTelephony
related crash due to an iOS bug -
Replaced
NSUserDefaults
withNSCachesDirectory
on tvOS for persistency -
Improved auto dSYM uploader script
-
Improved performance on stored request limit execution
-
Other various improvements
- Fixed a placeholder type specifier for
NSNumber
- Deleted unnecessary
CLYMessaging
definition - Deleted unnecessary strong ownership qualifiers
- Added Hindu translation for star rating dialog
- Added change log file
- Updated user details and star rating reserved keys as constants
- Updated
OpenGLESVersion
method return type asNSString
- Updated time related types as
NSTimeInterval
- Updated HeaderDocs
- Fixed a placeholder type specifier for