Mobile RUM Supported Environments

This page lists the supported environments for the following mobile agents:

Android Agent

Supported EnvironmentsNameSupported Version(s)
Operating System Android>= 2.3.3
Architecture arm64-v8a, armeabi, armeabi-v7a, mips, mips64, x86, and x86_64-
Frameworks Ant-
Gradle0.6.3 - 8.0
Maven>= 3.1.1
Crash Reporters Mobile RUM does not officially support 3rd-party crash reporters.N/A

HTTP Libraries

HttpURLConnection / HttpsURLConnection -
HttpClient -
OkHttp 2.2.0 - 3.9.0
ch.boye.httpclientandroidlib -
retrofit -
retrofit2 -
Other HTTP libraries can be added by using the agent SDK. See Customize the Android Instrumentation for more information.-
Android Gradle Plugin VersionMinimum Android Agent Version
0.6.33.8.2.0
0.7.3 - 0.9.23.8.3.0
0.10.0 - 0.12.0

3.9.0.0

1.1.2 - 1.1.3

4.0.3.3

1.3.0 - 1.4.04.0.7
1.5.0 - 2.2.0

4.2.0*

2.3.0 - 3.4.0 (forces Build Tools 25.0.0 or higher)4.2.9
>= 3.4.1>= 20.7.1
7.022.2.0
8.023.4.0

Recommendations

  • If your project uses Android Gradle Plugin version < 3.4.1, use Android Agent 20.4.0.

  • If your project uses Android Gradle Plugin version >= 3.4.1, use Android Agent >= 20.7.1.

*Android Agent Plugin versions before 4.2.9 are not compatible with Android Build Tools versions >=24 because of the Java 8 bytecode generated in class files.

Android Studio Support

  • Android Studio 2.1.0 - 2.9.9, 3.2.1 - 3.9.9 (Not supported: 3.0.0 - 3.2.0, >= 4.0)

iOS Agent

Supported EnvironmentsNameSupported Version(s)
Operating System iOS>= 9
Architecture Apple 32-bit ARM, Apple 64-bit A7-
Framework Xcode>= 12.5
Crash Reporters Mobile RUM does not officially support 3rd-party crash reporters.N/A

Apple WatchKit Extension Environments

watchOS1
HTTP Libraries
NSURLConnection -
NSURLSession -
Alamofire - Initialize the iOS Agent before initializing Alamofire to ensure that network requests are monitored. If you need to make a network request(s) prior to iOS Agent initialization, see Alamofire Guidelines.-
Other HTTP libraries can be added by using the agent SDK. SeeCustomize the iOS Instrumentationfor more information.-

Alamofire Guidelines

If you need to use Alamofire to make a network request(s) prior to initializing the iOS Agent, you can use the following sample code as a guideline for making the necessary changes.

To ensure that Alamofire network requests made after iOS agent initialization will be instrumented, you can initialize a custom instance of Session (the principle class defined in Alamofire 5, renamed from previous Alamofire versions). This will create a new instance of URLSession, which can be instrumented by the iOS Agent. Any Alamofire network requests made prior to the agent initialization and creation of the Session instance cannot be instrumented by the agent.

Note:
  • The order of operations in this code is very important. See the inline comments.
  • This code assumes you are initially creating a customized instance of Session (which is common practice). If not, you can eliminate the first usage of customized Session and defer its creation until after the iOS agent initialization.
  • You can test this code by going to https://www.google.com/?q=request%202, which is instrumented because it occurs after the replacement of mySession with instrumentedSession. The other two requests are not instrumented.
import UIKit
import Alamofire
import ADEUMInstrumentation
var mySession:Session?					// customized Session singleton
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// create customized instance of AF Session
let myConfiguration = URLSessionConfiguration.af.default
mySession = Session(configuration: myConfiguration)
let myUrl1 = URL(string: "https://www.google.com/?q=request%201")!
let urlRequest1 = URLRequest(url: myUrl1)
// the first network request prior to ADEumInstrumentation.initWith will not be instrumented
mySession?.request(urlRequest1 as URLRequestConvertible).response {
response in debugPrint(response)
// initialize iOS agent
let config = ADEumAgentConfiguration(appKey: "XX-XXX-XXX-XXX")
config.loggingLevel = .all
ADEumInstrumentation.initWith(config)
// update our Session instance singleton, instrumentedSession, so that URLSession will be instrumented
let myConfiguration = URLSessionConfiguration.af.default
let instrumentedSession = Session(configuration: myConfiguration)
// replace mySession with instrumentedSession
mySession = instrumentedSession
// subsequent requests use updated mySession from instrumentedSession, so should be instrumented
let myUrl2 = URL(string: "https://www.google.com/?q=request%202")!
let urlRequest2 = URLRequest(url: myUrl2)
mySession?.request(urlRequest2 as URLRequestConvertible).response {
response in debugPrint(response)
}
}
// has instrumentedSession been created yet? Indeterminate. If not, this request won't be instrumented
let myUrl3 = URL(string: "https://www.google.com/?q=request%203")!
let urlRequest3 = URLRequest(url: myUrl3)
mySession?.request(urlRequest3 as URLRequestConvertible).response {
response in debugPrint(response)
}
return true
}
}

Xamarin Agent

Supported EnvironmentsNameSupported Version(s)
Operating System Android>= 2.3.3
iOS

>= 9

Architecture Xamarin.Android Supported CPU Architectures -
Apple 32-bit ARM, Apple 64-bit A7 - See 32/64-bit platform considerations for information regarding the correct architecture for your iOS version.-
Framework .NET - Mono>= 4.8
Crash Reporters Mobile RUM does not officially support 3rd-party crash reporters.N/A

Apple WatchKit Extension Environments

Not supported-
HTTP Libraries N/A - The Xamarin Agent does not support automatic instrumentation for network requests made with any library. You will need to manually instrument HTTP network requests regardless of what library is used.-

Cordova Plugin

Supported EnvironmentsNameSupported Versions
Operating SystemAndroid4.4 - 8.1
iOS>= 13
ArchitectureAndroid: arm64-v8a, armeabi, armeabi-v7a, mips, mips64, x86, and x86_64-
iOS: Apple 32-bit ARM, Apple 64-bit A7-
FrameworkApache Cordova>= 7
Java Runtime EnvironmentJava17
Crash ReportersMobile RUM does not officially support 3rd-party crash reporters.N/A
Apple WatchKit Extension EnvironmentsNot supported-
HTTP Libraries

Android:

  • HttpURLConnection/HttpsURLConnection
  • HttpClient
  • OkHttp
  • ch.boye.httpclientandroidlib
-

iOS:

  • NSURLConnection
  • NSURLSession
-

React Native Agent

Supported EnvironmentsNameSupported Version(s)
Operating System Android>= 4.1 (with React Native Agent >= 20.10.1)
iOS

>= 11 (with React Native Agent >= 20.10.1)

Architecture

Android: arm64-v8a, armeabi, armeabi-v7a, mips, mips64, x86, and x86_64

-
iOS: Apple 64-bit A7 (with React Native Agent >= 20.10.1)-
Framework React Native

>= 0.60 and <= 0.70.6 (with React Native Agent >= 20.10.1)

>= 0.60 and <= 0.72.5 (with React Native Agent >= 24.1.0)

< 0.60 (with React Native Agent 20.7.0)

Crash Reporters Mobile RUM does not officially support 3rd-party crash reporters.N/A

Apple WatchKit Extension Environments

Not supported-
HTTP Libraries

Android:

  • HttpURLConnection / HttpsURLConnection
  • HttpClient
  • OkHttp
  • ch.boye.httpclientandroidlib
-

iOS:

  • NSURLConnection
  • NSURLSession
-