iOS SDK release notes

Minimum version: Supports iOS 8.0 and above (If you need to support iOS 6 or 7, we have a separate static framework available via CocoaPods and standalone download).

SDK file size: ~2.3mb

New releases and release notes will be posted on GitHub.


November 21, 2017

View release notes on Github.


October 17, 2017

View release notes on GitHub.


July 19, 2017

View release notes on GitHub.


May 15, 2017

View release notes on GitHub.


May 2, 2017

View release notes on GitHub.


March 28, 2017

  • Support for iOS 10.3
  • Adds support to change the app icon via dashboard.
  • Adds support for triggering in-app review prompts via dashboard.


March 28, 2017

  • Fixes a bug where push tokens might not be captured on start.
  • Renames Newsfeed to Inbox.
  • Bugfixes and enhancements.


March 6, 2017

  • Fixes a bug which caused no error or warning logs to be shown.


March 3, 2017

  • Reduces binary size for dynamic framework.
  • Adds Swift support for IDFA macro.
  • Adds improved In-App Messages.
  • Adds support for iOS10 UNNotificationCenter.
  • Bugfixes and enhancements.


January 30, 2017

  • Adds method to specify device geolocation.
  • Bugfixes and enhancements.


December 19, 2016

  • Adds support for rich push detection.
  • Fixes a crash on presenting image picker of photo library with syncResourcesAsync on iOS 10.
  • Fixes an issue with push notifications on iOS6.
  • Additional bug fixes and code improvements.


November 21, 2016

  • Adds control group tracking for in-app messages.
  • Adds access to raw message meta data.
  • Fixes an issue where the LeanplumLocation framework would crash the app on iOS <=8.3.
  • Fixes a bug where in-app messages are being triggered incorrectly when tracking events with parameters.
  • Adds support for setAppVersion.
  • Several internal maintenance and bug fixes.

October 04, 2016 - Fixes an issue where an undefined UserNotificationCategories identifier causes a nullpointer exception.

September 12, 2016 - Removed unnecessary debug logging. Fixed a public deprecation warning.


September 7, 2016

  • iOS 10 compatibility enhancements.
  • The SDK is now a dynamic framework and requires iOS 8 or above. If you need to support iOS 6 or 7, we have a separate static framework available via CocoaPods and standalone download.
  • The Leanplum iOS location framework automatically collects the user’s GPS location to enable precise geotargeting.


July 18, 2016 - Compatibility, logging and stability enhancements.


May 27, 2016

  • Allows users to explicitly sync variables and message templates from the SDK.
  • Improves compatibility with apps that don't use Leanplum for Push Notifications.

May 9, 2016 -  Fixes a bug that may cause the the SDK to not function properly on iOS version 7 or earlier.


May 6, 2016

  • Fixes Newsfeed callback invocation.
  • Fixes incorrect tracking for empty Push Notifications.
  • Fixes incorrect tracking of Displayed for Push Notifications.
  • Fixes the iOS Simulator check. Pre-iOS 4 versions are not supported anymore.
  • Fixes an issue where Leanplum resources were being backed up to the user's iCloud account.
  • Fixes an issue where the app would crash if a player was logged into GameCenter, when resource syncing is enabled.
  • Checks if the user notification types have changed when the app resumes.
  • Fixes an issue when evaluating matching triggers for in-app messages.
  • Fixes an issue where an in-app message is displayed even if it is missing files.

Note: If you are using custom templates you will need to update the withResponder:^BOOL(LPActionContext *context) blocks of the templates that include files in their definition. You can look at how LPMT_INTERSTITIAL_NAME is implemented in LPMessageTemplates.m for a reference.


November 10, 2015

  • Fixes bitcode error in Xcode 7.0.1.
  • Includes a framework for tvOS apps.
  • Adds an option to disable the network indicator when making requests.
  • Fixes an issue with accessing certain localization keys when resource syncing is partially enabled.
  • Fixes an issue where in-app messages may disappear when being presented on ViewController transitions.
  • Adds an option to manually display the location permission prompt at a point other than the app start.

Supports building in Xcode 7.


  • Supports the new standalone Newsfeed messaging channel. To send a new message, go to Messaging, and select Newsfeed Message as a Message Type.
  • Uses SSL when connecting to the development server for iOS 9 compatibility.
  • Fixes an issue where images within push notification open actions are not loaded.


  • Moved geofencing and iBeacon support to separate frameworks, which are available in Cocoapods.
  • Add API to simplify state names for trackAllAppScreens.
  • Fixes bug handling nested files in in-app-message templates.


  • Fixes synchronization with dashboard versioning.
  • Improve visual editing stability for UITableViews and UICollectionViews.
  • Fix issue calling trackAllAppScreens from a background thread.


Stability improvements for visual editing and trackAllAppScreens.


Fixes rare bug where enabling visual editing could cause super class viewWillAppear methods to fail to execute.


  • Fixes infinite recursion bug introduced in 1.3.2 when using an old open source LPMessageTemplates.m.
  • Fixes overly aggressively disabling push ask to ask prompt.
  • Adds [Leanplum deviceId] and [Leanplum userId].


  • Adds a new message template "Push Ask to Ask", a customizable dialog that gates the one-time iOS push permission prompt.
  • Adds support for triggering in-app messages on the nth occurrence of a trigger.


  • Supports new Visual UI Editor and Visual Event Manager, which allow you to update your app's interface on the fly and track events without writing any code. To access them, go to UI > Interfaces and UI > Events on the dashboard.
  • Supports new marketing automation features like user attribute triggers, event parameter triggers, user attribute lists, and personalized fields based on the message trigger.


Fixes rare variable synchronization issues.


Geofence and iBeacon support is now optional in the Leanplum SDK, and is disabled by default to minimize dependencies.


Improves stability of syncResources when multithreading.


Fixes issues with resource syncing and adds the ability to set user attribution data within the SDK.


Supports iOS share extensions. Use [Leanplum setExtensionContext:] when the extension is created.


  • Fixes an error that can occur rarely when the app is closed right after making an in-app purchase.
  • New Web Interstitial message type.
  • Added automatic integration with Crittercism to track crashes in the app.


  • Fixes an error that can occur when retrieving user notification settings.
  • Improves compatibility with other 3rd party push notification SDKs.


  • Adds support for geofence and iBeacon region triggers for in-app messages and push notifications.
  • Supports iOS 8 notification categories, actions, and tracks user notification permissions.
  • Fixes a concurrency issue when calling forceContentUpdate on app resume.
  • Allows in-app message and push notification triggers to be based on interactions with other messages.
  • Other stability improvements.


  • Fixes an issue where in-app messages do not rotate properly in iOS 8.
  • Adds an async option to resource syncing, which does not block app execution to index resources.
  • Adds methods to automatically or manually track in-app purchases with receipt validation.


  • Fixes an SSL issue that could allow the SDK to accept unsigned certificates.
  • Allows you to access the user's variant IDs from the SDK.
  • Supports triggering messages based on the app coming to the foreground.


Fixes a data corruption error that can happen when sending certain characters through the API.


Fixes an issue with scheduling triggered push notifications.


Removed registration prompt. You can register devices from the dashboard now.


  • Fixes "Request Out of Order" error that is sometimes seen in development mode.
  • Imposes a limit on the number of files supported by syncResources to prevent API errors and improve performance.


  • Uses more precise iOS models (e.g. iPhone 5s instead of iPhone).
  • Filters or targets that depend on the device model being "iPhone" or "iPad" should use "contains" instead of "is" (e.g. "Device model contains iPhone").
  • Fixes a compatibility issue with Urban Airship's auto setup mode.
  • Adds a new method, [Leanplum trackAllAppScreens], to automatically track each screen as states.
  • Incorporates the in-app messaging templates within the SDK itself to ease setup, although you can still include the source code in your app to modify them.


  • Fixes an exception that can happen in development mode if there are issues connecting to the socket server.
  • Removes references to the advertising ID in the SDK. If you want to use the advertising ID, use [Leanplum setDeviceId:] and pass the advertising ID yourself, or use the macro LEANPLUM_USE_ADVERTISING_ID. We recommend that you call LEANPLUM_USE_ADVERTISING_ID in Development mode (place within the #ifdef DEBUG line in your Leanplum initialization code), so that we continue to remember your device even if you reinstall your app.


Fixes an issue when triggering messages on states. Fixes an issue with passing event and state parameters to the API.


Supports the "Triggered" push notification delivery mode.


  • Adds imageValue method to LPVar to easily support image variables.
  • Adds a method to force content update even after the session started.


Uses a more efficient method for uploading large files.


Prevents the SDK from handling push notifications that were not sent through Leanplum.


  • Defaults to the identifier for vendors instead of the identifier for advertising.
  • Use the SDK method [Leanplum setDeviceIdMode] to switch to the advertising identifier.
  • Adds better exception handling and reporting.


Fixed stability issues when resource syncing with folders.


  • SDK supports in-app messaging and push notification features (in beta).
  • Added color variables.
  • Changed how the language is determined.


Added support for 64-bit ARM for iPhone 5S.


  • Fixes an issue where some files may not get uploaded in development mode.
  • Added compatibility methods for Google Analytics and Flurry.


Fixes the registration prompt in iOS 7 and removes the option for device IDs based on hashed Mac address. We'll still use this for devices below iOS 6 automatically.


Adds ability to update the user ID after it's already set, and ability to force show or hide the registration prompt.


  • New setUserAttributes method, ability to override the email registration prompt, and support for apps that cannot run in the background.
  • We also now upload events occasionally while the app is running with a data connection.


Improves retry logic for analytics, and also fixes a bug where sessions may inadvertently get paused during in-app purchases.


Improves performance when excluding many files from syncing, and fixes a bug where files in certain subdirectories do not get synced.


Improves performance when syncing large numbers of files, and supports the new iOS advertising identifier.


Fixes a bug in the SDK when variables are loaded for the first time.


Improves memory management inside the SDK.

Was this article helpful?
Have more questions? Submit a request