Welcome to the Versus SDK Developer Hub

You'll find comprehensive documentation for the suite of SDKs we have available. We hope these docs will help you start working as quickly as possible, as well as provide support if you get stuck. Let's jump right in!

Get Started    

Release Notes

Versus iOS & Android SDK 3.0.0 Headless Release

This release primarily focuses on some critical bug fixes that have been discovered since the previous release.

iOS

Features

  • [Breaking Change] - Various models and functions have been renamed using Versus as a base.
  • Added support for persisting cached location polls to disk for up to 3 hours.
  • Added support for tracking open/close state on app going to background and resuming.
  • Added support for Mark Seen and Prize Visibility.
  • Added support for setting global log levels on initialize (error | info | debug | verbose | excessive)
  • Added support for allowing unsupported RPC Methods to flow through APIManager.

Bugs

  • Fixed various state management issues
    - Session tokens not being retained
    - AuthTokens not being retrieved properly for auto-login
    - Sign out not properly clearing stored data.
    - ExternalPlayerId not being tracked properly.
  • Fixed issue with Universal Framework packaging
  • Fixed issues with issues with building symbols for Archiving
  • Fixed issue with Create Account not being allowed multiple times on one device.
  • Fixed issue with dates not serializing properly from the API.
  • Fixed issue when multiple listeners are asking for location updates.
  • Updated challenge eligibility signature to more accurately reflect results that can come back.
  • Removed UI remnants from the SampleApp that found their way into the Headless SDK.
  • Fixed issue with ping check on initialize not adhering to spec.
  • Fixed issue with availability handler not firing updates.
  • Fixed various issues with JSON serialization

Installation Instructions

  1. Copy the VersusSDK, WinfiniteEncryptiOS and VersusAPI framework files into your project. (XCode is mostly indifferent about the location.)
  2. Select the Target with which you'd like to use the SDK
  3. Head to the target settings section here
  4. From finder, drag the two framework files into the 'Frameworks, Libraries, and Embedded content' section.

Android

Features

  • [Breaking Change] - Various models and functions have been renamed using Versus as a base.
  • Added support for tracking open/close state on app going to background and resuming.
  • Added support for Mark Seen and Prize Visibility.
  • Updated all AndroidX dependencies.

Bugs

  • Disabled auto-backup for the
  • Fixed various state management issues
    - Auth and Client details not persisting proper data to disk.
    - ExternalPlayerId not being updated for multi-device signing in.
    - Ignoring existing players for multi-device signing in.
  • Account token not being properly set on multi-device sign in.
  • Safely handle exceptions that are thrown when API returns non-json string for a response.
  • Fixed issue with account id not being properly serialized
  • Fixed issue with Various models not generating a JSONAdapter.
  • Fixed an issue with okhttp not being able to properly serialize RpcError base.
  • Fixed issue with composite exceptions that contain only one exception to simply return it instead of bundling.
  • Fixed issue with auth / client details not being updated when terms aren't accepted.
  • Fixed issue with all PrizeFulfilment methods not being supported.

Performance

  • Better handle performance considerations around RxJava2 subscription disposing.
  • Improved performance with non-reflection based serialization for various classes. Enforced stricter kotlin-codegen adherance.

Installation Instructions

Using Android Studio Wizard:

  1. File->New->New Module->Import .jar/AAR Package
  2. Select the versus-sdk.aar
  3. Go to the "Dependencies" tab of your "app" module
  4. Click on the + on the bottom left and select "Module Dependency"
  5. Select the "versus-sdk" and click "OK"
  6. Perform these same steps for the included versus-encrypt library.
  7. Perform a "Clean Project" command and "Rebuild"

More information can be found in the official Android documentation here

Dependencies

Our SDK is currently in the process of being configured for Maven distribution. In the interim however, you'll need to add the following entries in your build.gradle file.

/* Versus SDK */
implementation project(":versus-sdk")
implementation project(":versus-encrypt")

/* [Google] Android Jetpack Dependencies */
implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
implementation "androidx.room:room-runtime:2.2.5"

/* [Google] Room Extensions + Helpers */
implementation "androidx.room:room-rxjava2:2.2.5"
implementation "androidx.room:room-ktx:2.2.5"

/* 3rd Party Dependencies */
implementation 'io.reactivex.rxjava2:rxjava:2.2.19'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxkotlin:2.4.0'
implementation 'com.squareup.okhttp3:okhttp:4.6.0'
implementation 'com.squareup.moshi:moshi:1.9.2'
implementation 'com.squareup.moshi:moshi-adapters:1.9.2'

Pure Gradle Installation utilizing Maven:

  1. Add the Versus Systems Maven Repo to to your Projects Build.Gradle file.
maven {
    name 'VersusSystems Maven Repo'
    url 'https://versussystems.mycloudrepo.io/public/repositories/android'
}
  1. Add the Versus SDK Dependency to your module.
implementation 'com.versussystems:sdk-debug:3.0.0'

Known Issues

  • You may see the error: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/conscrypt/ConscryptHostnameVerifier when starting the SDK.
    - This is a known issue with OkHttp (that doesn't affect our usage) being tracked here -> here

Versus iOS & Android SDK 2.0.0 Headless Release

There have been MAJOR structural and functional changes from v1 of the SDK that are too numerous to list. Some notable standouts however include:

iOS

Major

  • Removed all external dependencies and 3rd party libraries.
  • Decoupled all existing functionality to no longer require View Controllers / UI elements - the SDK can now be used irrespective of UI. All logic has been moved out of ViewControllers and alertviews and made available as public methods that can be called on the main Versus SDK Instance.
  • Simplified response closures for all public methods.
  • Support for progress events / new challenge structure and progressEvent encryption
  • Support for new RPC API Interfacing with Services
  • Fixed all issues with UI Thread hangup and poor thread handling in general.

Minor

  • A number of classes and interfaces have been renamed to improve clarity.

Features

  • Completely rewrote the Sample App for functionality and clarity of use.
  • SampleApp is now embedded in the project and does not require an external codebase or interfacing.
  • Complete integration test suite

Installation Instructions

  1. Copy the VersusSDK and VersusAPI framework files into your project. (XCode is mostly indifferent about the location.)
  2. Select the Target with which you'd like to use the SDK
  3. Head to the target settings section here
  4. From finder, drag the two framework files into the 'Frameworks, Libraries, and Embedded content' section.

Android

Major

  • Decoupled all existing functionality to no longer require Android View / UI elements - the SDK can now be used irrespective of UI. All logic has been moved out of activities / fragments and dialogs and made available as public interfaces that can be called on the main Versus SDK Instance.
  • Public methods no longer expose RxJava and instead use a custom VsLiveData type for easier consumption.
  • Fixed memory leaks associated with retaining various contexts.
  • Support for progress events / new challenge structure and encryption
  • Support for new RPC API Interfacing with Services
  • Cleaned up global namespace - now only exposing classes / systems that are necessary to directly interface with the SDK.
  • Fixed all issues with UI Thread hangup and poor thread handling in general.

Minor

  • A number of classes and interfaces have been renamed to improve clarity.

Features

  • Completely rewrote the Sample App for functionality and clarity of use.
  • SampleApp is now embedded in the project (does not get compiled during Headless SDK export)
  • Complete integration test suite as a module

Installation Instructions
Using Android Studio Wizard:

  1. File->New->New Module->Import .jar/AAR Package
  2. Select the versus-sdk.aar
  3. Go to the "Dependencies" tab of your "app" module
  4. Click on the + on the bottom left and select "Module Dependency"
  5. Select the "versus-sdk" and click "OK"
  6. Do a "Clean Project" command and "Rebuild"

Manual

  1. Copy versus-sdk.aar into the root of your project
  2. Add versus-sdk.aar as a dependency to your project:
    dependencies {
    implementation project(':versus-sdk')
    }
  3. Do a "Clean Project" command followed by "Rebuild"
    More information can be found in the official Android documentation here

Updated 9 months ago

Release Notes


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.