Skip Navigation

Software requirements

Android
development

Item
Requirement
Compatibility with previous versions of the SDK
The
BlackBerry Dynamics SDK for Android
is compatible with these previous releases of the SDK:
  • 10.0.x
  • 10.1.x
  • 10.2.x
  • 11.0.x
  • 11.1.x
  • 11.2.x
Supported
Android
OS
Android
10.0 or later
Android
API Level
Minimum API level: 29
AndroidX libraries
Your apps must use the AndroidX support libraries to compile successfully. The SDK supports the following minimum versions. It is recommended to use the latest stable version of each library.
  • androidx.appcompat:appcompat:1.0.0
  • androidx.cardview:cardview:1.0.0
  • androidx.constraintlayout:constraintlayout:1.1.3
  • androidx.core:core:1.0.0
  • androidx.legacy:legacy-support-v4:1.0.0
  • androidx.preference:preference:1.1.0
  • androidx.recyclerview:recyclerview:1.0.0
Build requirements
If the app project uses the SDK .jar distribution, load the shared libraries libsbgse.so and libgdndk.so.
Google Play
Services
The SDK uses
Google Play
Services version 17.0.0 to support some of its functionality.
If your app uses the following
Google Play
Services libraries, verify that you are using the following minimum version or later:
  • com.google.android.gms:play-services-location:17.0.0
  • com.google.android.gms:play-services-safetynet:17.0.0
Supported CPU architectures
  • ARMv7
  • ARMv8
  • x86
  • x86_64
Java
compatibility
Applications must be built using
Java
8 compatibility. For more information, see java8-support.
Suggested versions of platform and tools
  • Android
    Studio 3 or later
  • The following values specified in sdk/libs/handheld/gd/build.gradle. Other versions of tools will work, but the
    BlackBerry Dynamics
    library gradle files might need to be updated accordingly.
Package visibility restrictions
Package visibility updates were made in SDK version 8.1 and later to address changes in
Android
11 to how apps query and interact with other apps that are installed on the same device. These changes impact apps with the target SDK level set to
Android
11 or later only (targetSDKLevel=Android 11). If a
BlackBerry Dynamics
app is not upgraded to SDK version 8.1 and you change the target SDK level to
Android
11, the app cannot communicate with other
BlackBerry Dynamics
apps on the same device, breaking interoperability features (Easy Activation, authentication delegation, and so on).
To support the new package visibility queries element, you must either upgrade the
Android
Gradle plugin to version 3.6.3 or later or follow the instructions from the Android Developers Blog: Preparing your Grade build for package visibility in Android 11 to use a major Gradle version with the latest dot release.
Apps that target
Android
11 are able to perform interoperability operations with the apps that don't target
Android
11. Apps that are not targeted to
Android
11 can run on
Android
11 and are not affected by the package visibility restrictions.
Character encoding for build files
Build files (for example, settings.json) must use UTF-8 character encoding. Verify that the editor that you plan to use does not add non-UTF-8 characters or headers. In general,
Java
does not work with UTF-8-BOM (byte order mark).
Supported launch modes
Apps built with the
BlackBerry Dynamics SDK for Android
support the following launch modes in AndroidManifest.xml:
  • android:launchMode="standard"
  • android:launchMode="SingleTop"
  • android:launchMode="singleTask"
BlackBerry Dynamics Launcher Library
The
BlackBerry Dynamics Launcher
is a user-friendly interface that allows users to easily access and switch between
BlackBerry Dynamics
apps, configure app settings, and take advantage of other useful features. For more information, see the BlackBerry Dynamics Launcher Framework documentation.
The
BlackBerry Dynamics SDK
and the
BlackBerry Dynamics Launcher Library
are mutually dependent. See the BlackBerry Dynamics SDK for Android Release Notes for the required version of the
BlackBerry Dynamics Launcher Library
.
Restricted key prefix
The key prefix "blackberry" is reserved by
BlackBerry
and should not be used for key values, key attributes, or key elements. For more information and examples, see the Application Policies Definition in the appendix of the API Reference.
Credential manager requirements
Apps that will use the Credential Manager UI require the following updates:
In the app level module of your Gradle file (app/build.gradle), in the dependencies section, add
implementation 'androidx.recyclerview:recyclerview:1.0.0'
.

iOS
development

Item
Requirement
Compatibility with previous versions of the SDK
The latest release of the
BlackBerry Dynamics SDK for iOS
is compatible with these previous releases of the SDK:
  • 10.0.x
  • 10.1.x
  • 10.2.x
  • 11.0.x
  • 11.2.x
  • 11.1.x
  • 11.2.x
Deployment target
iOS
15 or later
Xcode
Xcode
14 or 15
Support for
Mac
Silicon M1 devices
  • BlackBerry Dynamics
    apps using SDK version 11.0 or later are supported for
    Mac
    Silicon devices.
  • BlackBerry Dynamics
    apps running on
    Mac
    Silicon devices are reported as
    Mac
    apps in the
    UEM
    management console.
  • UEM
    administrators can control access to
    BlackBerry Dynamics
    apps using the
    macOS
    compliance settings available in the management console.
  • To support Easy Activation and authentication delegation, you will need to provide the
    macOS
    bundle ID for the app in the Apps settings in myAccount.
Supported programming languages
  • Objective-C
  • Swift
    4, 4.2, 5
Supported Internet Protocols
  • IPv4
  • IPv6
Info.plist requirements
In the Info.plist file, add the key "Privacy - Camera Usage Description" with the value "Allow camera usage to scan a QR code". This is not required if the app already uses the camera for its own purposes.
For ISV apps, it is recommended that you add the following usage descriptions (or your own custom descriptions) to the Info.plist file to inform the user why the app requires location permission:
  • NSLocationWhenInUseUsageDescription: "Allow BlackBerry to collect location data, including Wi-Fi address and IP address, and usage patterns only when the app is in use. You may change this setting at any time from your device settings."
  • NSLocationAlwaysUsageDescription: "Always allow BlackBerry to collect location data, including Wi-Fi address and IP address, and usage patterns, even when the app is not in use. You may change this setting at any time from your device settings."
  • NSLocationAlwaysAndWhenInUseUsageDescription: "Allow BlackBerry to collect location data, including Wi-Fi address and IP address, and usage patterns both when the app is and is not in use. You may change this setting at any time from your device settings."
Native bundle ID
If you develop a
BlackBerry Dynamics
app for use on both
iPhone
and
iPad
devices, use a single native bundle ID for all variations of the app.
UEM
will only accept a single native bundle ID.
Keychain group sharing for multiple apps
Keychain group sharing allows groups of apps to share information that is stored on a device's keychain. Keychain group sharing is required when you are developing multiple inter-related apps. The setting is part of a project's build.
To enable keychain group sharing in an
Xcode
project, open the project file, navigate to the app target Capabilities tab, and turn on Keychain Sharing. You may be asked for your developer password and to choose a development team. The provisioning profiles for each app must come from the same team and must share the same App ID prefix (see row below). For the Keychain Group, specify
com.good.gd.data
. Also, if you intend to use crypto tokens in your app, specify
com.apple.token
.
If the settings for keychain group sharing change, it is recommended to do a fresh reinstall of the new version of the app instead of upgrading the old version. This ensures that the new keychain settings take effect.
App ID prefix
An App ID prefix is a unique ID that groups a collection of apps and enables those apps to share keychain and UIPasteboard data. Apps that share keychain data must have a common App ID prefix from
Apple
.
The
Apple
App ID prefix is completely independent of the
BlackBerry Dynamics
entitlement ID
.
BlackBerry Dynamics Launcher Library
The
BlackBerry Dynamics Launcher
is a user-friendly interface that allows users to easily access and switch between
BlackBerry Dynamics
apps, configure app settings, and take advantage of other useful features. For more information, see the BlackBerry Dynamics Launcher Framework documentation.
The
BlackBerry Dynamics SDK
and the
BlackBerry Dynamics Launcher Library
are mutually dependent. See the BlackBerry Dynamics SDK for iOS Release Notes for the required version of the
BlackBerry Dynamics Launcher Library
.
Restricted key prefix
The key prefix "blackberry" is reserved by
BlackBerry
and should not be used for key values, key attributes, or key elements. For more information and examples, see the Application Policies Definition in the appendix of the API Reference.

Cordova
development

Item
Requirement
Development environment
The
macOS
platform is recommended for developing an app with the
BlackBerry Dynamics SDK for Cordova
. Development on a
Windows
computer is supported only for the
Android
platform.
Supported
Cordova
libraries
  • Cordova
    10
  • Cordova
    11
Support for
Cordova
10 is deprecated and will be removed in a future release.
cordova-android@10.1.1 is the only supported version for a
Cordova
10 project on
Android
. To upgrade to this version, run the following commands:
$ cordova platform remove android $ cordova platform add android@10.1.1
Node.js
10.x (LTS) or later
AngularJS
Version 1.x (without
Ionic
)
Angular
Version 7.x
Note the following limitations for
Android
only:
Ionic
  • Ionic
    5
  • Ionic
    6
Support for
Ionic
5 is deprecated and will be removed in a future release.
The SDK supports
Ionic
projects with the angular and
Ionic
1 types only; projects with a react or vue type are not supported.
Compatibility with
BlackBerry Dynamics
SDK for
Android
and
iOS
This release of the
BlackBerry Dynamics SDK for Cordova
is compatible with
BlackBerry Dynamics SDK for Android
and iOS version 11.1 and 11.2.
To downgrade
BlackBerry Dynamics SDK for Cordova
to use
BlackBerry Dynamics SDK for Android
10.1 or 10.2, do the following:
Open plugins/cordova-plugin-bbd-base/scripts/gradle/bbd.gradle and update the dependencies to the following:
dependencies { implementation 'com.blackberry.blackberrydynamics: android_handheld_platform:10.x+' implementation 'com.blackberry.blackberrydynamics: android_handheld_backup_support:10.x+'}
To downgrade
BlackBerry Dynamics SDK for Cordova
to use
BlackBerry Dynamics SDK for iOS
10.1 or 10.2, do the following:Open plugins/cordova-plugin-bbd-base/plugin.xml and replace the podspec URL to the following:
  • iOS
    10.1:
    <pod name="BlackBerryDynamics" podspec="https://software.download.blackberry.com/repository/framework/dynamics/ios/10.1.0.36/BlackBerryDynamics-10.1.0.36.podspec" />
  • iOS
    10.2:
    <pod name="BlackBerryDynamics" podspec="https://software.download.blackberry.com/repository/framework/dynamics/ios/10.2.0.83/BlackBerryDynamics-10.2.0.83.podspec" />
The
BlackBerry Dynamics SDK for Cordova
requires use of the BlackBerry Dynamics SDK for iOS dynamic framework. The
BlackBerry Dynamics SDK for iOS
static framework is no longer supported. For more information, see the readme file for the Base plug-in (cordova-plugin-bbd-base).
It is recommended that you always build and test with the most recent release of the
BlackBerry Dynamics SDK for Cordova
, to take advantage of new fixes and features.
Unsupported
BlackBerry Dynamics
features
Android
: Data Leakage Prevention (DLP)