What's new

Rights Management SDK 4.2 takes RMS application enablement to a new level of ease and flexibility. This topic outlines important changes and features in this new version of the RMS SDK.

New for our December 2015 Update

With this release, the RMS SDK for devices is now at version 4.2 and adds:

  • Document tracking, RMS On-line only, for iOS/OS X and Android operating systems.

    For details and usage guidance on iOS/OS X, see the MSLicenseMetadata class which provides tracking information and the additional document tracking registration method on MSUserPolicy. There are similar additions for Android to LicenseMetadata and UserPolicy.

    For a detailed description of the document tracking feature, see How to: Use document tracking.

  • A set of synchronous methods that parallel the asynchronous versions for the Android API:

CustomProtectedInputStream.create synchronous method
CustomProtectedOutputStream.create synchronous method
ProtectedFileInputStream.create synchronous method
ProtectedFileOutputStream.create synchronous method
TemplateDescriptor.getTemplates synchronous method
UserPolicy.acquire synchronous method
UserPolicy.create (PolicyDescriptor ) synchronous method
UserPolicy.create (TempalteDescriptor ) synchronous method

These synchronous APIs allow your application to use its own threading mechanism to control any REST calls.
  • A new ProtectedBuffer class has been added to the Android API.
  • Updates to improve error messaging and troubleshooting experience.
  • Significant performance improvements for cryptographic operations.

July 2015 Update - Adds support for Linux / C++ development

This release adds the following:

  • RMS SDK 4.1 for Linux platforms

    For more information, see Get started.

May 2015 Update - Adds logging control

This release adds support for the following:

  • iOS

    App encrypt and decrypt can operate independently and in parallel. For more information, see [**MSProtector**](msprotector-class-objc.md). Log level control settings enabled. For more information, see [How to: Enable error and performance logging](enabling-logging.md) Cache clearing support added. For more information, see [**MSProtection:resetStateWithCompletionBlock**](msprotection-resetstatewithcompletionblock-method-objc.md).

February 2015 Update - Adds Windows Store application support

This release adds support for Windows Store applications and provides functional parity with the Windows Phone, Android and iOS/OS X release of the RMS SDK 4.1.

January 2015 Update - Adds WinPhone platform support

This release adds support for the Windows Phone operating system and provides functional parity with the Android and iOS/OS X release of the RMS SDK 4.1.

October 2014 Update - Upgrade to Microsoft RMS SDK 4.1

The version 4.1 release of the RMS SDK adds the following new features to the Google Android and Apple iOS / OS X.

  • Android and iOS/OS X SDK API extensions for user consent processing, allowing user confirmation of SDK behaviors. Currently, document tracking and accessing unknown AD RMS service URLs are the supported consent types.

    For more information, see as example, the Android API version of ConsentCallback interface.

  • iOS 8 and OS X 10.10 (Yosemite) are now supported. There have also been a few property name changes required by Xcode 6.

    Example; MSUserPolicy.name changed to MSUserPolicy.policyName.

Release notes

This section outlines information about the current and previous releases of the Microsoft Rights Management SDK 4.x APIs that you, as a developer, want to be aware of.

AD RMS SDK 4.1 - iOS / OS X and Android platforms Global Availability Release

  • AD RMS support - IT administrators can use RMS enabled apps on mobile devices with the new AD RMS server's mobile device extensions.
  • Offline Consumption - end-users can access RMS protected data offline.
  • Segregated Auth - developers can use their own authentication library for Azure RMS and AD RMS (or use the recommended Azure AD Authentication Library (ADAL)).
  • Segregated UI - developers can build their user interface to protect and consume RMS protected documents.
  • Re-designed API - developers can now enjoy a simple and transparent encryption and decryption API, which provides consistent RMS behaviors and user experience, with minimum effort.

Common to all platforms

  • The RMS SDK 4.x APIs are not thread-safe.

Android

  • When you use a sample app on an Amazon Kindle device to view .ptxt attachments, you must first download the file before you view it.

    Solution - This is a known issue and will be addressed later.

  • An application that uses the SDK may crash if multi-instance is allowed.

    Solution - Make sure the application does not allow multi-instance calls to the Android API.

  • When I use the ProtectedFileOutputStream.write(byte[] array, int offset, int length) method with a length different from the array.length value, I am not able to consume the content later using the SDK.

    Solution - This is a known issue. To mitigate it, either always pass a byte [] array with the same length value as the length parameter, or use the ProtectedFileOutputStream.write(byte[] array) method.

iOS and OS X

  • There are two dialects of Portuguese that our iOS and OS X SDKs support. Unfortunately, due to a bug, we do not currently support the 1st localization completely. Because of this bug, Portuguese is not fully supported. Most of the text is translated, but not the UI.

    1. Portuguese 2. Portuguese (Portugal)

    Solution - In the short term, you should select the 2nd option for the Portuguese (Portugal) language.

iOS only

  • The RMS SDK 4.x does not show the network activity indicator.

    This is a known optional behavior for iOS according to the Apple Human Interface Guidelines .

OS X only

  • The RMS SDK 4.x does not show the network activity indicator.

    This is a known optional behavior for OS X according to the Apple Human Interface Guidelines .

  • Solution - To create a multiple document interface (MDI) application using our OS X SDK, use the following guidance.

    The methods listed in the following table must not be run concurrently. In order to monitor for execution completion; use the approach noted.

    Method Execution completion
    protectedDataWithProtectedFile completion block
    customProtectedDataWithPolicy completion block

    Note

    MDI applications are not supported by our iOS API.

Frequently asked questions

All platforms

**Q**: I don t see a **Custom Permissions** selection UI in the protection workflow. Why? **A**: This is a known issue and will be addressed later. **Q**: How do I get new organizational tenants to try out the SDK and sample applications? **A**: To request credentials for Azure AD RMS test organizations, please send email to

Android

**Q**: Which development environments has the SDK been tested with? **A**: Eclipse Juno using Google API 15 and above. **Q**: Can I call cancel() a cancel method from the UI thread? **A**: You should call cancel() from a non-UI thread, as it may abort network a connection.

iOS

**Q**: Which platforms were verified for SDK development? **A**: Xcode 5.0 with iOS 7 and later. **Q**: I called a cancel() method on an operation, however I still got notification that the operation completed. Why? **A**: Not all operations can be canceled, so a cancellation operation is executed as best as is possible.

OS x

**Q**: Sample app framework is adapted to Xcode 5, can I work with Xcode 4.6 ? **A**:The OS X SDK works with Xcode 4.6 and later only, as well as OS X 10.8 and later.