@dynatrace/react-native-plugin 2.287.1 → 2.287.3
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.
- package/README.md +3 -1
- package/ios/DynatraceRNBridge.h +2 -10
- package/ios/{DynatraceRNBridge.m → DynatraceRNBridge.mm} +27 -36
- package/ios/DynatraceRNBridge.xcodeproj/project.pbxproj +6 -6
- package/lib/instrumentor/base/Application.js +1 -1
- package/lib/instrumentor/base/Dynatrace.js +1 -1
- package/lib/instrumentor/base/Touchable.js +1 -1
- package/lib/instrumentor/base/configuration/Configuration.js +18 -0
- package/lib/instrumentor/base/configuration/ManualStartupConfiguration.js +11 -0
- package/lib/instrumentor/base/model/LogLevel.js +10 -1
- package/package.json +2 -2
- package/react-native-dynatrace.podspec +1 -1
package/README.md
CHANGED
|
@@ -1320,9 +1320,11 @@ If you are struggling with a problem, submit a support ticket to Dynatrace (supp
|
|
|
1320
1320
|
<br/><br/>
|
|
1321
1321
|
## Changelog
|
|
1322
1322
|
|
|
1323
|
-
2.287.
|
|
1323
|
+
2.287.3
|
|
1324
1324
|
* Update Android (8.287.1.1006) & iOS Agent (8.287.2.1009)
|
|
1325
1325
|
* Added request and response size to [manual web request tagging](#manual-web-request-tagging)
|
|
1326
|
+
* Improved logging of configuration at startup
|
|
1327
|
+
* Fixed dtActionName when using ActionNamePrivacy
|
|
1326
1328
|
|
|
1327
1329
|
2.285.2
|
|
1328
1330
|
* Fixed bridge module issue for older React Native versions (< 0.65.0)
|
package/ios/DynatraceRNBridge.h
CHANGED
|
@@ -5,19 +5,10 @@
|
|
|
5
5
|
#ifndef DynatraceRNBridge_h
|
|
6
6
|
#define DynatraceRNBridge_h
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
// For Turbo Module
|
|
11
|
-
#ifdef RCT_NEW_ARCH_ENABLED
|
|
12
|
-
#import "DynatraceBridgeSpec.h"
|
|
13
|
-
|
|
14
|
-
@interface DynatraceRNBridge : NSObject <DynatraceBridgeSpec>
|
|
15
|
-
// For Legacy Native Module
|
|
16
|
-
#else
|
|
8
|
+
#import <Dynatrace/Dynatrace.h>
|
|
17
9
|
#import <React/RCTBridgeModule.h>
|
|
18
10
|
|
|
19
11
|
@interface DynatraceRNBridge : NSObject <RCTBridgeModule>
|
|
20
|
-
#endif
|
|
21
12
|
- (void) newAction:(NSString *)name key:(NSString *)key parentAction:(DTXAction *)parentAction;
|
|
22
13
|
- (DTXAction *) getAction:(NSString *)key;
|
|
23
14
|
- (BOOL) shouldWorkOnIosWithPlatform: (NSString *) platform;
|
|
@@ -26,6 +17,7 @@
|
|
|
26
17
|
typedef enum : NSUInteger {
|
|
27
18
|
DTXActionPlatformJavaScript = 1,
|
|
28
19
|
DTXActionPlatformXamarin,
|
|
20
|
+
DTXActionPlatformCustom = 10
|
|
29
21
|
} DTXActionPlatformType;
|
|
30
22
|
|
|
31
23
|
@interface DTXAction (ExternalAgents)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//
|
|
2
|
-
// DynatraceRNBridge.
|
|
2
|
+
// DynatraceRNBridge.mm
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
#import "DynatraceRNBridge.h"
|
|
@@ -168,7 +168,7 @@ RCT_EXPORT_METHOD(reportError:(NSString *)errorName errorValue:(NSString *)error
|
|
|
168
168
|
{
|
|
169
169
|
if ([self shouldWorkOnIosWithPlatform: platform])
|
|
170
170
|
{
|
|
171
|
-
[DTXAction reportExternalErrorForPlatformType
|
|
171
|
+
[DTXAction reportExternalErrorForPlatformType:DTXActionPlatformCustom errorName:errorName errorValue:errorValue reason:errorReason stacktrace:stacktrace];
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
|
|
@@ -179,7 +179,7 @@ RCT_EXPORT_METHOD(reportCrash:(NSString *)errorName errorReason:(NSString *)erro
|
|
|
179
179
|
if(isRealError){
|
|
180
180
|
[DTXAction reportExternalCrashForPlatformType:DTXActionPlatformJavaScript crashName:errorName reason:errorReason stacktrace:stacktrace];
|
|
181
181
|
}else{
|
|
182
|
-
[DTXAction reportExternalCrashForPlatformType
|
|
182
|
+
[DTXAction reportExternalCrashForPlatformType:DTXActionPlatformCustom crashName:errorName reason:errorReason stacktrace:stacktrace];
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
// We ignore the newSession parameter and always end the session as the iOS agent has no troubles with this behavior
|
|
@@ -187,22 +187,24 @@ RCT_EXPORT_METHOD(reportCrash:(NSString *)errorName errorReason:(NSString *)erro
|
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
|
|
190
|
-
RCT_EXPORT_METHOD(storeCrash:(NSString *)crashName reason:(NSString *)reason stacktrace:(NSString *)stacktrace
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
190
|
+
RCT_EXPORT_METHOD(storeCrash:(NSString *)crashName reason:(NSString *)reason stacktrace:(NSString *)stacktrace newSession:(BOOL)newSession) {
|
|
191
|
+
NSString* dirPath = [[[[NSFileManager defaultManager] URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask] firstObject] path];
|
|
192
|
+
dirPath = [dirPath stringByAppendingPathComponent:@"DTXExternalCrashes"];
|
|
193
|
+
// Create the Application Support/DTXExternalCrashes directory if it does not exist
|
|
194
|
+
if (![[NSFileManager defaultManager] fileExistsAtPath:dirPath]) {
|
|
195
|
+
NSError *e;
|
|
196
|
+
[[NSFileManager defaultManager] createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:&e];
|
|
197
|
+
NSAssert(e == nil, @"Couldn't create Application Support directory, %@", e.localizedDescription);
|
|
198
|
+
}
|
|
199
|
+
NSDictionary* crashDict = @{ @"crashName": crashName, @"reason": reason, @"stacktrace": stacktrace, @"technologyType": @"j" };
|
|
200
|
+
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:crashDict options:NSJSONWritingPrettyPrinted error:nil];
|
|
201
|
+
NSString* crashJson= [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
|
|
202
|
+
// Store react native crash
|
|
203
|
+
[[NSFileManager defaultManager] createFileAtPath:[dirPath stringByAppendingPathComponent:@"RNCrash.txt"] contents:[crashJson dataUsingEncoding:NSUTF8StringEncoding] attributes:nil];
|
|
204
|
+
|
|
205
|
+
// Create a new session if the app is in debug mode or reloadOnFatalError value is set to true where the crash is caught and the app is not forced to shutdown
|
|
206
|
+
if (newSession) {
|
|
207
|
+
[Dynatrace endVisit];
|
|
206
208
|
}
|
|
207
209
|
}
|
|
208
210
|
|
|
@@ -265,17 +267,12 @@ RCT_EXPORT_METHOD(startWebRequestTiming:(NSString*) requestTag url:(NSString*) u
|
|
|
265
267
|
|
|
266
268
|
}
|
|
267
269
|
|
|
268
|
-
RCT_EXPORT_METHOD(stopWebRequestTiming:(NSString*) requestTag responseCode:(nonnull NSNumber*) responseCode responseMessage:(NSString*)responseMessage)
|
|
269
|
-
{
|
|
270
|
-
[self stopWebRequestTimingWithSize:requestTag responseCode:responseCode requestSize:-1 responseSize:-1];
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
RCT_EXPORT_METHOD(stopWebRequestTimingWithSize:(NSString*) requestTag responseCode:(nonnull NSNumber*) responseCode responseMessage:(NSString*)responseMessage requestSize:(nonnull NSNumber*) requestSize responseSize:(nonnull NSNumber*) responseSize)
|
|
270
|
+
RCT_EXPORT_METHOD(stopWebRequestTiming:(NSString*) requestTag url:(NSString*)url responseCode:(nonnull NSNumber*) responseCode responseMessage:(NSString*)responseMessage)
|
|
274
271
|
{
|
|
275
272
|
if(requestTag != NULL){
|
|
276
273
|
DTXWebRequestTiming* timing = [webTimingsDict objectForKey:requestTag];
|
|
277
274
|
if(timing){
|
|
278
|
-
[timing stopWebRequestTiming:[responseCode stringValue]
|
|
275
|
+
[timing stopWebRequestTiming:[responseCode stringValue]];
|
|
279
276
|
[webTimingsDict removeObjectForKey:requestTag];
|
|
280
277
|
}
|
|
281
278
|
}
|
|
@@ -372,19 +369,13 @@ RCT_EXPORT_METHOD(setDataCollectionLevel:(nonnull NSString *) dataCollectionLeve
|
|
|
372
369
|
{
|
|
373
370
|
if ([self shouldWorkOnIosWithPlatform: platform])
|
|
374
371
|
{
|
|
375
|
-
int dataCollectionLevelEnum;
|
|
376
|
-
|
|
377
372
|
if([dataCollectionLevel isEqualToString: DataCollectionPerformance]){
|
|
378
|
-
|
|
373
|
+
[Dynatrace setDataCollectionLevel:DTX_DataCollectionPerformance completion:^(BOOL successful) {}];
|
|
379
374
|
}else if([dataCollectionLevel isEqualToString: DataCollectionUserBehavior]){
|
|
380
|
-
|
|
375
|
+
[Dynatrace setDataCollectionLevel:DTX_DataCollectionUserBehavior completion:^(BOOL successful) {}];
|
|
381
376
|
}else{
|
|
382
|
-
|
|
377
|
+
[Dynatrace setDataCollectionLevel:DTX_DataCollectionOff completion:^(BOOL successful) {}];
|
|
383
378
|
}
|
|
384
|
-
|
|
385
|
-
[Dynatrace setDataCollectionLevel:dataCollectionLevelEnum completion:^(BOOL successful) {
|
|
386
|
-
// Do nothing - Not sure
|
|
387
|
-
}];
|
|
388
379
|
}
|
|
389
380
|
}
|
|
390
381
|
|
|
@@ -482,7 +473,7 @@ RCT_EXPORT_METHOD(applyUserPrivacyOptions:(NSDictionary *) userPrivacyOptions pl
|
|
|
482
473
|
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
483
474
|
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
484
475
|
{
|
|
485
|
-
return std::make_shared<facebook::react
|
|
476
|
+
return std::make_shared<facebook::react::NativeDynatraceBridgeSpecJSI>(params);
|
|
486
477
|
}
|
|
487
478
|
#endif
|
|
488
479
|
|
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
objects = {
|
|
8
8
|
|
|
9
9
|
/* Begin PBXBuildFile section */
|
|
10
|
-
680D85DC2243B77D007953B5 /* DynatraceRNBridge.
|
|
10
|
+
680D85DC2243B77D007953B5 /* DynatraceRNBridge.mm in Sources */ = {isa = PBXBuildFile; fileRef = 680D85DB2243B77D007953B5 /* DynatraceRNBridge.mm */; };
|
|
11
11
|
68368004225F1139001BFE0F /* libDynatrace.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 68FC4BE92243D05900C87820 /* libDynatrace.a */; };
|
|
12
|
-
FE85101429BB606C0073625D /* DynatraceRNBridge.
|
|
12
|
+
FE85101429BB606C0073625D /* DynatraceRNBridge.mm in Sources */ = {isa = PBXBuildFile; fileRef = 680D85DB2243B77D007953B5 /* DynatraceRNBridge.mm */; };
|
|
13
13
|
FE85101629BB606C0073625D /* libDynatrace.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 68FC4BE92243D05900C87820 /* libDynatrace.a */; };
|
|
14
14
|
/* End PBXBuildFile section */
|
|
15
15
|
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
/* Begin PBXFileReference section */
|
|
38
38
|
134814201AA4EA6300B7C361 /* libRNDynatrace.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNDynatrace.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
39
39
|
680D85DA2243B77D007953B5 /* DynatraceRNBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DynatraceRNBridge.h; sourceTree = "<group>"; };
|
|
40
|
-
680D85DB2243B77D007953B5 /* DynatraceRNBridge.
|
|
40
|
+
680D85DB2243B77D007953B5 /* DynatraceRNBridge.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DynatraceRNBridge.mm; sourceTree = "<group>"; };
|
|
41
41
|
68FC4BE92243D05900C87820 /* libDynatrace.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libDynatrace.a; path = lib/libDynatrace.a; sourceTree = "<group>"; };
|
|
42
42
|
68FC4BEA2243D05900C87820 /* Dynatrace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dynatrace.h; path = lib/Dynatrace.h; sourceTree = "<group>"; };
|
|
43
43
|
FE85101B29BB606C0073625D /* libRNDynatrace-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libRNDynatrace-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
134814211AA4EA7D00B7C361 /* Products */,
|
|
78
78
|
FE85101B29BB606C0073625D /* libRNDynatrace-tvOS.a */,
|
|
79
79
|
680D85DA2243B77D007953B5 /* DynatraceRNBridge.h */,
|
|
80
|
-
680D85DB2243B77D007953B5 /* DynatraceRNBridge.
|
|
80
|
+
680D85DB2243B77D007953B5 /* DynatraceRNBridge.mm */,
|
|
81
81
|
680D868C2243CCA0007953B5 /* Frameworks */,
|
|
82
82
|
);
|
|
83
83
|
sourceTree = "<group>";
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
isa = PBXSourcesBuildPhase;
|
|
167
167
|
buildActionMask = 2147483647;
|
|
168
168
|
files = (
|
|
169
|
-
680D85DC2243B77D007953B5 /* DynatraceRNBridge.
|
|
169
|
+
680D85DC2243B77D007953B5 /* DynatraceRNBridge.mm in Sources */,
|
|
170
170
|
);
|
|
171
171
|
runOnlyForDeploymentPostprocessing = 0;
|
|
172
172
|
};
|
|
@@ -174,7 +174,7 @@
|
|
|
174
174
|
isa = PBXSourcesBuildPhase;
|
|
175
175
|
buildActionMask = 2147483647;
|
|
176
176
|
files = (
|
|
177
|
-
FE85101429BB606C0073625D /* DynatraceRNBridge.
|
|
177
|
+
FE85101429BB606C0073625D /* DynatraceRNBridge.mm in Sources */,
|
|
178
178
|
);
|
|
179
179
|
runOnlyForDeploymentPostprocessing = 0;
|
|
180
180
|
};
|
|
@@ -9,7 +9,7 @@ exports.ApplicationHandler = {
|
|
|
9
9
|
if (!ConfigurationHandler_1.ConfigurationHandler.isConfigurationAvailable()) {
|
|
10
10
|
const config = new ConfigurationBuilder_1.ConfigurationBuilder('', '').buildConfiguration();
|
|
11
11
|
ConfigurationHandler_1.ConfigurationHandler.setConfiguration(config);
|
|
12
|
-
Logger_1.Logger.logDebug('Configuration set: ' +
|
|
12
|
+
Logger_1.Logger.logDebug('Configuration set: ' + config.toString());
|
|
13
13
|
Logger_1.Logger.logInfo('Dynatrace React Native Plugin started!');
|
|
14
14
|
}
|
|
15
15
|
},
|
|
@@ -28,7 +28,7 @@ exports.Dynatrace = {
|
|
|
28
28
|
if (configuration !== undefined) {
|
|
29
29
|
DynatraceBridge_1.DynatraceNative.start(configuration);
|
|
30
30
|
ConfigurationHandler_1.ConfigurationHandler.setConfiguration(configuration);
|
|
31
|
-
Logger_1.Logger.logDebug('
|
|
31
|
+
Logger_1.Logger.logDebug('Configuration set: ' + configuration.toString());
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
34
|
throw new Error('Configuration is empty! Not allowed for Manual Startup!');
|
|
@@ -25,7 +25,7 @@ const TouchableHelper = (Dynatrace, Logger) => ({
|
|
|
25
25
|
}
|
|
26
26
|
else {
|
|
27
27
|
let finalNameOfAction = nameOfAction;
|
|
28
|
-
if (ConfigurationHandler_1.ConfigurationHandler.isActionNamePrivacyEnabled()) {
|
|
28
|
+
if (!(0, IDynatraceProperties_1.isDynatraceNaming)(props) && ConfigurationHandler_1.ConfigurationHandler.isActionNamePrivacyEnabled()) {
|
|
29
29
|
finalNameOfAction = isButton ? 'Button' : 'Touchable';
|
|
30
30
|
}
|
|
31
31
|
const action = Dynatrace.enterAutoAction(`Touch on ${finalNameOfAction}`);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Configuration = void 0;
|
|
4
|
+
const LogLevel_1 = require("../model/LogLevel");
|
|
4
5
|
class Configuration {
|
|
5
6
|
constructor(beaconUrl, applicationId, reportCrash, logLevel, lifecycleUpdate, userOptIn, actionNamePrivacy, bundleName) {
|
|
6
7
|
this.beaconUrl = beaconUrl;
|
|
@@ -12,5 +13,22 @@ class Configuration {
|
|
|
12
13
|
this.actionNamePrivacy = actionNamePrivacy;
|
|
13
14
|
this.bundleName = bundleName;
|
|
14
15
|
}
|
|
16
|
+
toString() {
|
|
17
|
+
let configurationString;
|
|
18
|
+
if (this.beaconUrl === '' && this.applicationId === '') {
|
|
19
|
+
configurationString = '{Startup: Auto Start,';
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
configurationString = `{Startup: Manual Start, applicationId: ${this.applicationId}, beaconUrl: ${this.beaconUrl},`;
|
|
23
|
+
}
|
|
24
|
+
configurationString += ` reportCrash: ${this.reportCrash}, lifecycleUpdate: ${this.lifecycleUpdate},`
|
|
25
|
+
+ ` userOptIn: ${this.userOptIn}, actionNamePrivacy: ${this.actionNamePrivacy},`
|
|
26
|
+
+ ` logLevel: ${(0, LogLevel_1.LogLevelToString)(this.logLevel)}`;
|
|
27
|
+
if (this.bundleName !== undefined) {
|
|
28
|
+
configurationString += `, bundleName: ${this.bundleName}`;
|
|
29
|
+
}
|
|
30
|
+
configurationString += '}';
|
|
31
|
+
return configurationString;
|
|
32
|
+
}
|
|
15
33
|
}
|
|
16
34
|
exports.Configuration = Configuration;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ManualStartupConfiguration = void 0;
|
|
4
|
+
const LogLevel_1 = require("../model/LogLevel");
|
|
4
5
|
const ConfigurationDefaults_1 = require("./ConfigurationDefaults");
|
|
5
6
|
const ConfigurationPreset_1 = require("./ConfigurationPreset");
|
|
6
7
|
class ManualStartupConfiguration {
|
|
@@ -36,5 +37,15 @@ class ManualStartupConfiguration {
|
|
|
36
37
|
this.bundleName = bundleName;
|
|
37
38
|
}
|
|
38
39
|
}
|
|
40
|
+
toString() {
|
|
41
|
+
let configurationString = `{Startup: Manual Start, applicationId: ${this.applicationId}, beaconUrl: ${this.beaconUrl},`
|
|
42
|
+
+ ` reportCrash: ${this.reportCrash}, lifecycleUpdate: ${this.lifecycleUpdate}, userOptIn: ${this.userOptIn},`
|
|
43
|
+
+ ` actionNamePrivacy: ${this.actionNamePrivacy}, logLevel: ${(0, LogLevel_1.LogLevelToString)(this.logLevel)}`;
|
|
44
|
+
if (this.bundleName !== undefined) {
|
|
45
|
+
configurationString += `, bundleName: ${this.bundleName}`;
|
|
46
|
+
}
|
|
47
|
+
configurationString += '}';
|
|
48
|
+
return configurationString;
|
|
49
|
+
}
|
|
39
50
|
}
|
|
40
51
|
exports.ManualStartupConfiguration = ManualStartupConfiguration;
|
|
@@ -1,8 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LogLevel = void 0;
|
|
3
|
+
exports.LogLevelToString = exports.LogLevel = void 0;
|
|
4
4
|
var LogLevel;
|
|
5
5
|
(function (LogLevel) {
|
|
6
6
|
LogLevel[LogLevel["Debug"] = 0] = "Debug";
|
|
7
7
|
LogLevel[LogLevel["Info"] = 1] = "Info";
|
|
8
8
|
})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
|
|
9
|
+
const LogLevelToString = (level) => {
|
|
10
|
+
if (level === LogLevel.Debug) {
|
|
11
|
+
return 'Debug';
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return 'Info';
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
exports.LogLevelToString = LogLevelToString;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynatrace/react-native-plugin",
|
|
3
|
-
"version": "2.287.
|
|
3
|
+
"version": "2.287.3",
|
|
4
4
|
"description": "This plugin gives you the ability to use the Dynatrace Mobile agent in your react native application.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "typings/react-native-dynatrace.d.ts",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"author": "Dynatrace",
|
|
72
72
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"@babel/runtime": "^7.24.
|
|
74
|
+
"@babel/runtime": "^7.24.4",
|
|
75
75
|
"jscodeshift": "^0.15.2",
|
|
76
76
|
"plist": "^3.1.0",
|
|
77
77
|
"proxy-polyfill": "^0.3.2",
|
|
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
|
|
|
14
14
|
s.homepage = package['homepage']
|
|
15
15
|
s.ios.deployment_target = "12.0"
|
|
16
16
|
s.tvos.deployment_target = "12.0"
|
|
17
|
-
s.source_files = ["ios/*.{h,
|
|
17
|
+
s.source_files = ["ios/*.{h,mm}"]
|
|
18
18
|
|
|
19
19
|
s.license = { :type => 'Commercial', :text => 'https://github.com/Dynatrace/dem-license/blob/main/LICENSE.md'}
|
|
20
20
|
|