Swiftpack.co - Package - RoverPlatform/rover-ios

Rover iOS SDK

NOTE: If you are currently using Rover SDK 1.x, please see the latest 1.x release README.

The Rover SDK is a collection of Cocoa Touch Frameworks written in Swift. Instead of a single monolithic framework, the Rover SDK takes a modular approach, allowing you to include only the functionality relevant to your application. The SDK is 100% open-source and available on GitHub.

Install the SDK

The recommended way to install the Rover SDK is via Cocoapods.

The Rover Podspec breaks each of the Rover frameworks out into a separate Subspec.

The simplest approach is to specify Rover as a dependency of your app's target which will add all required and optional subspecs to your project.

target 'MyAppTarget' do
  pod 'Rover', '~> 2.1.0'

Alternatively you can specify the exact set of subspecs you want to include.

target 'MyAppTarget' do
    pod 'Rover/Foundation',    '~> 2.1.0'
    pod 'Rover/Data',          '~> 2.1.0'
    pod 'Rover/UI',            '~> 2.1.0'
    pod 'Rover/Experiences',   '~> 2.1.0'
    pod 'Rover/Notifications', '~> 2.1.0'
    pod 'Rover/Location',      '~> 2.1.0'
    pod 'Rover/Bluetooth',     '~> 2.1.0'
    pod 'Rover/Debug',         '~> 2.1.0'

Please continue onwards from https://developer.rover.io/ios/.


Stars: 9
Help us keep the lights on


Used By

Total: 0


v2.1.2 - Oct 12, 2018


  • Detecting build environment crashes in some environments #317

v2.1.1 - Oct 4, 2018

This patch fixes four important bugs found in the 2.1.0 release:

  • When opening the app from tapping a push notification, the SDK was inadvertently tracking an "influenced open". This has adverse affects on campaign reporting.
  • A change in iOS 12 caused some text in Experiences to have an extra empty line.
  • Experiences that included a QR code would crash on some devices.
  • The RoverTicketmaster module was not shared which prevented it from being installed via Carthage.

There are no breaking changes in this release. If you are currently running v2.1.0 it is highly recommended you update to 2.1.1.

v2.1.0 - Oct 1, 2018

With 2.1.0 the Rover iOS SDK will no longer be making any breaking changes until 3.x. The primary focus of the 2.1.0 release was improvements to the location module, Xcode 10/Swift 4.2 support and a new and improved sync mechanism.


  • Through the use of conditional compilation, the SDK now supports Xcode 9 and Xcode 10 as well as Swift 4.1 and 4.2.
  • The UserInfo class was renamed to UserInfoManager.
  • The Logger service has been removed and the SDK now makes extensive use of the Apple's built-in logging framework with os_log and os_signpost calls.


  • CocoaPods subspec names have changed. They no longer include the "Rover" prefix. E.g. "Rover/RoverExperiences" is now "Rover/Experiences". This will only affect your app if you were explicitly targeting subspecs.
  • The default subspec will no only include the core modules (Experiences, Notifications, Location and Debug). Previously the RoverBluetooth module was included by default. If you want to include it you will need to add it explicitly. See the Installation and Initialization guide.
  • CocoaPods bundles all modules into a single framework which was previously named Rover. This caused naming collisions with the Rover class and prevented the ability to namespace ambiguous Rover types. E.g. the Rover Notification class often conflicts with the Apple Notification class when you include both the Rover SDK and UserNotifications framework in your app. For this reason, the Cocoapods module name has changed from Rover to RoverKit. See the Installation and Initialization guide.

Syncing Data

  • The SateFetcher service has been replaced with a new SyncCoordinator. The API is similar but has changed slightly. Most notably, the SyncCoordinator no longer "auto-fetches" when the app enters the foreground. The developer must enable this functionality manually in their app delegate. This is slightly less convenient but removed hidden "magic" and makes the sync process more flexible and customizable. See the Syncing Data guide for details on how to setup the new SyncCoordinator.


  • All events tracked through the Rover EventQueue now include the last known location in the context along with a timestamp of when the location was detected and a reverse-geocoded address.


  • The Experience, Screen, Row and Block models now include the name, tags and custom keys assigned to them in the Experience app.
  • The "Block Tapped" event now includes the Row in the event attributes.

Location Module

  • The location module has been completely rewritten and offers a much faster, more powerful approach to monitoring beacons and geofences. All objects created in the Proximity app are now synced to the device through the SyncCoordinator and stored on disk using Core Data. This allows realtime region monitoring updates, instantaneous event reporting and an API for developers to access the current nearby beacons and enclosing geofences.
  • The RegionStore and LocationManager services have been removed and replaced with the RegionManager.
  • The app is now responsible for instantiating its own CLLocationManager and implementing its delegate. Similar to the changes with SyncCoordinator this is slightly less convenient but removes "magic" and increases flexibility.
  • See the Location guide for details on how to integrate the new Location module.


  • A new (optional) Ticketmaster module is included in the SDK for syncing Ticketmaster profile data to Rover. It is designed to work out of the box with the Ticketmaster Presence SDK without requiring a dependency on any specific version.
  • See the inline markup documentation on the new TicketmasterAuthorizer service for details on how to integrate it.

v2.0.0 - Sep 7, 2018

Rover iOS SDK 2.0.0

2.0 is complete redesign of our mobile SDK. Read more at our new documentation site.


  • Modular architecture providing an “al a carte” developer experience – only add the Rover modules that are relevant to your application
  • Dependency Injection framework provides an incredible amount of flexibility and customization options
  • Much improved logger with configurable threshold (e.g. warning vs errors).
  • Ability to opt-in to testing from the device
  • New data points captured about devices:
    • App badge icon
    • Carrier name
    • Cellular and wifi status
    • Location authorization status (always vs when in use)
    • Radio (LTE vs 3G etc.)
    • Screen resolution
  • New events captured:
    • Notification Center “Inbox” views
    • Push token changes (added, updated and removed)
    • App installs and updates
    • Notification Opens and Influenced Opens
    • Notification Deletions
    • Bluetooth enable and disable
  • More accurate experience and screen average view time
  • Vastly improved network performance
  • Events queue locally on disk and flush periodically reducing network requests and thus battery life
  • Background fetch support – refresh “inbox” while app is in the background
  • Smoother experience scrolling
  • Faster experience loading
  • Experience images fade-in when loaded
  • Buttons have a subtle tap effect
  • “Stretchy headers”
  • Notification Center (previously known as “Inbox”)
    • Offline support
    • Delete notifications
    • Mark as read
    • Thumbnail images
    • Turn-key setup and completely customizable

v2.0.0-beta.3 - Aug 31, 2018


  • Harmonized rendering of barcodes across both Android and iOS.
  • Resolved several minor rendering issues with Experiences.
  • Improved the Analytics events such that may be more readily queried in BigQuery.