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 built with SDK version 5.x or later 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.4.0 and up has been tested against and is compatibile with iOS 13.
- Our LearningApp for iOS has been tested against and is compatibile with iOS 13.
- Building with XCode11 or greater requires SDK version 5.x or later in order to continue receiving push notifications on iOS13 devices.
iOS Data Protection
- Xcode 10 or later
- Minimum deployment target of iOS 10.0
- Download and set up the SDK Integrate the SDK into your app and configure the SDK to send push notifications.
- Test your setup Send your first push notification to test your initial SDK setup.
- 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 Einstein Recommendations – 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.
Sign up for email announcements and contact us with questions about the iOS SDK.
- Post on our Stack Exchange. Example tags: marketing-cloud, salesforcemobilesdk-ios, mobilesdk, and mobilepush-ios
- Sign up for email updates about release announcements and other important information. (10 or fewer emails per year)
- The MarketingCloudSDK for iOS can be found on GitHub and CocoaPods.
- The Marketing Cloud MobilePush Documentation contains information on the Marketing Cloud MobilePush app, including information on associating MobilePush with a mobile app.
- The Marketing Cloud provides the LearningApp for iOS which implements features of the SDK to allow you to explore how a native app properly utilizes the MarketingCloudSDK.
- Review the Appledocs for the SDK.
- Sign up for email updates about the iOS MarketingCloudSDK.
- View the Android SDK docs.
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.
For releases prior to 5.0.0, see: Prior Release Documentation
Released August 31st, correlating with the Marketing Cloud June 2020 release.
- Bug Fixes and Performance Improvements - – This release includes bug fixes and performance improvements.
Released July 6th, correlating with the Marketing Cloud June 2020 release.
- Bug Fixes and Performance Improvements – Fixes an issue where the custom data field was not present in inbox messages.
Released June 1st, correlating with the Marketing Cloud June 2020 release.
- Bug Fixes and Performance Improvements – This release includes bug fixes and performance improvements.
Released May 18th, correlating with the Marketing Cloud March 2020 release.
- Added armv7 support – We had previously removed armv7 support, only providing armv7s and arm64 architecures. This release provides armv7, armv7s, and arm64 support.
Released March 23rd, correlating with the Marketing Cloud March 2020 release.
- Image Fill for Full-Page In-App Messages – Currently, the full-page in-app message template crops images to a 16:9 aspect ratio. With this update, images can fill a larger portion of the screen and drive engagement with your app. Update to the March release of the MobilePush SDK to support image fill for full-page in-app messages. Image fill is available to customers with MobilePush and Journey Builder.
Released January 25th, correlating with the Marketing Cloud January 2020 release.
JSON Configuration Method Removal – The
sfmc_configureWithURLSDK configuration methods, using the
MarketingCloudSDKConfiguration.jsonfile, have been removed. If you are upgrading to this version of the SDK, see Configure the SDK for an example of using our ConfigBuilder for simple, code-based SDK configuration.
Required minimum deployment target of iOS 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 iOS 9).
Released December 27th, correlating with the Marketing Cloud October 2019 release.
- Bug Fixes and Performance Improvements – This release includes bug fixes and performance improvements for iOS13 devices.
Released November 22nd, correlating with the Marketing Cloud October 2019 release.
Bug Fixes and Performance Improvements – This release includes bug fixes and performance improvements.
Updated LearningApp for iOS Data Protection – This release includes an updated, simplified, and modern sample app using the MobilePush SDK - see our LearningApp for iOS.
Released October 28th, correlating with the Marketing Cloud October 2019 release.
JSON Configuration Method Deprecation – The
sfmc_configureWithURLSDK configuration methods, using the
MarketingCloudSDKConfiguration.jsonfile, have been deprecated. These methods will be removed in the next SDK release. If you are upgrading to this version of the SDK, see Configure the SDK for an example of using our ConfigBuilder for simple, code-based SDK configuration.
Immediate Registration After Install—To more effectively establish a Marketing Cloud contact, a MobilePush registration will be sent immediately following the first SDK configuration after a new app install. Subsequent registrations will be deferred for up to 60 seconds, as described in Device and Contact Registration.
Released September 26th, correlating with the Marketing Cloud June 2019 release.
- Bug Fixes and Performance Improvements—This release includes bug fixes and performance improvements.
- In-App Message Layout Improvements—When In-App Messages are displayed on an iPad in Split View modes, messages are sized appropriately on iOS 13 devices.
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.
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.
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.
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.
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
sendDateUtcfor 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.
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.
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 Einstein Recommendations 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
isProtectedDataAvailablereturns NO, configuration will fail.
Fixed predictive intelligence analytics issues—Fixed issues related to sending predictive intelligence analytics if the
MIDconfiguration 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.
Released December 5th, correlating with the Marketing Cloud 215.1 release.
Analytics – Addressed an issue sending analytics to Predictive Intelligence if the
MIDconfiguration value is used.
Networking – Reduced number of network calls made to Marketing Cloud servers during lifecycle of the SDK.
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
MarketingCloudSDKURLHandlingDelegateprotocol 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
MarketingCloudSDKInboxMessagesNotificationHandlerDelegateprotocols 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 (
Released August 27th, correlating with the Marketing Cloud July 2018 release.
- Stability – We addressed issues related to multithreading and Core Data concurrency.
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.
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
availableattributes. 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_refreshMessagestoo 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.
isPushEnabledoverride issue – Previously, disabling push notifications in the Notification Center overrode the
setPushEnableproperty. We fixed this issue so that the SDK uses
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.
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.