Skip to content

Releases: Countly/countly-sdk-ios

20.04

30 Apr 18:44
ae42d43
Compare
Choose a tag to compare
  • 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

21 Aug 14:54
efa41a3
Compare
Choose a tag to compare
  • 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 discarded isTestDevice 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 as resetStoredDeviceID
    • 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

19.02

13 Feb 12:40
d108cf5
Compare
Choose a tag to compare

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 with Push 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

30 Aug 19:18
d265a53
Compare
Choose a tag to compare
  • 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 as isAutoViewTrackingActive

  • 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 as 10.10

  • Other various improvements

    • Discarded separate UIWindow for presenting UIAlertControllers
    • Refactored buildUUID and executableName as properties
    • Refactored custom crash log array and date formatter
    • Updated HeaderDocs, inline notes, pragma marks

18.04

26 Apr 14:01
569ec5d
Compare
Choose a tag to compare
  • 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 as recordView:

  • 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

18 Jan 14:40
93504d2
Compare
Choose a tag to compare
  • 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 initial location config

  • Fixed reserved key for IP address query string

  • Fixed a CoreTelephony related crash due to an iOS bug

  • Replaced NSUserDefaults with NSCachesDirectory 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 as NSString
    • Updated time related types as NSTimeInterval
    • Updated HeaderDocs

17.09

22 Sep 08:39
Compare
Choose a tag to compare
  • Updated for Xcode 9 and iOS 11

  • Added symbolication support for crash reports

  • Added Automatic dSYM Uploading script

  • Added extension subspec for integrating Rich Push Notifications with CocoaPods

  • Added nullability specifiers for better Swift compatibility

  • Added 28 new system UIViewController subclass exception for Auto View Tracking

  • Added convenience method for recording action event for manually handled notifications

  • Added convenience method for recording handled exception with stack trace

  • Added precaution for invalid event keys

  • Added precaution for corrupt request strings

  • Made Zero-IDFA fix optional

  • Fixed a view tracking duration problem where duration being reported as timestamp

  • Replaced crashLog method with recordCrashLog and added deprecated warning

  • Changed dispatch queue type for opening external URLs

  • Other various improvements

    • Added Bengali translation for star rating dialog
    • Updated metric, event, view tracking and crash report reserved keys as constants
    • Deleted unnecessary gitattributes file
    • Deleted duplicate Zero-IDFA const
    • Rearranged file imports
    • Updated HeaderDocs
    • Cleaned whitespace

17.05

15 May 17:01
Compare
Choose a tag to compare
  • Added Rich Push Notifications support (attachments and custom action buttons)

  • Added manual session handling

  • Added URL escaping for custom device ID and other user defined properties

  • Added support for accidental extra slash in host

  • Added architecture, executable name and load address for crash reporting

  • Added IP optional parameter

  • Added SDK metadata to all request

  • Switched to SHA256 for parameter tampering protection

  • Discarded recordUserDetails method and combined it with save method

  • Improved AutoViewTracking active duration calculation

  • Improved Countly payload check in notification dictionary

  • Fixed inner event timestamp for 32 bit devices

  • Fixed token cleaning when user's permission changes

  • Fixed checksum calculation for zero-IDFA fix case

  • Fixed OS version metric for tvOS

  • Fixed double suspend method call when user kills the app using App Switcher

  • Fixed a compiler warning for macOS targets

  • Fixed AutoViewTracking for macOS targets

  • Fixed showing of multiple alerts in succession

  • Other various improvements

    • Refactored picture upload data preparation from request string using NSURLComponents
    • Refactored zero-IDFA check
    • Refactored additional info to be sent with begin session request
    • Refactored checksum appending
    • Refactored URLSession generation
    • Refactored opening external URLs on main thread
    • Refactored device model identifier method
    • Refactored sending crash report into connection manager
    • Replaced __OPTIMIZED__ flag with DEBUG flag for push notification test mode detection
    • Replaced boundary method with constant string
    • Replaced text based dismiss button with cross dismiss button for star-rating
    • Redefined request query string keys as constants
    • Redefined push notification reserved keys as constants
    • Redefined GET request max length as a constant
    • Redefined server input endpoint as a constant
    • Redefined push notification test mode values as enum
    • Standardized some integer types
    • Standardized target checking preprocessor macro usage
    • Deleted unnecessary init override in push manager
    • Deleted unnecessary updateSessionPeriod property in connection manager
    • Deleted unnecessary starRatingDismissButtonTitle config property
    • Deleted internal crash test methods
    • Added Czech and Latvian localization for star-rating dialog
    • Changed example host URL for rebranding compatibility
    • Updated handling of notification on iOS9 and older
    • Updated alert key handling in push notification payload
    • Updated HeaderDocs
    • Cleaned whitespace

! Warning for existing Countly iOS SDK users !
If you are already using a Countly iOS SDK version older than v16.12, please see before you update :

  • Push Notifications section in documentation as push notifications integration has changed and simplified.

If you are already using a Countly iOS SDK version older than v16.02, please see before you update :

  • Integration section in documentation as starting method of Countly has changed.
  • Notes section in documentation as device ID mechanism has changed.

16.12

28 Dec 19:45
Compare
Choose a tag to compare
  • Refactored push notifications
    • Made integration more easy
    • Added iOS10 push notifications handling
    • Added convenience method for asking push notifications permission covers all iOS versions
    • Renamed feature name from CLYMessaging to CLYPushNotifications
    • Added configuration option doNotShowAlertForNotifications to disable push triggered alerts
    • Discarded complicated UIUserNotificationCategory actions
    • Added configuration option sendPushTokenAlways to record push token always (for sending silent notification to users without notification permission)
    • Discarded App Store URL fetching with NSURLConnection
  • Discarded iOS7 support and deprecated method calls
  • Switched to runtime controlled internal logging instead of preprocessor flag
  • Added AutoViewTracking support for tvOS
  • Added view controller title and custom titleView support for AutoViewTracking
  • Improved AutoViewTracking performance and Swift compatibility
  • Refactored suspending for crash reporting
  • Switched to async file save for suspending
  • Added user login and logout convenience methods
  • Added configuration option to enable Apple Watch related features
  • Moved archiving of queued request into sync block to prevent a very rare occurring crash
  • Refactored unsent session duration
  • Added completion callback for automatically displayed star-rating dialog
  • Partially fixed but temporarily disabled APM feature until server completely supports it
  • Fixed too long exception name in crash reports on iOS10
  • Other various improvements
    • Refactored starting method
    • Switched to separate window based alert controller displaying for push notifications and star-rating dialogs
    • Renamed constant kCountlyStarRatingButtonSize to prevent compile time conflicts
    • Renamed server input endpoint variable for white label SDK renamer script compatibility
    • Updated star-rating reserved event key
    • Added internal log for successful initialization with SDK name and version
    • Fixed unused UIAlertViewAssociatedObjectKey warning for macOS
    • Removed old deviceID zero-IDFA fixer redundant request
    • Added internal logging for connection type retrieval exception
    • Added exception type info to crash reports
    • Fixed duplicate exception adding for AutoViewTracking
    • Prevented Countly internal view controllers from being tracked by AutoViewTracking
    • Prefixed all category methods to prevent possible conflicts
    • Changed timer's runloop mode
    • Updated timestamp type specifier (thanks to @scottlaw)
    • Changed SDK metadata sending to begin_session only
    • Replaced empty string checks with length checks
    • Cleared nullability specifiers
    • Updated HeaderDocs
    • Cleaned whitespace

! Warning for existing Countly iOS SDK users !
If you are already using a Countly iOS SDK version older than v16.12, please see before you update :

  • Push Notifications section in documentation as push notifications integration has changed and simplified.

If you are already using a Countly iOS SDK version older than v16.02, please see before you update :

  • Integration section in documentation as starting method of Countly has changed.
  • Notes section in documentation as device ID mechanism has changed.

16.06.4

14 Sep 12:47
Compare
Choose a tag to compare
  • Fixed iOS10 zero-IDFA problem
  • Fixed TARGET_OS_OSX warning for iOS10 SDK on Xcode 8.
  • Fixed ending of background tasks.
  • Added parameter tampering protection.
  • Added density metric.
  • Added alwaysUsePOST config property for using POST method for all requests regardless of the data size.
  • Added timezone.
  • Switched to millisecond timestamp.
  • Disabled server response dictionary check.
  • Other minor improvements like better internal logging, standardization, whitespacing, code cleaning, commenting, pragma marking and HeaderDocing

! Warning for existing Countly iOS SDK users !
If you are already using a Countly iOS SDK version older than v16.02, before you update :

  • Please see Integration section in documentation as starting method of Countly has been changed.
  • Please see Notes section in documentation as device ID mechanism has been changed.