Last modified November 22, 2014 by Gordon Glauser

iOS SDK Release Notes

Swrve has an open source SDK repository. There are three options for downloading the latest public Swrve iOS SDK:

  • If using CocoaPods, add pod 'SwrveSDK'  to your Podfile. The Swrve SDK is automatically downloaded and added to your project.
  • Download the SDK from the GitHub public repository.
  • Download a .zip file of the latest iOS SDK.

For upgrade instructions, see iOS SDK Upgrade Guide. To view the feature support matrix, see SDK Feature Support Matrix.

Release 5.1.1

Release Date: January 25, 2018


  • Fixed an issue in Conversations where margins were cutting of some of the text when using a custom font.

Release 5.1

Release Date: December 12, 2017



  • Fixed a bug in version 4.11.4 where the optional functions in SwrvePushResponseDelegate were causing crashes if not both implemented.

Release 5.0

Release Date: November 16, 2017


  • All interaction with the Swrve SDK, including initialization, is via a new class called SwrveSDK. For more information, see the iOS SDK 5.0 Upgrade Guide.
  • Includes refactors to safely persist data per User ID.
  • With the exception of push notifications, we have changed the process to exclude optional iOS frameworks from your app. Now, rather than adding a Preprocessor Macro to exclude the framework, you must add them to include the framework in your Swrve integration. For more information, see How Do I Exclude Optional iOS Frameworks?
  • Improved Conversations compatibility for the iPhone X.


  • It is no longer possible to use internal Swrve.* events to trigger in-app messages or conversations.

Release 4.11.4

Release Date: October 6, 2017


  • Fixed an issue affecting devices running iOS 10 or later where the UNNotificationCenter delegate was not set when the app starts.
  • Fixed an issue affecting devices running iOS 10 or later where a push notification permission status of “unknown” was reported as “denied”.
  • Fixed a crash related to push permission caching.

Release 4.11.3

Release Date: September 20, 2017



  • Fixed an issue affecting devices running iOS 9 or earlier where push notification engagement events were not processed correctly if the app had remote background notifications enabled.
  • Fixed an issue to reset Conversation multiple choice inputs after they are displayed.
  • Fixed a compilation issue with Xcode 9 header.
  • Fixed a documentation issue that was causing compilation failures with CocoaPods.

Release 4.11.2

Release Date: August 29, 2017


  • Fixed an issue introduced in 4.11.1 where Conversations with permission request buttons were not displayed.

Release 4.11.1

Release Date: August 23, 2017


  • Improved thread safety in the Swrve Permissions manager, specifically around writing to and reading from the cache.


  • Fixed an issue where the button text in a QA rich push notification wasn’t reflecting edits made in the campaign workflow.

Release 4.11

Release Date: August 16, 2017


  • Added support for rich notifications that you can create and send directly in the Swrve dashboard. For more information, see About Rich Push Notifications.
  • Expanded influenced logic to all push notification metrics reporting using an iOS service extension (was previously only included in silent notifications). For more information, see Managing Push Notifications.
  • The SDK now includes a new API that enables you to extract resource A/B test campaign information. For more information, see How Do I Get Resource A/B Test Information from the Swrve SDK?
  • Made the following improvements to overall SDK performance:
    • Fixed potential memory leaks associated with Conversations font styles.
    • Ensured all UIApplication calls are called from main thread as recommended by Apple.
    • Fixed an issue where external deeplinks were slow to open.
    • The SDK now uses the iOS 10 UserNotifications.framework for registration and push notification responses.


  • Fixed an issue where height and width parameters for Conversations got mixed up.
  • Fixed an issue where joined A/B test parameters were not populating due to an invalid timestamp being sent to the backend.
  • Fixed an issue for Conversations targeted at users who have not enabled push permission.
  • Fixed a threading issue discovered when writing the event buffer to JSON.

Release 4.10.2

Release Date: August 1, 2017


  • Added new user property Swrve.permission.ios.push_bg_refresh to track permission of background app refresh setting.


  • Fixed a bug around existing user property Swrve.permission.ios.push_notifications that broke with the iOS SDK 4.10 silent push notification release. On iOS 10+, this value is now accurately taken from UNNotificationsettings. However, this value cannot be accurately read on iOS 8 or 9, so UIUsernotificationsettings is used instead.

Release 4.10.1

Release Date: July 4, 2017


  • Fixed an issue with userUpdateDate on iOS 8.4 where the locale caused an incorrect format if locale en_US_POSIX was not set.

Release 4.10

Release Date: May 24, 2017


  • Added support for using silent push notifications to send background app content updates.

Release 4.9.2

Release Date: April 25, 2017


  • Fixed an issue where the SDK was sending session information when started from a background mode (locations, silent push).

Release 4.9.1

Release Date: April 11, 2017


  • Fixed an issue in the SwrveConfig where push notification permission status showed as DENIED even though a push token was successfully received and registered.
  • Deprecated the SWRVE_NO_PUSH flag and fixed an issue where app lifecycle methods were ignored if the SWRVE_NO_PUSH build flag was used to exclude push privileges.

Release 4.9

Release Date: March 21, 2017


  • The SDK now supports a minimum OS version of iOS 8. However, it works on apps running iOS 6 or 7 as a dummy implementation only.
  • Improvements to thread safety.


  • Fixed an issue with the notification permission status check.
  • Conversations:
    • Fixed an issue with star rating layouts.
    • Fixed an issue to ensure Conversations with unknown content are not displayed.
    • Fixed an issue with videos not playing properly.
    • Fixed an issue with images not displaying properly when switching device orientation from portrait to landscape.

Release 4.8

Release Date: January 26, 2017


  • Conversations now include support for uploading custom or brand-specific fonts and using advanced text styling and spacing options.
  • Added CoreText framework dependency.


  • Fixed alignment of Conversations star rating icons.

Release 4.7.1

Release Date: December 13, 2016


  • Improved the Swrve SDK support for iOS apps building with a high Data Protection entitlement. If you plan to enable the Data Protection capability in your app, Swrve recommends upgrading to SDK 4.7.1 as Location-Based campaigns will not operate correctly without it.
  • Improved offline event handling support.


  • Fixed issue for recording location impression events when device is locked or offline.

Release 4.7

Release Date: November 24, 2016


  • To support date-typed user property targeting, the SDK now enables you to send NSDate objects as part of your user updates using the following function: userUpdate:(NSString *)name withDate:(NSDate *) date For more information, see the iOS Integration Guide.
  • It is now possible to send your own push engagement event to Swrve using the following function: sendPushEngagedEvent:(NSString*)pushId
  • The number of warnings in Xcode from older versions of the iOS SDK have been reduced.
  • The maxConcurrentDownloads SwrveConfig property has been deprecated.


  • Fixed an issue where user updates were being sent with the same seqnum.
  • Fixed an issue where the SDK was not sending the correct value for install_date.
  • Fixed an issue that caused the SDK to crash if a non-NSString payload attribute was used to trigger a campaign.
  • Fixed an issue where the callback of iOS9+ HTTP requests were not executed in the main thread.

Release 4.6.2

Release Date: November 3, 2016


  • Fixed an issue where Conversations were not fully checking if all image assets were downloaded before showing the Conversation.

Release 4.6.1

Release Date: October 13, 2016


  • To prevent rejection by the App Store, added a feature flag to remove the Photo Camera Access API for users who don’t use photo camera access. For more information, see How Do I Exclude Optional iOS Frameworks?

Release 4.6

Release Date: August 31, 2016


  • The SDK now uses HTTPS by default for all endpoints.
  • The Samples directory now contains a Swift example of the Message Center.


  • .podspec‘s now use exact (instead of loose) dependencies.
  • Fixed in-app message rotation bug on iOS 7.
  • Conversation resource images have been reduced in size, @3x versions have been added and they are now stored in an .xcasset directory.

Release 4.5.2

Release Date: August 18, 2016


  • Moved appropriate frameworks out of Required and into Optional to prevent iOS 7 and iOS 8 compatibility issues when using Swift. For more information, see Integrating the iOS SDK Using Swift.


  • Fixed an issue with CocoaPods frameworks where the UIImages were pointing to the main bundle and not ConversationSDK.

Release 4.5.1

Release Date: July 27, 2016


  • Fixed an issue where the campaign state and rules were deleted by the OS in instances of a full cache. State and other persistent data is now stored in the Application Support directory.
  • Fixed a sequencing issue with user update events.

Release 4.5

Release Date: July 5, 2016


  • Conversations now rotate when changing device orientation. When a Conversation is displayed with enough space (such as landscape), a configurable lightbox and borders are used. For more information, see Intro to Conversations.
  • As with in-app message campaigns, it is now possible to set the priority of Conversations campaigns over others with the same triggers. A lower number means higher priority over other campaigns. For more information, see Creating Conversations.

Release 4.4.2

Release Date: June 27, 2016


  • Fixed an issue that could cause the app install date to be deleted if the cache folder was low on space.

Release 4.4.1

Release Date: June 16, 2016


  • Fixed a bug that caused Conversations not to be displayed for customers using the !use_frameworks definition in their CocoaPods definition file with iOS SDK versions 4.3, 4.3.1 and 4.4.

Release 4.4

Release Date: May 25, 2016


  • Added support for using event payload conditions to trigger in-app messages and Conversations campaigns. For more information, see Creating In-App Messages and Creating Conversations.
  • Added a feature flag that strips out the Push API for users who don’t want push notifications. You can now disable push notifications completely by adding SWRVE_NO_PUSH to your compiler flags. For more information, see How Do I Disable Apple Push Notification Service?
  • Improved the SDK’s handling of events when a user enables or disables push notification permissions via the device’s App Settings, as the SDK previously only reported on the initial push permission request dialog.

Release 4.3.1

Release Date: May 9, 2016


  • The Locations SDK now includes a dependancy on a compatible version of the Swrve iOS SDK; that is, version 4.3.1 or higher. If you try to use a pre-4.3.1 SDK with the latest Locations SDK (v1.1), the Locations SDK throws a runtime exception. For more information on integrating the Locations SDK, see Location-Based Campaigns SDK Integration.

Release 4.3

Release Date: April 7, 2016


  • Added the Star Rating survey template to conversations. For more information, see About Conversation Templates.
  • Custom button style options in Conversations now include rounded corners. For more information, see Intro to Conversations.
  • Internal refactoring for upcoming conversation improvements.
  • Removed legacy localization files that resulted in unwanted additional language support appearing on iTunes Connect.
  • Added sample code to the Demo app that shows how Message Center is integrated.


  • Fixed bug around the resource listener. Thanks to skeid21 for contributing!

Release 4.2

Release Date: February 11, 2016


  • New Message Center API enables you to list conversations and/or in-app messages in the app’s inbox. For more information, see the Swrve Message Center API Guide.
  • It is now possible to exclude certain frameworks that aren’t relevant to your app. For more information, see How Do I Exclude Optional iOS Frameworks?
  • The SDK now allows asynchronous push notification processing. As a result, the appInBackground method has been deprecated. Thanks to bejo for contributing!
  • The SDK is ready to work with the future release of Location-based Campaigns.


  • Improvements to the campaign state of in-app messages so it doesn’t get overwritten when campaigns are refreshed from the server.
  • Fixed storyboard loading issue when using as a framework. Thanks to danhollywells for contributing!
  • Fixed an issue that caused a key/value mixup for the “id” on the message_returned event.
  • Fixed how the SDK handles lastProcessedPushId when a push notification is received. Thanks to VinceBurn for contributing!

Previous Releases Summary

  • December 3, 2015 – v4.1.1 – Bug fixes.
  • November 30, 2015 – v4.1 – Restricted use of Swrve. namespace for custom events.
  • October 9, 2015 – v4.0.5 – Bug fixes.
  • October 1, 2015 – v4.0.4 – Bug fixes.
  • September 17, 2015 – v4.0.3 – Increased HTTP default timeout and added support for a new UIWindow when displaying Conversations.
  • August 21, 2015 – v4.0.2 – Bug fixes.
  • August 18, 2015 – v4.0.1 – Added support for iOS 9 and logging device region.
  • July 7, 2015 – v4.0 – Added support for Conversations and requesting device permissions.
  • April 8, 2015 – v3.4 – Changed default background for in-app messages from solid black to transparent.
  • January 21, 2015 – v3.3.1 – Bug fixes.
  • November 11, 2014 – v3.3 – Added support for iOS 8 interactive push notifications and to log carrier information by default.
  • October 21, 2014 – v3.2 – Added support for CocoaPods and random generation of UUID if no custom user ID is provided at initialization.
  • September 12, 2014 – v3.1.3 – Production support for iOS 8.
  • August 29, 2014 – v3.1.2 Beta – Beta support for testing devices running iOS 8 Beta 5.
  • August 8, 2014 – v3.1.1 Beta – Beta support for iOS 8 push registration method.
  • July 30, 2014 – v3.1 – Added support for triggering in-app messages at session start and bug fixes.
  • May 30, 2014 – v3.0.2 – Bug fixes.
  • May 27, 2014 – v3.0.1 – Bug fixes.
  • May 15, 2014 – v3.0 – Real-time targeting enhancements.
  • April 18, 2014 – v2.2.1 – Bug fixes.
  • April 1, 2014 – v2.2 – Updates to iOS receipt validation process and bug fixes.
  • March 4, 2014 – v2.1 – Improved processing of campaign, user resources and saved events.
  • v2.0.1 – Bug fixes.
  • v2.0 – Various updates to event handling and user properties.
  • v1.13 – Push notification enhancements and bug fixes.
  • November 12, 2013 – v1.12 – Added support for extended IAP event and bug fixes.
  • October 18, 2013 – v1.11.1 – Bug fixes.
  • October 16, 2013 – v1.11 – Added support for in-app messaging per campaign dismissal rules and bug fixes.
  • September 18, 2013 – v1.10.1 – Bug fixes.
  • September 17, 2013 – v1.10 – Added support for in-app messaging QA logging.
  • August 20, 2013 – v1.9 – Added support for in-app messaging QA users.
  • July 26, 2013 – v 1.8 – Added support for server side IAP validation.
  • July 2nd, 2013 – v 1.7 – Added support for app store filtering in in-app messaging.
  • May 8, 2013 – v1.6 – Removed UDID system calls from libReceiptVerification.multi.a library. You must use this library if submitting to Apple after May 1, 2013. This library is compatible with the v1.4 SDK.
  • April 15, 2013 – v1.5 – Major update – in-app messaging added. See the iOS Integration Guide if you are upgrading.
  • March 19, 2013 – v1.4 – Added client-side IAP validation and third-party ID tracking.
  • November 8, 2012 – Fix bug where user_resources call returned incorrect results when called with no network connection.
  • November 2, 2012 – Add user_resources call (in parallel to& user_resources_diff).
  • August 24, 2012 – Fixing a small timestamp bug effecting session length and playtime.
  • April 17, 2012 – Add support for joined field to A/B Test call in iOS SDK.
  • December 1, 2011 – Adding currency_given API support.
  • September 30, 2011 – First public release.