@dynatrace/react-native-plugin 2.273.1 → 2.277.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +155 -41
  2. package/android/build.gradle +1 -1
  3. package/files/plugin.gradle +1 -1
  4. package/index.js +2 -0
  5. package/ios/DynatraceRNBridge.m +1 -1
  6. package/ios/lib/Dynatrace.xcframework/Info.plist +5 -5
  7. package/ios/lib/Dynatrace.xcframework/ios-arm64/Dynatrace.framework/Dynatrace +0 -0
  8. package/ios/lib/Dynatrace.xcframework/ios-arm64/Dynatrace.framework/Headers/Dynatrace.h +1 -1
  9. package/ios/lib/Dynatrace.xcframework/ios-arm64/Dynatrace.framework/Info.plist +0 -0
  10. package/ios/lib/Dynatrace.xcframework/ios-arm64/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  11. package/ios/lib/Dynatrace.xcframework/ios-arm64/Dynatrace.framework/Modules/Dynatrace.swiftmodule/arm64-apple-ios.abi.json +1 -1
  12. package/ios/lib/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Dynatrace +0 -0
  13. package/ios/lib/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Headers/Dynatrace.h +1 -1
  14. package/ios/lib/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Info.plist +0 -0
  15. package/ios/lib/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  16. package/ios/lib/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  17. package/ios/lib/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/arm64-apple-ios-simulator.abi.json +1 -1
  18. package/ios/lib/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/x86_64-apple-ios-simulator.abi.json +1 -1
  19. package/ios/lib/Dynatrace.xcframework/ios-arm64_x86_64-simulator/Dynatrace.framework/_CodeSignature/CodeResources +15 -15
  20. package/ios/lib/Dynatrace.xcframework/tvos-arm64/Dynatrace.framework/Dynatrace +0 -0
  21. package/ios/lib/Dynatrace.xcframework/tvos-arm64/Dynatrace.framework/Headers/Dynatrace.h +1 -1
  22. package/ios/lib/Dynatrace.xcframework/tvos-arm64/Dynatrace.framework/Info.plist +0 -0
  23. package/ios/lib/Dynatrace.xcframework/tvos-arm64/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/arm64-apple-tvos.swiftsourceinfo +0 -0
  24. package/ios/lib/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Dynatrace +0 -0
  25. package/ios/lib/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Headers/Dynatrace.h +1 -1
  26. package/ios/lib/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Info.plist +0 -0
  27. package/ios/lib/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/arm64-apple-tvos-simulator.swiftsourceinfo +0 -0
  28. package/ios/lib/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/Modules/Dynatrace.swiftmodule/Project/x86_64-apple-tvos-simulator.swiftsourceinfo +0 -0
  29. package/ios/lib/Dynatrace.xcframework/tvos-arm64_x86_64-simulator/Dynatrace.framework/_CodeSignature/CodeResources +11 -11
  30. package/lib/instrumentor/DynatraceInstrumentation.js +1 -1
  31. package/lib/instrumentor/base/Application.js +4 -3
  32. package/lib/instrumentor/base/Dynatrace.js +27 -27
  33. package/lib/instrumentor/base/DynatraceInternal.js +2 -3
  34. package/lib/instrumentor/base/DynatraceRootAction.js +3 -3
  35. package/lib/instrumentor/base/ErrorHandler.js +1 -1
  36. package/lib/instrumentor/base/Logger.js +2 -2
  37. package/lib/instrumentor/base/Touchable.js +3 -3
  38. package/lib/instrumentor/base/configuration/Configuration.js +13 -18
  39. package/lib/instrumentor/base/configuration/ConfigurationBuilder.js +56 -0
  40. package/lib/instrumentor/base/configuration/ConfigurationDefaults.js +2 -10
  41. package/lib/instrumentor/base/configuration/ConfigurationHandler.js +15 -0
  42. package/lib/instrumentor/base/configuration/ConfigurationPreset.js +23 -0
  43. package/lib/instrumentor/base/configuration/ManualStartupConfiguration.js +6 -4
  44. package/lib/react/Component.js +6 -6
  45. package/lib/react-navigation/ReactNavigation.js +22 -0
  46. package/package.json +1 -168
  47. package/scripts/Config.js +3 -0
  48. package/typings/react-native-dynatrace.d.ts +230 -3
  49. package/lib/instrumentor/base/configuration/AutoStartupConfiguration.js +0 -28
  50. package/lib/instrumentor/base/configuration/interface/IAutoConfiguration.js +0 -2
  51. /package/lib/instrumentor/base/configuration/{interface/IManualConfiguration.js → IConfiguration.js} +0 -0
package/README.md CHANGED
@@ -17,8 +17,8 @@ If you want to start using this plugin and are not a Dynatrace customer yet, hea
17
17
  * Typescript bindings to add manual instrumentation
18
18
 
19
19
  ## Requirements
20
- * React >= 16.8
21
- * React Native >= 0.59
20
+ * React v16.8 or newer
21
+ * React Native v0.59 or newer
22
22
  * For Android users:
23
23
  * SDK version 21+
24
24
  * Gradle version 6.1.1+ ([How to update?](#updating-to-gradle-6))
@@ -29,8 +29,8 @@ If you want to start using this plugin and are not a Dynatrace customer yet, hea
29
29
  ## Agent Versions
30
30
  This agent versions are configured in this plugin:
31
31
 
32
- * Android Agent: 8.273.1.1003
33
- * iOS Agent: 8.273.1.1006
32
+ * Android Agent: 8.277.1.1003
33
+ * iOS Agent: 8.277.1.1004
34
34
 
35
35
  ## Quick Setup
36
36
 
@@ -47,6 +47,7 @@ This agent versions are configured in this plugin:
47
47
  * [Monitor a Component](#monitor-a-component)
48
48
  * [Create Custom Action](#create-custom-actions)
49
49
  * [Cancel Actions](#cancel-actions)
50
+ * [Manual Web Request Tagging](#manual-web-request-tagging)
50
51
  * [Report Values](#report-values)
51
52
  * [Report Stacktrace](#report-an-error-stacktrace)
52
53
  * [Identify User](#identify-a-user)
@@ -87,12 +88,12 @@ This agent versions are configured in this plugin:
87
88
 
88
89
  # Quick Setup
89
90
 
90
- > **Note**: If you are upgrading to React Native 0.70+ or using the @react-native-community/cli 9.x+ version, be aware that our automated script running before every start/run-android/run-ios command is no longer working. When your *dynatrace.config.js* changed be sure to execute `npx instrumentDynatrace` beforehand.
91
+ > **Note**: If you are upgrading to React Native v0.70 (or newer) or using the @react-native-community/cli 9.x+ version, be aware that our automated script running before every start/run-android/run-ios command is no longer working. When your *dynatrace.config.js* changed be sure to execute `npx instrumentDynatrace` beforehand.
91
92
 
92
93
  ## 1. Install the plugin
93
94
  1. Install the plugin by calling:
94
- - => RN 0.60.0 : `npm install @dynatrace/react-native-plugin`
95
- - < RN 0.60.0 : `react-native install @dynatrace/react-native-plugin`.
95
+ - React Native v0.60 or newer : `npm install @dynatrace/react-native-plugin`
96
+ - React Native v0.59.x : `react-native install @dynatrace/react-native-plugin`.
96
97
  2. **iOS only :** If you use pods, you need to go into your `ios` directory and execute `pod install` to install the new Dynatrace dependency to your xCode project.
97
98
 
98
99
  ### Troubleshooting
@@ -104,17 +105,44 @@ This agent versions are configured in this plugin:
104
105
 
105
106
  Depending on your React Native version, you will need to use a different way to register the transformer. If you don't know the version, enter `react-native --version` in your terminal.
106
107
 
107
- The following configuration must be added. Any configuration that is already in the file can remain. If you already have a registered transformer, [create a custom transformer](#using-a-second-transformer-besides-the-dynatrace-transformer) that is calling several transformers.
108
+ The following configuration must be added. If you already have a babel transformer (babelTransformerPath) in place, you need to [use the upstreamTransformer property in dynatrace.config.js](#using-a-second-transformer-besides-the-dynatrace-transformer) to use a transformer besides our dynatrace transformer.
108
109
 
109
- In your project's root directory, create or extend `metro.config.js` so that it contains the `transformer.babelTransformerPath` property:
110
+ In your project's root directory, create or extend `metro.config.js` so that it contains the following configuration properties `transformer.babelTransformerPath` and `reporter`:
111
+
112
+ #### For React Native v0.72.1 or newer
110
113
 
111
114
  ```js
112
- module.exports = {
115
+ const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');
116
+ const defaultConfig = getDefaultConfig(__dirname);
117
+
118
+ /**
119
+ * Metro configuration
120
+ * https://facebook.github.io/metro/docs/configuration
121
+ *
122
+ * @type {import('metro-config').MetroConfig}
123
+ */
124
+ const config = {
113
125
  transformer: {
114
- babelTransformerPath: require.resolve('@dynatrace/react-native-plugin/lib/dynatrace-transformer')
126
+ babelTransformerPath: require.resolve(
127
+ '@dynatrace/react-native-plugin/lib/dynatrace-transformer',
128
+ ),
115
129
  },
130
+ reporter: require('@dynatrace/react-native-plugin/lib/dynatrace-reporter'),
131
+ };
132
+
133
+ module.exports = mergeConfig(defaultConfig, config);
134
+ ```
116
135
 
117
- reporter: require("@dynatrace/react-native-plugin/lib/dynatrace-reporter")
136
+ #### For React Native v0.59 or newer
137
+
138
+ ```js
139
+ module.exports = {
140
+ transformer: {
141
+ babelTransformerPath: require.resolve(
142
+ '@dynatrace/react-native-plugin/lib/dynatrace-transformer'
143
+ )
144
+ },
145
+ reporter: require('@dynatrace/react-native-plugin/lib/dynatrace-reporter'),
118
146
  };
119
147
  ```
120
148
 
@@ -134,8 +162,8 @@ Depending on your version of Metro or Expo (if used), your babel configuration `
134
162
 
135
163
  The changes have to be done in the following cases:
136
164
 
137
- - metro >= 0.72.0: https://github.com/facebook/metro/releases/tag/v0.72.0
138
- - expo >= 44.0.0 or babel-preset-expo >= 9.0.0: https://github.com/expo/expo/blob/main/packages/babel-preset-expo/CHANGELOG.md#900--2021-12-03
165
+ - metro v0.72.0 or newer: https://github.com/facebook/metro/releases/tag/v0.72.0
166
+ - expo v44.0.0 or newer or babel-preset-expo v9.0.0 or newer: https://github.com/expo/expo/blob/main/packages/babel-preset-expo/CHANGELOG.md#900--2021-12-03
139
167
 
140
168
  The required changes for the versions above can be found [here](#react-automatic-runtime).
141
169
 
@@ -190,9 +218,9 @@ module.exports = {
190
218
  Example of a startup call:
191
219
 
192
220
  ```js
193
- import { Dynatrace, ManualStartupConfiguration } from '@dynatrace/react-native-plugin';
221
+ import { Dynatrace, ConfigurationBuilder } from '@dynatrace/react-native-plugin';
194
222
 
195
- Dynatrace.start(new ManualStartupConfiguration("beaconUrl", "applicationId"));
223
+ Dynatrace.start(new ConfigurationBuilder("beaconUrl", "applicationId").buildConfiguration());
196
224
  ```
197
225
 
198
226
  For more details see the section about [startup API](#plugin-startup).
@@ -209,21 +237,23 @@ import { Dynatrace, Platform } from '@dynatrace/react-native-plugin';
209
237
 
210
238
  ### Plugin startup
211
239
 
212
- The manual startup of the plugin is triggered via the `start(configuration: ManualStartupConfiguration)` method. If you configured `dynatrace.config.js` for manual startup then the plugin doesn't send any data when not calling this function. Besides the application id and the beacon URL, thhere are several optional configuration parameters, which are shown in the table below:
240
+ The manual startup of the plugin is triggered via the `start(configuration: IConfiguration)` method. If you configured `dynatrace.config.js` for manual startup then the plugin doesn't send any data when not calling this function. Besides the application id and the beacon URL, there are several optional configuration parameters, which are shown in the table below.
213
241
 
214
242
  ```js
215
- new ManualStartupConfiguration(
216
- beaconUrl,
217
- applicationId,
218
- reportCrash: true,
219
- logLevel: LogLevel.Info,
220
- lifecycleUpdate: false,
221
- userOptIn: false,
222
- actionNamePrivacy: false,
223
- bundleName: undefined
224
- )
243
+ const configurationBuilder = new ConfigurationBuilder("beaconUrl", "applicationId");
244
+
245
+ configurationBuilder.withCrashReporting(true)
246
+ .withLogLevel(LogLevel.Info)
247
+ .withLifecycleUpdate(false)
248
+ .withUserOptIn(false)
249
+ .withActionNamePrivacy(false)
250
+ .withBundleName(undefined);
251
+
252
+ configurationBuilder.buildConfiguration();
225
253
  ```
226
254
 
255
+ **Info**: The values used in the function calls for the parameters are also their default value.
256
+
227
257
  | Property name | Type | Default | Description |
228
258
  |------------------|--------|-------------|---------------------------------------------------|
229
259
  |beaconUrl |string |undefined |Identifies your environment within Dynatrace. This property is mandatory for [manual startup](#manual-oneagent-startup). OneAgent issues an error when the key isn't present.|
@@ -235,11 +265,9 @@ new ManualStartupConfiguration(
235
265
  |actionNamePrivacy|boolean|false|Activates a privacy mode especially for Touchables and Buttons. Setting this option to true means that a name for the control will no longer be shown, e.g. "Touch on Button". When setting a dtActionName onto the component this setting will be ignored.
236
266
  |bundleName|string|undefined|Should be used only if you have a multiple bundle setup where you load several .bundle files within your React Native application. Enter the name of your bundle. This should be unique in comparison to your other bundle names. This will ensure that actions coming from different bundles will not interfere with each other.
237
267
 
238
-
239
-
240
- **Note**: The values used for the parameters are their default value.
241
-
242
- **Attention:** Please use those parameters only when doing a manual startup. If you want to do an automated startup, please configure the properties via the [auto startup configuration](#manual-startup-counterparts). You will find a list which explains all the counterparts for the available options here.
268
+ **Attention:**
269
+ * Keep in mind that configuration within the `dynatrace.config.js` file is the basis, even for manual startup. When we look at the lifecycleUpdate property: Per default if not used, it is false. If enabled (set to true) in `dynatrace.config.js` file, this will be also true if manual startup is used. You can still override this behavior by calling `ConfigurationBuilder.withLifecycleUpdate(false)`.
270
+ * Please use those parameters only when doing a manual startup. If you want to do an automated startup, please configure the properties via the [auto startup configuration](#manual-startup-counterparts). You will find a list which explains all the counterparts for the available options here.
243
271
 
244
272
  ### Monitor a Component
245
273
 
@@ -312,6 +340,31 @@ myAction.cancel();
312
340
  myAction.leaveAction();
313
341
  ```
314
342
 
343
+ ### Manual Web Request Tagging
344
+
345
+ You can manually tag and time your web requests. With the API shown below, you are able to manually capture the web requests of an http framework/library.
346
+
347
+ **Note:**
348
+ Using this API will force the request to be added to the action that is manually created.
349
+
350
+ ```js
351
+ let url = 'https://www.dynatrace.com';
352
+ // You can also use enterAutoAction if desired
353
+ let action = Dynatrace.enterManualAction("Manual Web Request");
354
+ let tag = await action.getRequestTag(url);
355
+ let timing = new DynatraceWebRequestTiming(url, tag);
356
+
357
+ try {
358
+ timing.startWebRequestTiming();
359
+ let axiosResponse = await axios.get(url);
360
+ timing.stopWebRequestTiming(axiosResponse.status, axiosResponse.data);
361
+ } catch (error) {
362
+ timing.stopWebRequestTiming(-1, error);
363
+ } finally {
364
+ action.leaveAction();
365
+ }
366
+ ```
367
+
315
368
  ### Report values
316
369
 
317
370
  For any open action you can report certain values. The following API is available for action:
@@ -556,7 +609,7 @@ npx configDynatrace [optional: config=...]
556
609
 
557
610
  ## Customizing paths for configuration
558
611
 
559
- > **Note:** This feature works directly on run-android, run-ios or start command only for > RN 60.1 & < RN 0.70.
612
+ > **Note:** This feature works directly on run-android, run-ios or start command only for React Native v0.60.1 or newer until v0.69.x.
560
613
 
561
614
  > **MacOS Users:** This feature is not working correctly on MacOS. Arguments are not passed between run-ios and starting the webserver. If you still want to use custom arguments you need to start the webserver first with custom arguments and later on executing run-ios, which will then no longer create a webserver as it is already running in background.
562
615
 
@@ -568,12 +621,12 @@ Our scripts assumes that the usual React Native project structure is given. The
568
621
 
569
622
  Examples:
570
623
 
571
- * RN 0.60.1:
624
+ * React Native v0.60.1 or newer:
572
625
  ```
573
626
  npx react-native run-android config=C:\SpecialFolderForDynatrace\dynatrace.config.js --port=2000
574
627
  ```
575
628
 
576
- * RN 0.70.0:
629
+ * React Native v0.70.0 or newer:
577
630
  ```
578
631
  npx instrumentDynatrace config=C:\SpecialFolderForDynatrace\dynatrace.config.js
579
632
  npx react-native run-android --port=2000
@@ -639,13 +692,13 @@ Once the above is completed, follow the steps from the [install plugin](#1-insta
639
692
  When you are ready to build, make sure that you use the `plist=` parameter when running the `npx instrumentDynatrace` or `npx react-native run-ios` commands for the tvOS scheme.
640
693
  Examples:
641
694
 
642
- Using React Native < 0.70 or < @react-native-community/cli 9.x:
695
+ Using React Native v0.69.x or lower and @react-native-community/cli v8.x or lower:
643
696
 
644
697
  ```js
645
698
  npx react-native run-ios --simulator "Apple TV" --scheme "ApplicationName-tvOS" plist=/path/to/application/ios/ApplicationName-tvOS/Info.plist
646
699
  ```
647
700
 
648
- Using React Native 0.70+ or @react-native-community/cli 9.x+:
701
+ Using React Native v0.70 or higher or @react-native-community/cli v9.x or higher:
649
702
 
650
703
  ```js
651
704
  // Update the Info.plist with the properties from the dynatrace.config.js file
@@ -962,7 +1015,7 @@ JavaScript:
962
1015
 
963
1016
  ## React Automatic Runtime
964
1017
 
965
- React introduced with React 17.x, React 16.14.0, React 15.7.0, and React 0.14.10 the automatic runtime which changes the JSX transformation (https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html).
1018
+ React introduced with React v17.x, React v16.14.0, React v15.7.0, and React v14.10 the automatic runtime which changes the JSX transformation (https://reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html).
966
1019
 
967
1020
  This impacts our instrumentation as well. To keep the instrumentation in place you need to change your babel configuration.
968
1021
 
@@ -1020,7 +1073,9 @@ module.exports = {
1020
1073
 
1021
1074
  If you want to register the Dynatrace transformer in your configuration and you already have a transformer in place, change the upstreaming transformer for the Dynatrace transformer.
1022
1075
 
1023
- This can be done via a configuration value in the `dynatrace.config.js` :
1076
+ This can be done via a configuration value in the `dynatrace.config.js`. The following example shows how the configuration might look like for the popular `react-native-svg-transformer`. Be aware that the following example is targeting *React Native v0.72.1* or newer.
1077
+
1078
+ #### dynatrace.config.js
1024
1079
 
1025
1080
  ```js
1026
1081
  // The `...` only indicates that there are other values as well, but we've omitted them in this example.
@@ -1033,6 +1088,56 @@ module.exports = {
1033
1088
  }
1034
1089
  ```
1035
1090
 
1091
+ #### metro.config.js for React Native v0.72.1 or newer
1092
+ ```js
1093
+ const {getDefaultConfig, mergeConfig} = require('@react-native/metro-config');
1094
+ const defaultConfig = getDefaultConfig(__dirname);
1095
+ const {assetExts, sourceExts} = defaultConfig.resolver;
1096
+
1097
+ /**
1098
+ * Metro configuration
1099
+ * https://facebook.github.io/metro/docs/configuration
1100
+ *
1101
+ * @type {import('metro-config').MetroConfig}
1102
+ */
1103
+ const config = {
1104
+ transformer: {
1105
+ babelTransformerPath: require.resolve(
1106
+ '@dynatrace/react-native-plugin/lib/dynatrace-transformer',
1107
+ ),
1108
+ },
1109
+ reporter: require('@dynatrace/react-native-plugin/lib/dynatrace-reporter'),
1110
+ resolver: {
1111
+ assetExts: assetExts.filter(ext => ext !== 'svg'),
1112
+ sourceExts: [...sourceExts, 'cjs', 'svg'],
1113
+ },
1114
+ };
1115
+
1116
+ module.exports = mergeConfig(defaultConfig, config);
1117
+ ```
1118
+
1119
+ #### metro.config.js for React Native v0.59 or newer
1120
+
1121
+ ```js
1122
+ const { getDefaultConfig } = require("metro-config");
1123
+
1124
+ module.exports = (async () => {
1125
+ const {
1126
+ resolver: { sourceExts, assetExts }
1127
+ } = await getDefaultConfig();
1128
+ return {
1129
+ transformer: {
1130
+ babelTransformerPath: require.resolve('@dynatrace/react-native-plugin/lib/dynatrace-transformer')
1131
+ },
1132
+ reporter: require('@dynatrace/react-native-plugin/lib/dynatrace-reporter'),
1133
+ resolver: {
1134
+ assetExts: assetExts.filter((ext) => ext !== "svg"),
1135
+ sourceExts: [...sourceExts, "cjs", "svg"]
1136
+ }
1137
+ };
1138
+ })();
1139
+ ```
1140
+
1036
1141
  ## Maven Central in top-level gradle file
1037
1142
 
1038
1143
  Because the Dynatrace Android agent now requires the MavenCentral repository, if either `jcenter()` or `mavenCentral()` is not added inside of **ALL** the repositories blocks via the [top-level build.gradle](https://dt-url.net/jm610pso), the build will fail.
@@ -1050,13 +1155,13 @@ JCenter has noted its [sunset](https://jfrog.com/blog/into-the-sunset-bintray-jc
1050
1155
 
1051
1156
  Updating Gradle only affects your Android build. To update your project to Gradle 6, modify the following 3 files in your Android folder.
1052
1157
 
1053
- - `ProjectFolder\android\gradle\wrapper\gradle-wrapper.properties` Update the distributionUrl to get a higher gradle version.
1158
+ - `ProjectFolder\android\gradle\wrapper\gradle-wrapper.properties` Update the distributionUrl to get a newer gradle version.
1054
1159
 
1055
1160
  ```
1056
1161
  distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
1057
1162
  ```
1058
1163
 
1059
- - `ProjectFolder\android\build.gradle` Update the version of your Android gradle plugin (minimum 4.x) as Gradle 6 needs a higher one. To get the newer versions, add `google()` in your repositories. Example of a build.gradle file:
1164
+ - `ProjectFolder\android\build.gradle` Update the version of your Android gradle plugin (minimum 4.x) as Gradle 6 needs a newer one. To get the newer versions, add `google()` in your repositories. Example of a build.gradle file:
1060
1165
 
1061
1166
  ```
1062
1167
  buildscript {
@@ -1169,6 +1274,15 @@ If you are struggling with a problem, submit a support ticket to Dynatrace (supp
1169
1274
  <br/><br/>
1170
1275
  ## Changelog
1171
1276
 
1277
+ 2.277.1
1278
+ * Update Android (8.277.1.1003) & iOS Agent (8.277.1.1004)
1279
+ * Introduced `ConfigurationBuilder` for Manual Startup
1280
+ * Deprecating `ManualStartupConfiguration` for Manual Startup
1281
+
1282
+ 2.275.1
1283
+ * Update iOS Agent (8.275.1.1006)
1284
+ * Add documentation for manually tagging web requests
1285
+
1172
1286
  2.273.1
1173
1287
  * Update Android (8.273.1.1003) & iOS Agent (8.273.1.1006)
1174
1288
  * Crash handler initialization happens earlier in the application
@@ -36,7 +36,7 @@ repositories {
36
36
  }
37
37
 
38
38
  dependencies {
39
- implementation 'com.dynatrace.agent:agent-android:8.273.1.1003'
39
+ implementation 'com.dynatrace.agent:agent-android:8.277.1.1003'
40
40
  implementation "com.facebook.react:react-native:${safeExtGet('reactNative', '+')}"
41
41
  }
42
42
 
@@ -1,3 +1,3 @@
1
1
  dependencies {
2
- classpath 'com.dynatrace.tools.android:gradle-plugin:8.273.1.1003'
2
+ classpath 'com.dynatrace.tools.android:gradle-plugin:8.277.1.1003'
3
3
  }
package/index.js CHANGED
@@ -1,8 +1,10 @@
1
1
  export { Dynatrace } from './lib/instrumentor/base/Dynatrace';
2
2
  export { DataCollectionLevel } from './lib/instrumentor/base/model/DataCollectionLevel';
3
3
  export { ManualStartupConfiguration } from './lib/instrumentor/base/configuration/ManualStartupConfiguration';
4
+ export { ConfigurationBuilder } from './lib/instrumentor/base/configuration/ConfigurationBuilder';
4
5
  export { Platform } from './lib/instrumentor/base/model/Platform';
5
6
  export { LogLevel } from './lib/instrumentor/base/model/LogLevel';
6
7
  export { ApplicationHandler } from './lib/instrumentor/base/Application';
7
8
  export { UserPrivacyOptions } from './lib/instrumentor/base/UserPrivacyOptions';
9
+ export { DynatraceWebRequestTiming } from './lib/instrumentor/base/DynatraceWebRequestTiming';
8
10
  export { createElement } from './lib/CreateElement';
@@ -222,7 +222,7 @@ RCT_EXPORT_METHOD(reportDoubleValueInAction:(nonnull NSString *)actionKey withNa
222
222
  }
223
223
  }
224
224
 
225
- RCT_EXPORT_METHOD(getRequestTag:(nonnull NSNumber *)actionKey withUrl:(NSString *)url getRequestTagWithResolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
225
+ RCT_EXPORT_METHOD(getRequestTag:(nonnull NSString *)actionKey withUrl:(NSString *)url findEventsWithResolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject)
226
226
  {
227
227
  DTXAction* action = [self getAction:actionKey];
228
228
  resolve([action getTagForURL:[NSURL URLWithString:url]]);
@@ -6,30 +6,30 @@
6
6
  <array>
7
7
  <dict>
8
8
  <key>LibraryIdentifier</key>
9
- <string>ios-arm64_x86_64-simulator</string>
9
+ <string>ios-arm64</string>
10
10
  <key>LibraryPath</key>
11
11
  <string>Dynatrace.framework</string>
12
12
  <key>SupportedArchitectures</key>
13
13
  <array>
14
14
  <string>arm64</string>
15
- <string>x86_64</string>
16
15
  </array>
17
16
  <key>SupportedPlatform</key>
18
17
  <string>ios</string>
19
- <key>SupportedPlatformVariant</key>
20
- <string>simulator</string>
21
18
  </dict>
22
19
  <dict>
23
20
  <key>LibraryIdentifier</key>
24
- <string>ios-arm64</string>
21
+ <string>ios-arm64_x86_64-simulator</string>
25
22
  <key>LibraryPath</key>
26
23
  <string>Dynatrace.framework</string>
27
24
  <key>SupportedArchitectures</key>
28
25
  <array>
29
26
  <string>arm64</string>
27
+ <string>x86_64</string>
30
28
  </array>
31
29
  <key>SupportedPlatform</key>
32
30
  <string>ios</string>
31
+ <key>SupportedPlatformVariant</key>
32
+ <string>simulator</string>
33
33
  </dict>
34
34
  <dict>
35
35
  <key>LibraryIdentifier</key>
@@ -1,5 +1,5 @@
1
1
  // Dynatrace.h
2
- // Version: 8.273.1.1006
2
+ // Version: 8.277.1.1004
3
3
  //
4
4
  // These materials contain confidential information and
5
5
  // trade secrets of Dynatrace Corporation. You shall
@@ -572,7 +572,7 @@
572
572
  },
573
573
  "ConstValues": [
574
574
  {
575
- "filePath": "\/opt\/jenkins\/workspace\/gent_ios-agent_release_8.273.x_3\/adk\/DynatraceUEM\/Dynatrace\/SwiftUIExtensions.swift",
575
+ "filePath": "\/opt\/jenkins\/workspace\/eAgent_ios-agent_release_8.277.x\/adk\/DynatraceUEM\/Dynatrace\/SwiftUIExtensions.swift",
576
576
  "kind": "BooleanLiteral",
577
577
  "offset": 1277,
578
578
  "length": 4,
@@ -1,5 +1,5 @@
1
1
  // Dynatrace.h
2
- // Version: 8.273.1.1006
2
+ // Version: 8.277.1.1004
3
3
  //
4
4
  // These materials contain confidential information and
5
5
  // trade secrets of Dynatrace Corporation. You shall
@@ -572,7 +572,7 @@
572
572
  },
573
573
  "ConstValues": [
574
574
  {
575
- "filePath": "\/opt\/jenkins\/workspace\/gent_ios-agent_release_8.273.x_3\/adk\/DynatraceUEM\/Dynatrace\/SwiftUIExtensions.swift",
575
+ "filePath": "\/opt\/jenkins\/workspace\/eAgent_ios-agent_release_8.277.x\/adk\/DynatraceUEM\/Dynatrace\/SwiftUIExtensions.swift",
576
576
  "kind": "BooleanLiteral",
577
577
  "offset": 1277,
578
578
  "length": 4,
@@ -572,7 +572,7 @@
572
572
  },
573
573
  "ConstValues": [
574
574
  {
575
- "filePath": "\/opt\/jenkins\/workspace\/gent_ios-agent_release_8.273.x_3\/adk\/DynatraceUEM\/Dynatrace\/SwiftUIExtensions.swift",
575
+ "filePath": "\/opt\/jenkins\/workspace\/eAgent_ios-agent_release_8.277.x\/adk\/DynatraceUEM\/Dynatrace\/SwiftUIExtensions.swift",
576
576
  "kind": "BooleanLiteral",
577
577
  "offset": 1277,
578
578
  "length": 4,
@@ -10,7 +10,7 @@
10
10
  </data>
11
11
  <key>Headers/Dynatrace.h</key>
12
12
  <data>
13
- tA+O5/8g6/rB2FLe17KI5yzePow=
13
+ s/CPxOz0ofQiidcBNcdBPLXXThk=
14
14
  </data>
15
15
  <key>Headers/DynatraceSwiftUI.h</key>
16
16
  <data>
@@ -22,19 +22,19 @@
22
22
  </data>
23
23
  <key>Info.plist</key>
24
24
  <data>
25
- kWZvFuyywJXfcsKIdwFdv4vMqRY=
25
+ ZmnoNgDWYeKZc+t7wIT8L3aBePQ=
26
26
  </data>
27
27
  <key>Modules/Dynatrace.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo</key>
28
28
  <data>
29
- nGYd6fcFzsinN5v2YD46M0xgw6Q=
29
+ tGP5yAsQSe6bm5Ut4G1xRfqi6cA=
30
30
  </data>
31
31
  <key>Modules/Dynatrace.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo</key>
32
32
  <data>
33
- M9xjtk3KdqoyzyFZSeJ/7kKIv6A=
33
+ +JWrUnYV9oLkLvbAmBA9Vn5XXGM=
34
34
  </data>
35
35
  <key>Modules/Dynatrace.swiftmodule/arm64-apple-ios-simulator.abi.json</key>
36
36
  <data>
37
- VMhlBOh0wRfx9mVKACsYqvY5YEo=
37
+ 6VdRc/zYV0Jgdr/u6wegAUWiIeE=
38
38
  </data>
39
39
  <key>Modules/Dynatrace.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
40
40
  <data>
@@ -50,11 +50,11 @@
50
50
  </data>
51
51
  <key>Modules/Dynatrace.swiftmodule/arm64-apple-ios-simulator.swiftmodule</key>
52
52
  <data>
53
- uJJE3LLBHBxIIJbvpm+moYjOiRM=
53
+ GJY8K9ndTG9NObUkCA9DaYWO/do=
54
54
  </data>
55
55
  <key>Modules/Dynatrace.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
56
56
  <data>
57
- VMhlBOh0wRfx9mVKACsYqvY5YEo=
57
+ 6VdRc/zYV0Jgdr/u6wegAUWiIeE=
58
58
  </data>
59
59
  <key>Modules/Dynatrace.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
60
60
  <data>
@@ -70,7 +70,7 @@
70
70
  </data>
71
71
  <key>Modules/Dynatrace.swiftmodule/x86_64-apple-ios-simulator.swiftmodule</key>
72
72
  <data>
73
- 3RB2vgFJJoAaw29phPfi0xUefD0=
73
+ xAZXVgAZVrAK+OYm3m2IHSjSstM=
74
74
  </data>
75
75
  <key>Modules/module.modulemap</key>
76
76
  <data>
@@ -90,7 +90,7 @@
90
90
  <dict>
91
91
  <key>hash2</key>
92
92
  <data>
93
- v6xgR0hc67MYVeOJrAPktN4CaweOsXdttN24LOG+1Uk=
93
+ 6xyhjqcVDTpmT/YyJlsrIDAex1CRcWeyFMI7TVdBFqE=
94
94
  </data>
95
95
  </dict>
96
96
  <key>Headers/DynatraceSwiftUI.h</key>
@@ -111,21 +111,21 @@
111
111
  <dict>
112
112
  <key>hash2</key>
113
113
  <data>
114
- nXfxDURihDle3OD/erhsemBn1KUj4m1V1kRwf5goA+0=
114
+ +TdP+N6msySUOm9F4VpckPHV7sXqOma88mHJ5Hbm6yA=
115
115
  </data>
116
116
  </dict>
117
117
  <key>Modules/Dynatrace.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo</key>
118
118
  <dict>
119
119
  <key>hash2</key>
120
120
  <data>
121
- U67wZ+8OGsRS00EtjZKyZeNSMRzdcC3y240X98tmfNI=
121
+ ridurfiG9ezake3Y1qJngfc37pDgOpDY/WK1QWRJhd4=
122
122
  </data>
123
123
  </dict>
124
124
  <key>Modules/Dynatrace.swiftmodule/arm64-apple-ios-simulator.abi.json</key>
125
125
  <dict>
126
126
  <key>hash2</key>
127
127
  <data>
128
- gSWc0s5BDfNCffdhXxZhG54fI23ZyJGe8Ed+KEO3ZG4=
128
+ jgn2J5MfhfuhsVU0Ug19b4Osli63lNT8ep03YbTzXc8=
129
129
  </data>
130
130
  </dict>
131
131
  <key>Modules/Dynatrace.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface</key>
@@ -153,14 +153,14 @@
153
153
  <dict>
154
154
  <key>hash2</key>
155
155
  <data>
156
- 1QWUoSDXybNA6a6kZa2g1CVR4AN77dXt6IJC3DjQY4M=
156
+ wqXeIP7CQxnUVUHhsWz3u6M3nvOXhgS+xKNwDP9DqVU=
157
157
  </data>
158
158
  </dict>
159
159
  <key>Modules/Dynatrace.swiftmodule/x86_64-apple-ios-simulator.abi.json</key>
160
160
  <dict>
161
161
  <key>hash2</key>
162
162
  <data>
163
- gSWc0s5BDfNCffdhXxZhG54fI23ZyJGe8Ed+KEO3ZG4=
163
+ jgn2J5MfhfuhsVU0Ug19b4Osli63lNT8ep03YbTzXc8=
164
164
  </data>
165
165
  </dict>
166
166
  <key>Modules/Dynatrace.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface</key>
@@ -188,7 +188,7 @@
188
188
  <dict>
189
189
  <key>hash2</key>
190
190
  <data>
191
- MrPs4lpyt7q0Ok/ZasdlRz8+2RRiFSUuTTuAb9aKWzw=
191
+ 7kGLR3WL9iWXH8jH9eXOcsHSM/pY94//Gm2r7g9kDY4=
192
192
  </data>
193
193
  </dict>
194
194
  <key>Modules/module.modulemap</key>
@@ -1,5 +1,5 @@
1
1
  // Dynatrace.h
2
- // Version: 8.273.1.1006
2
+ // Version: 8.277.1.1004
3
3
  //
4
4
  // These materials contain confidential information and
5
5
  // trade secrets of Dynatrace Corporation. You shall
@@ -1,5 +1,5 @@
1
1
  // Dynatrace.h
2
- // Version: 8.273.1.1006
2
+ // Version: 8.277.1.1004
3
3
  //
4
4
  // These materials contain confidential information and
5
5
  // trade secrets of Dynatrace Corporation. You shall