.enabled when status is not set (align status with Android).
Dismiss preferences sub-screens before dismissing preferences screen.
Applied optimizations around the parsing of vendors information that should reduce the initialization time.
Hide notice event was not being triggered when user gave/denied consent from the notice.
Manage languages with specific script code from device
Handle vendor with no consent or LI in
Add new languages support, see https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-notice#supported-languages
Add missing methods:
Improved header's layout and made bulk action sticky on the Vendors view.
Handle setUserStatus with detailed purposes and vendors ids
Send dedicated CTV source type to the privacy center on sync request
Fix setUserConsentStatus result
Legitimate interest purposes were not staying as enabled when the user taps on
Disagree to all in the Preferences view on tvOS.
SDK was getting into a weird state when the IAB Config file was being removed by the OS.
Vendors Bulk Action didn't have the right state if there is vendors without consent
Added support for
Preferences screen title was ignoring text from preferences property.
SDK was getting into a weird state when cache directory was being removed by the OS.
Added support for tvOS.
Allow users to see and copy their information (Consent Token, User Id and SDK version)
Remove usage of
Added support for Denied Consent Duration (
Learn more button was in the wrong position in the notice view.
Some HTML tags were being ignored in the notice view.
Added support for purpose categories.
Added support to sync user choices across devices.
Added a global toggle in the purposes screen that allows to toggle all purposes at once.
getUserConsentStatusForVendorAndRequiredPurposes was returning
false when a vendor had only essential/required purposes.
Updated the behaviour of the
Disagree to all buttons in the preferences screen to align with other platforms.
Added support for the
denyAppliesToLI feature in notice and preferences screen.
Added support for specifying consent expiration.
Size of consent notice was wrong when displayed a second time.
There was an error in the API Events' sampling calculation.
Added support to include Publisher Country Code into Consent String.
UI event were being triggered before consent was saved.
Added ability to display "Disagree & Close" button on the notice (
notice.type = "optin").
Added ability to display "Disagree & Close" button as primary (
notice.denyAsPrimary = true).
Added ability to display "Continue without agreeing" link on the notice (
notice.denyAsLink = true).
Added some UI updates on the notices.
Added new method to set user status for all purposes and vendors
setUserStatus(purposesConsentStatus: Bool, purposesLIStatus: Bool, vendorsConsentStatus: Bool, vendorsLIStatus: Bool)
Indicate platform and SDK version when downloading notice configuration.
Added support for TCF v2.1.
Send TCF and Additional Consent information in API events.
In some cases consent was not being properly kept after an update of the GVL.
A translation in Croatian was not being displayed properly.
Added Device storage section in the vendor details view.
Updated some texts from vendors and purposes.
hexString:alpha: was being publicly exposed through an extension of the
UIColor class which was causing conflicts for some clients that had the same implementation.
Essential/Required purposes section in the detailed view for each vendor.
Download the GVL (Global Vendor List).
Optimizations around Publisher Restrictions.
Long purpose names were being cut-off.
Detailed additional data processing information
Remove TCFv1 storage keys when TCFv2 is enabled
Improved responsiveness when saving consent
Ensure that the legitimate interest status is correctly passed to Webviews in
Support for Publisher Restrictions.
Fixed ratio issue with logo on popup notice.
Updated initialization process to stop requesting location when
gdprAppliesGlobally is set to
App logo was not being displayed on the popup notice.
Detailed view of essential purposes contained toggles.
user.ignoreConsentBefore is set and if consent was collected from the user at a date earlier than user.ignoreConsentBefore, show the consent notice to recollect consent (irrespective of the consent status of the user).
Improved the UI of the popup notice to force users to see all the content of the view before selecting any action.
Close button was not very responsive on the purposes view.
Collect and send organization user ID in API events.
Vendors button was not responsive when text on popup notice was long enough to require scroll.
Disable TCF if it is disabled from the Console or if config file does not come from Didomi.
Updated IAB vendors list to 52.
Save button on purposes list view didn't have the right state when selections of Consent and Legitimate interest were opposite.
Added support for Google as a TCF vendor.
getUserConsentStatusForVendorAndRequiredPurposes was not returning the right status for
Show our vendors button to the notice which allows users to navigate directly to the Vendors list view.
Additional Data Processing section on Purposes list and Vendor Details views.
Ensure that consent is recollected when switching TCF version
Ensure switch state is accurate on the list of vendors
Better support for dark mode in purpose and vendor detailed views
IAB TCF label on TCF vendors in the list of vendors
Notice configuration by ID
Minor fixes regarding TCFv2.
Fixed broken custom text on the Vendors view.
showPreferences allows selecting which view should open (purposes or vendors)
IAB TCF v2 initial support
os_log for logging on iOS 10+.
Allow setting minimum log level via
Changed the way Purpose details are displayed from expanding a cell to displaying a new view.
Banner notice was displaying the rounded top border without transparency.
Added support for
XCFramework which means there is no need to use a different Pod (or binary) for newer versions of Xcode (since Xcode >= 11). Using this Pod/binary should be enough:
Updated Global Vendor List to version 192.
Improved the way in which optionals are handled.
setupUI method multiple times could have resulted in crashes.
UI constraints were breaking in some cases when views were displayed behind an interstitial ad.
Fixed a race condition when triggering API events which could have resulted in crashes.
UI improvements around the scroll bar and the scrolling animation on the Purposes screen when items are expanded/collapsed.
Added Xcode 11.3 support.
getTranslatedText method to get translated text from multiple sources https://developers.didomi.io/cmp/mobile-sdk/reference-ios#gettranslatedtext
Created new method
updateSelectedLanguage method that allows app developers to change the language of the Didomi SDK.
Added the ability to pass a language code when calling the
initialize method. This language code will be used to set the selected language.
save button in the purposes view was not being enabled property in some cases when the user had previously saved their preferences using an old list of purposes.
Added support for Xcode 11.2.
Updated the way API events are sampled to be based on user ID rather than on a random number.
ui.action type for events sent to the API for tracking the interactions of the user with the consent UI. Actions added:
IABConsent_SubjectToGDPR key was not being set properly in the user defaults.
UI issue with the purpose switches keeping a stale state when the user toggled the switch and expanded the purpose description right after.
Added support for Xcode 11 and bitcode.
Build was being created using the Debug configuration.
Some views were not displaying correctly on iOS 13 when dark mode was enabled.
In some cases getting the device location could cause a long delay.
Objective-C projects were not compiling correctly under certain configurations.
Objective-C projects were not compiling correctly when running on simulator on Xcode 10.2 and 10.3.
Improved internal implementation of the SDK to ease the creation of custom views.
Some mapping keys related to the getText and getTranslatedText methods were not matching the JSON properties of the preferences and notice properties.
Updated IAB vendors list to 155.
Added the ability to provide translatable texts through the
texts property in the
didomi_config.json file that can be used when creating a custom notice.
Added the ability to block/disable the
Agree to all and
Disable to all buttons by providing the
preferences.disableButtonsUntilScroll flag and setting it to
HideNoticeEvent was not triggered as required in some cases.
The Console generates custom purpose IDs within
[A-Za-z0-9-_] and SDKs only allowed
Added logs to indicate app developers when methods that require the Didomi SDK to be ready are called before that.
Update IAB vendors list (version 146)
Add the possibility to get the configuration remotely from the Didomi console
Didomi-xcode10.2 which supports Xcode 10.2.
Exposed missing properties of
Exposed the following methods:
Add Russian and Ukrainian languages
Preferences popup was being displayed on each visit when
notice.enable was set to
Updated master config file adding countries, translations, purposes and partners.
shouldConsentBeCollected method used to allow developers to check if consent should be collected or not.
Items on Purposes and Vendors list were not expanding when clicking right on the expand arrow.
SDK had to wait for the country code to get initialised which in some cases could result in the app having to wait for it before starting.
Purposes description was not being displayed on iPad running iOS 9.3.
Fixed strong reference cycles.
Customize buttons and links color https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-theme.
Details about purposes and vendors by expanding the list items.
Purposes are listed under each vendor item on the Vendors screen when they are expanded.
Customize logo on the Purposes view https://developers.didomi.io/cmp/mobile-sdk/getting-started#configure-your-app-name-and-logo.
Bypass notice and open Preferences pop-in directly https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-preferences-popup#display-when-consent-is-missing.
Customize purposes order and icons by providing purpose categories https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-preferences-popup#purposes.
Prevent the Preferences pop-in from being closed when consent is missing https://developers.didomi.io/cmp/mobile-sdk/consent-notice/customize-the-preferences-popup#prevent-the-popup-from-being-closed-when-consent-is-missing.
Remove "Number of Partners" on the Preferences view.
Update content translations.
The "Disagree to all" button did not use the same text and background color as the "Agree to all" button.
Inline style of HTML content was being overridden on the Preferences pop-in.
The "Save" button was present but disabled even though all purposes were set to unknown.
Purposes were not being properly updated when categories were being used.
The "c:" prefix was missing from custom vendors IDs. Important: this could be a breaking change since on the previous version the "c:" prefix was not required before each custom vendor ID.
Purposes were not sorted properly on the vendors and purposes views.
Supports the 24 European languages
Number of days before recollecting consent option in the configuration tag
Updates on helpers to ease testability
Added the ability to load a remote configuration file so app developers can customize how the SDK is displayed to users
Fixed potential issue around macros and the way they get replaced in the content
Fixed logic around
forceShowNotice methods so app does not crash after consent has been given
Fixed the way notices display long content by enabling scroll when required
Correctly load purposes and vendors statuses in the Preferences popup after consent has been given
Show the Save button when the Preferences popup is open after consent has been given
Map custom vendor to IAB ID
getUserConsentStatusForVendorAndRequiredPurposes in the public API
Ability to customize texts in the preferences popup
Minor UI fixes.
Updated default notice text.
Minor UI fixes.
Exposed additional methods.
Added support for Xcode 9
Added support for Objective-C