MobilePush SDK: Important Forward-Compatibility Statement

In the January, 2020 Marketing Cloud MobilePush SDK release, support for older Android and iOS versions will be removed from the SDK.

  • Android will require a minimum API version of 21
  • iOS will require a minimum deployment target of 10.0

Existing mobile applications will continue to function, without change. Mobile applications may continue to reference older SDK versions, without change. Applications which adopt the January, 2020 MobilePush SDK release may require a project change if your application build still supports an older value (Android: earlier than API 21, iOS: iOS 9).

iOS 13 Support

  • The MobilePush SDK version 6.3.4 has been tested against and is compatibile with iOS 13.
  • Our LearningApp for iOS has been tested against and is compatibile with iOS 13.
  • Older versions of the SDK may be compatibile but have not been tested.


  • Xcode 9 or later
  • Minimum deployment target of iOS 9

Get Started

  1. Download and set up the SDK Integrate the SDK into your app and configure the SDK to send push notifications.
  2. Test your setup Send your first push notification to test your initial SDK setup.
  3. Implement additional optional features of the SDK to take full advantage of Salesforce Marketing Cloud.
    • Add custom sounds, media, custom keys, and interactions – Use these features to further customize push notifications for your apps.
    • Use a contact key to set the unique identifier used to aggregate a contact’s devices within Marketing Cloud. Set the contact key to a specific value provided by your customer or to another unique identifier for the contact, such as mobile number, email address, customer number, or another value.
    • Add attributes and tags – Enhance your ability to segment your push message audiences.
    • Add predictive intelligence using Personalization Builder – Track cart and cart conversions. Purchase this feature separately.
    • Add other features – Send push notifications along with your inbox messages, use OpenDirect for deep linking, and trigger location-based messages with location and beacon messaging.

Contact Us

Sign up for email announcements and contact us with questions or feedback about the iOS SDK.

Additional Resources

Hybrid Mobile Apps

We provide support for plugins, such as Cordova, to implement the MobilePush SDK for your iOS and Android applications.


We remove deprecated methods from the SDK two releases after the initial deprecation announcement.

Release History

For releases prior to 5.0.0, see: Prior Release Documentation


Version 6.3.4

Released July 25th, correlating with the Marketing Cloud June 2019 release.

  • New LearningApp—This release includes an updated, simplified, and modern sample app using the MobilePush SDK - see our LearningApp.
  • Inbox Message Status—This release better reflects the read or deleted state of an inbox message in Marketing Cloud.

Version 6.3.3

Released June 17th, correlating with the Marketing Cloud June 2019 release.

  • Deliver in-app Messages—Deliver relevant, personalized messages to your app’s users. You can now send messages without relying on users having enabled push notifications. Engaging full-screen, modal, or banner messages are presented while your users are interacting with your app. See In-App Messaging for more.

Version 6.2.3

Released May 21st, correlating with the Marketing Cloud April 2019 release.

  • Fixed issue with Inbox start date—Inbox messages now will respect startDateUtc payload value in all cases.

Version 6.2.2

Released May 2nd, correlating with the Marketing Cloud April 2019 release.

  • Removed SDK test code from library—Test code associated with SDK development was removed from the public release.

  • Fixed Location Messaging Date Calculation—When calculating a “next show date” for a location message, fixed a case where the day may have been off by one.

Version 6.2.0

Released April 23rd, correlating with the Marketing Cloud April 2019 release.

  • Required app endpoint (tenant-specific endpoint)—To pass the SDK’s configuration, an app endpoint is now required. Find the app endpoint for your app under Administration in MobilePush. Review Configuration Requirements for details.

  • Added application badging override—A new SDK configuration value gives you full control of your app’s badge value. Review Application Badging for details.

  • Added ability to delay registration until contact key is set—Use a new SDK configuration value to delay registrations to Marketing Cloud until a contact key is set via sfmc_setContactKey:. Review Delay Registration for details.

  • Inbox messages support sendDateUtc for Sorting—Inbox messages delivered to your app now include the date that the message was sent. App users can sort their inbox based on this value. Review Inbox for details.

  • Better tracking of open from push analytics—The tracking of “open from push” analytics when an application is not running will now be captured more effectively if the SDK is configured asynchronously.

  • Fixed issue with the ConfigurationBuilder—There was an issue with using the builder method of configuring the SDK which may have caused an authorization error when contacting Marketing Cloud.

Version 6.1.4

Released February 28th, correlating with the Marketing Cloud January 2019 release.

  • **Location – Corrected an issue that prevented a location or proximity CloudPage+Alert message from displaying.

Version 6.1.3

Released February 11th, correlating with the Marketing Cloud January 2019 release.

  • Implemented location message segmentation—The SDK now supports app control over which geofence and beacon messages are displayed. Use the region information provided for geofence and beacon messages in your notification presentation logic. Review Location Message Segmentation.

  • Implemented predictive intelligence identifier (PIID) configuration options and APIs—You can configure the identifier for predictive intelligence analytics according to how you use Personalization Builder. Configure your applications to use either existing contact key data or a PI-specific identifier. Review Personalization Builder and Collect API Integration.

  • Added time for iOS file protection transitions—To ensure that iOS file protection transitions are complete before the SDK completes configuration, we added a guarding mechanism. Now, to accommodate these transitions, the SDK waits up to 5 seconds, without blocking other functions. If UIApplication’s isProtectedDataAvailable returns NO, configuration will fail.

  • Fixed predictive intelligence analytics issues—Fixed issues related to sending predictive intelligence analytics if the MID configuration value is used.

  • Fixed location messaging issue—Previously, reloading location messages from the server could show a display-limited message again, contrary to the message setting. This has been fixed.

Version 6.0.1

Released December 5th, correlating with the Marketing Cloud 215.1 release.

  • Analytics – Addressed an issue sending analytics to Predictive Intelligence if the MID configuration value is used.

  • Networking – Reduced number of network calls made to Marketing Cloud servers during lifecycle of the SDK.

Version 6.0.0

Released October 22nd, correlating with the Marketing Cloud October 2018 release.

  • Implemented Tenant-Specific Endpoint support for Marketing Cloud Accounts – New Marketing Cloud MobilePush applications will be configured with account-specific settings. See Configure the SDK for instructions on configuring your SDK’s values.

  • Removed SDK-provided web view for URLs – We removed the SDK’s built-in URL presenter to remove security concerns. As such, you must provide the SDK with a delegate and implementation of the MarketingCloudSDKURLHandlingDelegate protocol if your message will redirect to a web URL, resource, file or other business logic driven custom application schema. See Handling URLs for more information.

SDK API REMOVAL MarketingCloudSDKCloudPageMessagesNotificationHandlerDelegate, MarketingCloudSDKOpenDirectMessagesNotificationHandlerDelegate and MarketingCloudSDKInboxMessagesNotificationHandlerDelegate protocols and protocol methods have been removed from the SDK. Please change your code to implement the MarketingCloudSDKURLHandlingDelegate protocol.

  • Inbox Functionality Improvements – When an Alert+Inbox push notification arrives with the app in the foreground, Inbox messages will be reloaded from the server automatically.

  • Inbox Functionality Improvements – Inbox message handling better tracks “active” messages in the inbox (according to start and end date values).

  • SDK Configuration – Added option to configure SDK via runtime values passed to SDK (sfmc_configureWithDictionary:)

Version 5.2.1

Released August 27th, correlating with the Marketing Cloud July 2018 release.

  • Stability – We addressed issues related to multithreading and Core Data concurrency.

Version 5.1.1

Released July 31st, correlating with the Marketing Cloud 213.1 release.

  • Corrected issues with multi-threading – We corrected issues related to multi-threading in the SDK.

  • Added i386 slice for simulator builds – We updated the build process to include i386 ARCH, which allows you to run 32-bit simulators.

  • Addressed issue loading resources on armv7s devices – We corrected an issue related to loading resources on armv7s devices.

Version 5.1.0

Released July 23rd, correlating with the Marketing Cloud April 2018 release.

  • Added iOS 9 support – The iOS MarketingCloudSDK framework now supports iOS 9. Use conditional coding via Apple’s available attributes. For notes on using conditional coding for push registration and handling push notifications, see the iOS 9 documentation.

  • Added synchronous configuration calls – To prevent developers from trying to set a contact key, tag, or attribute before configuration is complete, we added synchronous configuration calls to the API as the default.

  • Added data privacy compliance – This version of the iOS MarketingCloudSDK supports three privacy modes that may affect your application’s use of MobilePush: 1) Right to be Forgotten, 2) Restriction of Processing, and 3) Do Not Track. These changes assist you in preparing for data compliance regulations, such as the European Union’s General Data Protection Regulation (GDPR). For more details, visit our SDK-specific data privacy compliance documentation.

  • Throttled inbox message calls – To match the Android SDK, we now prevent the iOS MarketingCloudSDK from calling sfmc_refreshMessages too often. Reference the headers for more information.

  • Allowed Predictive Intelligence to be set separately – When you configure the iOS MarketingCloudSDK, you can now enable or disable Predictive Intelligence separately from Analytics. If your app uses the iOS MarketingCloudSDK version 5.0.0 framework and if Analytics is enabled, Predictive Intelligence is also enabled. To control Predictive Intelligence separately, add the config flag.

  • Improved registration – We improved registration to prevent duplicate tags and attributes.

  • Fixed isPushEnabled override issue – Previously, disabling push notifications in the Notification Center overrode the setPushEnable property. We fixed this issue so that the SDK uses setPushEnable.

Version 5.2.0

Released July 11th, correlating with the Marketing Cloud July 2018 release.

  • Added checks to prevent exceptions – We added nil checks to prevent potential exceptions that could happen when users swipe to close an app.

  • Improved log string initializers – To help prevent Xcode Address Sanitizer warnings, we improved the SDK’s use of log string initializers.

  • Device ID migration – The SDK attempts to migrate the deviceId from versions of JB4ASDK 4.x.x, if possible.

Version 5.0.0

Released January 22nd, correlating with the Marketing Cloud January 2018 release.

  • We redesigned the SDK to make it easier to integrate than ever before. This release includes a slimmer API that makes it easier to add Marketing Cloud features to your app. Existing users can upgrade their version to take advantage of the improved SDK. New users can follow the existing Getting Started directions to get the SDK up and running.

  • We updated the SDK for full support of iOS 11.