Changelog History
Page 1
-
v20.11.2 Changes
- ➕ Added configurable internal log levels
- ➕ Added internal logs for approximate received and sent data size for requests
- ➕ Added numbers and boolean value types for custom user details methods
- ➕ Added
clearCrashLogs
method for clearing custom crash logs (breadcrumbs) - ➕ Added
navigationItem
's title as a view title fallback for view tracking - ➕ Added Mac Catalyst support
- ➕ Added selector precaution for
CountlyLoggerDelegate
method call - ➕ Added precautions for nil values in custom user details methods
- ⚡️ Updated request successful check to consider response object
- ⚡️ Updated default
eventSendThreshold
as 100 - 🛠 Fixed
UIApplicationState
usage for crashes occured on non-main thread - 🛠 Fixed clearing custom crash logs
- 🛠 Fixed missing frameworks for
ns
subspec inpodspec
file - 🛠 Fixed CountlyLoggerDelegate methods optionality
- 🛠 Fixed view tracking exception view checking
- 🛠 Fixed adding and removing view tracking exceptions on tvOS
🛠 Fixed cast warnings for an APM method internal log
Other various improvements
- Updated HeaderDocs, internal logs, inline notes and pragma marks
- Updated Countly project settings for Xcode 12.4
-
v20.11.1 Changes
December 05, 2020- ➕ Added
loggerDelegate
initial config property for receiving internal logs on production builds - 🛠 Fixed manual view tracking state clean up when view tracking consent is cancelled (thanks @felixmusmann)
- ⚡️ Updated
CountlyFeedbackWidget.h
as public header file in Xcode project file for Carthage - ➕ Added nullability specifiers for block parameters
- ➕ Added
-
v20.11.0 Changes
November 03, 2020➕ 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
-
v20.04.3 Changes
August 30, 2020⚠ 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:
methodDiscarded 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
-
v20.04.2 Changes
July 23, 20200️⃣ 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
-
v20.04.1 Changes
June 28, 2020➕ 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
behaviourPrevented recording empty string as
city
,ISOCountryCode
andIP
for location infoApplied
alwaysUsePOST
flag to feedback widget check requestsApplied
alwaysUsePOST
flag to remote config requestsOther 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
-
v20.04 Changes
April 30, 2020➕ 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
-
v19.08 Changes
August 21, 2019➕ 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
-
v19.02 Changes
February 13, 201919.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 changesDiscarded
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
-
v18.08 Changes
August 30, 2018➕ 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