Skip to content

Releases: blueshift-labs/Blueshift-iOS-SDK

2.5.1

28 Aug 10:53
ebf2fcd
Compare
Choose a tag to compare

What's new

  • Added xcprivacy manifest file

2.5.0

05 Apr 13:08
35f6a14
Compare
Choose a tag to compare

What's new

  • Added support for automatically tracking app installs and app updates using app_install and app_update events
  • Added support for Cocoa pod static linkage
  • Added auto integration support using the method-swizzling. Initialize the SDK using the below method to auto-integrate.
BlueShift.initWithConfigurationAndAutoIntegrate(config)
  • Addressed deprecated OS APIs by adopting newer alternatives
  • Updated font awesome file download functionality to use URLSession

2.4.3

21 Feb 10:28
7651501
Compare
Choose a tag to compare

What's new?

  • Added execution key as part of track API calls for in-app messages & push notifications

2.4.2

27 Oct 14:52
fcfefa8
Compare
Choose a tag to compare

What's new?

  • Added support to open the push and in-app deep links in webview based browser within the app
  • Added support to send the device language and region as part of the event payload

2.4.1

17 Aug 12:47
b1f8c9e
Compare
Choose a tag to compare

What's New

  • Added support to auto-update the badge count when the 'auto-badge-update' type of push notification is received/ clicked/ dismissed. To enable auto update badge counts, add below code to your notification service extension's NotificationService class.
            if BlueShiftPushNotification.sharedInstance()?.isBlueShiftPushNotification(request) == true, let badgeCount = BlueShiftPushNotification.sharedInstance()?.getUpdatedBadgeNumber(for: request) {
                bestAttemptContent?.badge = badgeCount;
            }
  • Provided a helper method to auto-update the badge count. The method can be called on any of app's lifecycle methods to update the badge count.
BlueShift.sharedInstance()?.refreshApplicationBadge(completionHandler: { 
  });

  • Added helper methods for cross-platform plugin use cases.
  • Fixed the issue with minimum height for the default mobile inbox tableview cell and xib.
  • Updated method to delete in-app messages using message id instead of object id.
  • Started sending adapter UUID in the tracking events for push and in-app notifications.
  • Added fix for background image-based modal to center align the body text.

2.4.0

16 May 12:27
Compare
Choose a tag to compare

What's New

2.3.1

06 Apr 15:01
1f7979e
Compare
Choose a tag to compare

This is a hot-fix release.

What's new?

  • Fixed Xcode 14.3 build issues.
  • The SDK will not send the network carrier info as part of the event attributes for iOS 16 + devices. The network carrier class CTCarrier is deprecated with no replacement.

2.3.0

11 Nov 14:27
e1a00c3
Compare
Choose a tag to compare

What's new?

  • Optimised the push notification handling and removed the deprecated code from it.
  • Added re-initialization capability to the SDK
  • SDK will now send the already cached events to the Blueshift server if the SDK Tracking is disabled
  • Added check to the isBlueshiftUniversalLinks method for the shortened Blueshift links sent via SMS

2.2.6

03 Aug 14:22
ea058c7
Compare
Choose a tag to compare

What's new?

  • Added support for the special deep link - blueshift://req-push-permission for in-app notifications to display push permission dialog on in-app action. If a user clicks on an in-app notification button with this special deep link then,
    • If push permission is not asked to the user, then SDK will show a push permission dialog.
    • If user push permission is already enabled, then nothing will be displayed after clicking on the in-app notification button.
    • If push permission is denied or push notifications are disabled, then the SDK will show a popup asking to go to the app settings to enable push notifications. The text of this popup is customizable and can be configured using Localizable strings, refer to this document to know more.
  • Provision to change the core data files location using config.sdkCoreDataFilesLocation flag. The default location for SDK files will be the Document directory. If you don't want to use the Document directory, you can use the Library directory and SDK will take care of moving existing core data files(if present) to the Library directory.
config.sdkCoreDataFilesLocation = .libraryDirectory
  • Added fix to not fire delivered event for expired in-app notifications, if received any via in-app API.
  • Added support for the Provisional Push notification authorization.
  • Optimised the carrier name collection logic by caching the carrier name to avoid fetching it every time.
  • Added default calendar and locale setting to create the timestamp.
  • Added notification presentation options based on the iOS versions.
  • Improved logging.

2.2.5

14 Jun 11:26
a0ecb1b
Compare
Choose a tag to compare

What's new?

  • Added helper method isBlueshiftCustomActionsPushNotification to check if the push notification is of type Blueshift custom action butttons.
BlueShift.sharedInstance()?.isBlueshiftPushCustomActionResponse(response)
  • Added helper method parseCustomActionPushNotification to get associated deep link URL and button name from the Blueshift custom action push notification payload.
let customActions:[AnyHashable : Any]? = BlueShift.sharedInstance()?.appDelegate?.parseCustomActionPushNotification(response.notification.request.content.userInfo, forActionIdentifier: response.actionIdentifier)
let deepLinkURL = customActions?["clk_url"] as? String
let buttonName = customActions?["clk_elmt"] as? String
  • Added method to reset the UUID type of device id. In order to make use of this function, make sure you have set the device id source in SDK config as -config.blueshiftDeviceIdSource = .UUID. It will not work for device id type IDFV or IDFV:BundleId.
    Calling this method will reset the existing UUID device id, and SDK will generate a new device id. SDK will also send an identify event to update the device to Blueshift.
BlueShiftDeviceData.current().resetDeviceUUID()
  • Removed code and files related to firing the delivered event for the push notification from the extension SDK, as Blueshift now provides the push delivery stats based on the APNS's response. Setting the API key to the extension SDK is not required anymore. Know more
  • Error object from the fetchInAppNotification(fromAPI:) API marked as optional.
  • Optimised the animation for slide-in banner in-app notification.
  • Fixed image frame for Banner image modal in-app notification.
  • Optimised in-app notification display for the sceneDelegate and non-sceneDelegate apps.
  • Now SDK will fire the app_open event when the user taps on a Blueshift push notification, SDK will not fire app_open event when the user taps on a non-Blueshift push notification.
  • Fixed issue of event name getting overridden by the additional param attributes. Now, the event name has higher priority and it can not be altered from the additional param attributes.
  • Deprecated the below SDK methods, and now SDK automatically detects when the app enters the background state and becomes active. There is no need of calling the below methods during SDK integration.
    • appDidBecomeActive
    • appDidEnterBackground
    • sceneWillEnterForeground
    • sceneDidEnterBackground
  • Deprecated SDK config flag isSceneDelegateConfiguration, SDK now checks for scene delegate configuration dynamically if needed.
  • Deprecated SDK config flag enableIDFACollection as SDK does not collect the IDFA on its own, and the app needs to set this value to SDK.
  • Deprecated SDK config flag enableLocationAccess as SDK does not collect the location data on its own, and the app needs to set this value to SDK.
  • Deprecated SDK method autoIntegration.
  • Removed unused constants.
  • Added more SDK logs.