@truewatchtech/react-native-mobile 0.3.15-alpha.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 (102) hide show
  1. package/FTMobileReactNativeSDK.podspec +22 -0
  2. package/LICENSE +201 -0
  3. package/README.md +37 -0
  4. package/android/.project +17 -0
  5. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  6. package/android/build.gradle +183 -0
  7. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  8. package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  9. package/android/gradle.properties +5 -0
  10. package/android/gradlew +185 -0
  11. package/android/gradlew.bat +89 -0
  12. package/android/local.properties +8 -0
  13. package/android/src/main/AndroidManifest.xml +4 -0
  14. package/android/src/main/AndroidManifestNew.xml +4 -0
  15. package/android/src/main/java/com/ft/sdk/InnerClassProxy.java +8 -0
  16. package/android/src/main/java/com/ft/sdk/reactnative/FTLogImpl.java +133 -0
  17. package/android/src/main/java/com/ft/sdk/reactnative/FTMobileImpl.java +198 -0
  18. package/android/src/main/java/com/ft/sdk/reactnative/FTRUMImpl.java +267 -0
  19. package/android/src/main/java/com/ft/sdk/reactnative/FTTraceImpl.java +89 -0
  20. package/android/src/main/java/com/ft/sdk/reactnative/utils/ReactNativeUtils.java +59 -0
  21. package/android/src/newarch/java/com/ft/sdk/reactnative/FTLogModule.java +39 -0
  22. package/android/src/newarch/java/com/ft/sdk/reactnative/FTMobileModule.java +69 -0
  23. package/android/src/newarch/java/com/ft/sdk/reactnative/FTRUMModule.java +84 -0
  24. package/android/src/newarch/java/com/ft/sdk/reactnative/FTTraceModule.java +34 -0
  25. package/android/src/oldarch/java/com/ft/sdk/reactnative/FTLogModule.java +36 -0
  26. package/android/src/oldarch/java/com/ft/sdk/reactnative/FTMobileModule.java +69 -0
  27. package/android/src/oldarch/java/com/ft/sdk/reactnative/FTRUMModule.java +70 -0
  28. package/android/src/oldarch/java/com/ft/sdk/reactnative/FTTraceModule.java +30 -0
  29. package/android/src/rnpost74/java/com/ft/sdk/reactnative/FTMobilePackage.java +71 -0
  30. package/android/src/rnpre74/java/com/ft/sdk/reactnative/FTMobilePackage.java +33 -0
  31. package/ios/.idea/.name +1 -0
  32. package/ios/.idea/ios.iml +2 -0
  33. package/ios/.idea/modules.xml +8 -0
  34. package/ios/.idea/vcs.xml +6 -0
  35. package/ios/.idea/xcode.xml +4 -0
  36. package/ios/FTMobileReactNative.h +18 -0
  37. package/ios/FTMobileReactNative.m +183 -0
  38. package/ios/FTReactNativeLog.h +18 -0
  39. package/ios/FTReactNativeLog.m +60 -0
  40. package/ios/FTReactNativeRUM.h +19 -0
  41. package/ios/FTReactNativeRUM.m +173 -0
  42. package/ios/FTReactNativeTrace.h +20 -0
  43. package/ios/FTReactNativeTrace.m +58 -0
  44. package/ios/FTReactNativeUtils.h +16 -0
  45. package/ios/FTReactNativeUtils.m +32 -0
  46. package/ios/FtMobileAgent.xcodeproj/project.pbxproj +293 -0
  47. package/ios/FtMobileAgent.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
  48. package/ios/FtMobileAgent.xcodeproj/project.xcworkspace/xcuserdata/Brandon.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  49. package/ios/FtMobileAgent.xcodeproj/project.xcworkspace/xcuserdata/Brandon.xcuserdatad/xcschemes/xcschememanagement.plist +5 -0
  50. package/ios/FtMobileAgent.xcodeproj/xcuserdata/Brandon.xcuserdatad/xcschemes/FtMobileAgent.xcscheme +56 -0
  51. package/ios/FtMobileAgent.xcodeproj/xcuserdata/Brandon.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  52. package/ios/RCTVersion.h +8 -0
  53. package/lib/commonjs/ft_logger.js +70 -0
  54. package/lib/commonjs/ft_logger.js.map +1 -0
  55. package/lib/commonjs/ft_mobile_agent.js +93 -0
  56. package/lib/commonjs/ft_mobile_agent.js.map +1 -0
  57. package/lib/commonjs/ft_rum.js +143 -0
  58. package/lib/commonjs/ft_rum.js.map +1 -0
  59. package/lib/commonjs/ft_tracing.js +61 -0
  60. package/lib/commonjs/ft_tracing.js.map +1 -0
  61. package/lib/commonjs/index.js +138 -0
  62. package/lib/commonjs/index.js.map +1 -0
  63. package/lib/commonjs/rum/FTRumActionTracking.js +214 -0
  64. package/lib/commonjs/rum/FTRumActionTracking.js.map +1 -0
  65. package/lib/commonjs/rum/FTRumErrorTracking.js +99 -0
  66. package/lib/commonjs/rum/FTRumErrorTracking.js.map +1 -0
  67. package/lib/commonjs/version.js +9 -0
  68. package/lib/commonjs/version.js.map +1 -0
  69. package/lib/module/ft_logger.js +64 -0
  70. package/lib/module/ft_logger.js.map +1 -0
  71. package/lib/module/ft_mobile_agent.js +88 -0
  72. package/lib/module/ft_mobile_agent.js.map +1 -0
  73. package/lib/module/ft_rum.js +138 -0
  74. package/lib/module/ft_rum.js.map +1 -0
  75. package/lib/module/ft_tracing.js +56 -0
  76. package/lib/module/ft_tracing.js.map +1 -0
  77. package/lib/module/index.js +8 -0
  78. package/lib/module/index.js.map +1 -0
  79. package/lib/module/rum/FTRumActionTracking.js +206 -0
  80. package/lib/module/rum/FTRumActionTracking.js.map +1 -0
  81. package/lib/module/rum/FTRumErrorTracking.js +92 -0
  82. package/lib/module/rum/FTRumErrorTracking.js.map +1 -0
  83. package/lib/module/version.js +3 -0
  84. package/lib/module/version.js.map +1 -0
  85. package/lib/typescript/ft_logger.d.ts +52 -0
  86. package/lib/typescript/ft_mobile_agent.d.ts +123 -0
  87. package/lib/typescript/ft_rum.d.ts +200 -0
  88. package/lib/typescript/ft_tracing.d.ts +47 -0
  89. package/lib/typescript/index.d.ts +7 -0
  90. package/lib/typescript/rum/FTRumActionTracking.d.ts +15 -0
  91. package/lib/typescript/rum/FTRumErrorTracking.d.ts +11 -0
  92. package/lib/typescript/version.d.ts +1 -0
  93. package/package.json +167 -0
  94. package/scripts/replace-react-require.js +52 -0
  95. package/src/ft_logger.tsx +77 -0
  96. package/src/ft_mobile_agent.tsx +162 -0
  97. package/src/ft_rum.tsx +247 -0
  98. package/src/ft_tracing.tsx +79 -0
  99. package/src/index.tsx +17 -0
  100. package/src/rum/FTRumActionTracking.tsx +232 -0
  101. package/src/rum/FTRumErrorTracking.tsx +110 -0
  102. package/src/version.ts +2 -0
@@ -0,0 +1,173 @@
1
+ //
2
+ // FTReactNativeRUM.m
3
+ // FtMobileAgent
4
+ //
5
+ // Created by Hu Leilei on 2021/12/14.
6
+ // Copyright © 2021 Facebook. All rights reserved.
7
+ //
8
+
9
+ #import "FTReactNativeRUM.h"
10
+ #import <FTMobileSDK/FTMobileAgent.h>
11
+ #import <FTMobileSDK/FTExternalDataManager.h>
12
+ #import <FTMobileSDK/FTResourceMetricsModel.h>
13
+ #import <FTMobileSDK/FTResourceContentModel.h>
14
+ #import <React/RCTConvert.h>
15
+ #import "FTReactNativeUtils.h"
16
+
17
+ @implementation FTReactNativeRUM
18
+ RCT_EXPORT_MODULE()
19
+ RCT_REMAP_METHOD(setConfig,
20
+ context:(NSDictionary *)context
21
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
22
+ rejecter:(RCTPromiseRejectBlock)reject){
23
+ NSString *rumAppId = [RCTConvert NSString:context[@"iOSAppId"]];
24
+ FTRumConfig *rumConfig = [[FTRumConfig alloc]initWithAppid:rumAppId];
25
+ if ([context.allKeys containsObject:@"sampleRate"]) {
26
+ rumConfig.samplerate = [RCTConvert double:context[@"sampleRate"]]*100;
27
+ }
28
+ if ([context.allKeys containsObject:@"sessionOnErrorSampleRate"]) {
29
+ rumConfig.sessionOnErrorSampleRate = [RCTConvert double:context[@"sessionOnErrorSampleRate"]]*100;
30
+ }
31
+ if ([context.allKeys containsObject:@"enableNativeUserAction"]) {
32
+ rumConfig.enableTraceUserAction = [RCTConvert BOOL:context[@"enableNativeUserAction"]];
33
+ }
34
+ if ([context.allKeys containsObject:@"enableNativeUserView"]) {
35
+ rumConfig.enableTraceUserView = [RCTConvert BOOL:context[@"enableNativeUserView"]];
36
+ }
37
+ if ([context.allKeys containsObject:@"enableNativeUserResource"]) {
38
+ rumConfig.enableTraceUserResource = [RCTConvert BOOL:context[@"enableNativeUserResource"]];
39
+ }
40
+ if ([context.allKeys containsObject:@"errorMonitorType"]) {
41
+ rumConfig.errorMonitorType =(FTErrorMonitorType)[RCTConvert int:context[@"errorMonitorType"]];
42
+ }
43
+ if ([context.allKeys containsObject:@"deviceMonitorType"]) {
44
+ rumConfig.deviceMetricsMonitorType =(FTDeviceMetricsMonitorType)[RCTConvert int:context[@"deviceMonitorType"]];
45
+ }
46
+ if ([context.allKeys containsObject:@"detectFrequency"]) {
47
+ rumConfig.monitorFrequency =(FTMonitorFrequency)[RCTConvert int:context[@"detectFrequency"]];
48
+ }
49
+ if ([context.allKeys containsObject:@"enableResourceHostIP"]) {
50
+ rumConfig.enableResourceHostIP = [RCTConvert BOOL:context[@"enableResourceHostIP"]];
51
+ }
52
+ if ([context.allKeys containsObject:@"enableTrackNativeCrash"]){
53
+ rumConfig.enableTrackAppCrash = [RCTConvert BOOL:context[@"enableTrackNativeCrash"]];
54
+ }
55
+ if ([context.allKeys containsObject:@"enableTrackNativeAppANR"]){
56
+ rumConfig.enableTrackAppANR = [RCTConvert BOOL:context[@"enableTrackNativeAppANR"]];
57
+ }
58
+ if ([context.allKeys containsObject:@"enableTrackNativeFreeze"]){
59
+ rumConfig.enableTrackAppFreeze = [RCTConvert BOOL:context[@"enableTrackNativeFreeze"]];
60
+ }
61
+ if ([context.allKeys containsObject:@"nativeFreezeDurationMs"]){
62
+ rumConfig.freezeDurationMs = [RCTConvert double:context[@"nativeFreezeDurationMs"]];
63
+ }
64
+ if ([context.allKeys containsObject:@"globalContext"]) {
65
+ rumConfig.globalContext = [RCTConvert NSDictionary:context[@"globalContext"]];
66
+ }
67
+ if ([context.allKeys containsObject:@"rumDiscardStrategy"]) {
68
+ rumConfig.rumDiscardType = [RCTConvert int:context[@"rumDiscardStrategy"]];
69
+ }
70
+ if ([context.allKeys containsObject:@"rumCacheLimitCount"]) {
71
+ rumConfig.rumCacheLimitCount = [RCTConvert int:context[@"rumCacheLimitCount"]];
72
+ }
73
+ #if DEBUG
74
+ rumConfig.resourceUrlHandler = ^BOOL(NSURL * _Nonnull url) {
75
+ return [FTReactNativeUtils filterBlackResource:url];
76
+ };
77
+ #endif
78
+ [[FTMobileAgent sharedInstance] startRumWithConfigOptions:rumConfig];
79
+ resolve(nil);
80
+ }
81
+ RCT_REMAP_METHOD(startAction,
82
+ actionName:(NSString *)actionName actionType:(NSString *)actionType property:(NSDictionary *)property
83
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
84
+ rejecter:(RCTPromiseRejectBlock)reject){
85
+ [[FTExternalDataManager sharedManager] startAction:actionName actionType:actionType property:property];
86
+ resolve(nil);
87
+ }
88
+ RCT_REMAP_METHOD(addAction,
89
+ addAction:(NSString *)actionName actionType:(NSString *)actionType property:(NSDictionary *)property
90
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
91
+ rejecter:(RCTPromiseRejectBlock)reject){
92
+ [[FTExternalDataManager sharedManager] addAction:actionName actionType:actionType property:property];
93
+ resolve(nil);
94
+ }
95
+ RCT_REMAP_METHOD(onCreateView,
96
+ viewName:(NSString *)viewName loadTime:(double)loadTime
97
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
98
+ rejecter:(RCTPromiseRejectBlock)reject){
99
+ [[FTExternalDataManager sharedManager] onCreateView:viewName loadTime:@(loadTime)];
100
+ resolve(nil);
101
+ }
102
+ RCT_REMAP_METHOD(startView,
103
+ viewName:(NSString *)viewName property:(NSDictionary *)property
104
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
105
+ rejecter:(RCTPromiseRejectBlock)reject){
106
+ [[FTExternalDataManager sharedManager] startViewWithName:viewName property:property];
107
+ resolve(nil);
108
+ }
109
+ RCT_REMAP_METHOD(stopView,
110
+ property:(NSDictionary *)property
111
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
112
+ rejecter:(RCTPromiseRejectBlock)reject){
113
+ [[FTExternalDataManager sharedManager] stopViewWithProperty:property];
114
+ resolve(nil);
115
+ }
116
+ RCT_REMAP_METHOD(addError,
117
+ stack:(NSString *)stack message:(NSString *)message property:(NSDictionary *)property
118
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
119
+ rejecter:(RCTPromiseRejectBlock)reject){
120
+ [[FTExternalDataManager sharedManager] addErrorWithType:@"reactnative_crash" message:message stack:stack property:property];
121
+ resolve(nil);
122
+ }
123
+ RCT_REMAP_METHOD(addErrorWithType,
124
+ type:(NSString *)type stack:(NSString *)stack message:(NSString *)message property:(NSDictionary *)property
125
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
126
+ rejecter:(RCTPromiseRejectBlock)reject){
127
+ [[FTExternalDataManager sharedManager] addErrorWithType:type message:message stack:stack property:property];
128
+ resolve(nil);
129
+ }
130
+ RCT_REMAP_METHOD(startResource,
131
+ startResource:(NSString *)key property:(NSDictionary *)property
132
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
133
+ rejecter:(RCTPromiseRejectBlock)reject){
134
+ [[FTExternalDataManager sharedManager] startResourceWithKey:key property:property];
135
+ resolve(nil);
136
+ }
137
+ RCT_REMAP_METHOD(stopResource,
138
+ stopResource:(NSString *)key property:(NSDictionary *)property
139
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
140
+ rejecter:(RCTPromiseRejectBlock)reject){
141
+ [[FTExternalDataManager sharedManager] stopResourceWithKey:key property:property];
142
+ resolve(nil);
143
+ }
144
+ RCT_REMAP_METHOD(addResource,
145
+ addResource:(NSString *)key content:(NSDictionary *)content metrics:(NSDictionary *)metrics
146
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
147
+ rejecter:(RCTPromiseRejectBlock)reject){
148
+ if (key.length==0 || content.allKeys.count == 0) {
149
+ return;
150
+ }
151
+ FTResourceMetricsModel *metricsModel = nil;
152
+ if (metrics.allKeys.count>0) {
153
+ metricsModel = [[FTResourceMetricsModel alloc]init];
154
+ metricsModel.duration = [RCTConvert NSNumber:metrics[@"duration"]];
155
+ metricsModel.resource_dns = [RCTConvert NSNumber:metrics[@"resource_dns"]];
156
+ metricsModel.resource_tcp = [RCTConvert NSNumber:metrics[@"resource_tcp"]];
157
+ metricsModel.resource_ssl = [RCTConvert NSNumber:metrics[@"resource_ssl"]];
158
+ metricsModel.resource_ttfb = [RCTConvert NSNumber:metrics[@"resource_ttfb"]];
159
+ metricsModel.resource_trans = [RCTConvert NSNumber:metrics[@"resource_trans"]];
160
+ metricsModel.resource_first_byte = [RCTConvert NSNumber:metrics[@"resource_first_byte"]];
161
+ }
162
+ FTResourceContentModel *contentModel = [[FTResourceContentModel alloc]init];
163
+ contentModel.url = [RCTConvert NSURL:content[@"url"]];
164
+ contentModel.httpMethod = [RCTConvert NSString:content[@"httpMethod"]];
165
+ contentModel.requestHeader = [RCTConvert NSDictionary:content[@"requestHeader"]];
166
+ contentModel.responseHeader = [RCTConvert NSDictionary:content[@"responseHeader"]];
167
+ contentModel.responseBody = [RCTConvert NSString:content[@"responseBody"]];
168
+ contentModel.httpStatusCode = [RCTConvert int:content[@"resourceStatus"]];
169
+
170
+ [[FTExternalDataManager sharedManager] addResourceWithKey:key metrics:metricsModel content:contentModel];
171
+ resolve(nil);
172
+ }
173
+ @end
@@ -0,0 +1,20 @@
1
+ //
2
+ // FTReactNativeTrace.h
3
+ // FtMobileAgent
4
+ //
5
+ // Created by Hu Leilei on 2021/12/14.
6
+ // Copyright © 2021 Facebook. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import <React/RCTBridgeModule.h>
11
+
12
+ NS_ASSUME_NONNULL_BEGIN
13
+
14
+ @interface FTReactNativeTrace : NSObject <RCTBridgeModule>
15
+
16
+ @end
17
+
18
+ NS_ASSUME_NONNULL_END
19
+
20
+
@@ -0,0 +1,58 @@
1
+ //
2
+ // FTReactNativeTrace.m
3
+ // FtMobileAgent
4
+ //
5
+ // Created by Hu Leilei on 2021/12/14.
6
+ // Copyright © 2021 Facebook. All rights reserved.
7
+ //
8
+
9
+ #import "FTReactNativeTrace.h"
10
+ #import "FtMobileAgent.h"
11
+ #import <FTMobileSDK/FTMobileAgent.h>
12
+ #import <FTMobileSDK/FTExternalDataManager.h>
13
+ #import <FTMobileSDK/FTResourceMetricsModel.h>
14
+ #import <FTMobileSDK/FTResourceContentModel.h>
15
+ #import <React/RCTConvert.h>
16
+ #import <FTMobileSDK/FTTraceManager.h>
17
+ @implementation FTReactNativeTrace
18
+ RCT_EXPORT_MODULE()
19
+
20
+ RCT_REMAP_METHOD(setConfig,
21
+ context:(NSDictionary *)context
22
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
23
+ rejecter:(RCTPromiseRejectBlock)reject){
24
+ FTTraceConfig *trace = [[FTTraceConfig alloc]init];
25
+ if ([context.allKeys containsObject:@"sampleRate"]) {
26
+ trace.samplerate =[RCTConvert double:context[@"sampleRate"]] * 100;
27
+ }
28
+ if ([context.allKeys containsObject:@"traceType"]) {
29
+ int traceType = [RCTConvert int:context[@"traceType"]];
30
+ trace.networkTraceType = traceType;
31
+ }
32
+ trace.enableLinkRumData = [RCTConvert BOOL:context[@"enableLinkRUMData"]];
33
+ trace.enableAutoTrace = [RCTConvert BOOL:context[@"enableNativeAutoTrace"]];
34
+ [[FTMobileAgent sharedInstance] startTraceWithConfigOptions:trace];
35
+ resolve(nil);
36
+ }
37
+
38
+ RCT_REMAP_METHOD(getTraceHeaderFields,
39
+ url:(NSString *)url
40
+ key:(NSString *)key
41
+ findEventsWithResolver:(RCTPromiseResolveBlock)resolve
42
+ rejecter:(RCTPromiseRejectBlock)reject){
43
+ NSDictionary *traceHeader = nil;
44
+ if(key&&key.length>0){
45
+ traceHeader = [[FTExternalDataManager sharedManager] getTraceHeaderWithKey:key url:[NSURL URLWithString:url]];
46
+ }else{
47
+ traceHeader = [[FTExternalDataManager sharedManager] getTraceHeaderWithUrl:[NSURL URLWithString:url]];
48
+ }
49
+ if (traceHeader) {
50
+ resolve(traceHeader);
51
+ }else{
52
+ resolve(nil);
53
+ }
54
+ }
55
+
56
+ @end
57
+
58
+
@@ -0,0 +1,16 @@
1
+ //
2
+ // FTReactNativeUtils.h
3
+ // FTMobileReactNativeSDK
4
+ //
5
+ // Created by hulilei on 2025/1/24.
6
+ //
7
+
8
+ #import <Foundation/Foundation.h>
9
+
10
+ NS_ASSUME_NONNULL_BEGIN
11
+
12
+ @interface FTReactNativeUtils : NSObject
13
+ + (BOOL)filterBlackResource:(NSURL *)url;
14
+ @end
15
+
16
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,32 @@
1
+ //
2
+ // FTReactNativeUtils.m
3
+ // FTMobileReactNativeSDK
4
+ //
5
+ // Created by hulilei on 2025/1/24.
6
+ //
7
+
8
+ #import "FTReactNativeUtils.h"
9
+
10
+ @implementation FTReactNativeUtils
11
+ + (BOOL)filterBlackResource:(NSURL *)url{
12
+ static NSMutableArray *internalDevResourceBlacklist;
13
+ static dispatch_once_t onceToken;
14
+ dispatch_once(&onceToken, ^{
15
+ internalDevResourceBlacklist = [NSMutableArray new];
16
+ NSError *error = nil;
17
+ NSString *pattern = @"^http://((10|172|192).[0-9]+.[0-9]+.[0-9]+|localhost|127.0.0.1):808[0-9]/logs$";
18
+ NSRegularExpression * regularExpress = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error];
19
+ [internalDevResourceBlacklist addObject:regularExpress];
20
+ NSString *rn = @"^http://localhost:808[0-9]/(hot|symbolicate|message|inspector|status|assets).*$";
21
+ NSRegularExpression * rnRegularExpress = [NSRegularExpression regularExpressionWithPattern:rn options:NSRegularExpressionCaseInsensitive error:&error];
22
+ [internalDevResourceBlacklist addObject:rnRegularExpress];
23
+ });
24
+ for (NSRegularExpression *regex in internalDevResourceBlacklist) {
25
+ NSTextCheckingResult *firstMatch =[regex firstMatchInString:url.absoluteString options:0 range:NSMakeRange(0, [url.absoluteString length])];
26
+ if (firstMatch) {
27
+ return YES;
28
+ }
29
+ }
30
+ return NO;
31
+ }
32
+ @end
@@ -0,0 +1,293 @@
1
+ // !$*UTF8*$!
2
+ {
3
+ archiveVersion = 1;
4
+ classes = {
5
+ };
6
+ objectVersion = 46;
7
+ objects = {
8
+
9
+ /* Begin PBXBuildFile section */
10
+ 17C492802D43B4F900487920 /* FTReactNativeUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 17C4927F2D43B4F900487920 /* FTReactNativeUtils.m */; };
11
+ /* End PBXBuildFile section */
12
+
13
+ /* Begin PBXCopyFilesBuildPhase section */
14
+ 58B511D91A9E6C8500147676 /* CopyFiles */ = {
15
+ isa = PBXCopyFilesBuildPhase;
16
+ buildActionMask = 2147483647;
17
+ dstPath = "include/$(PRODUCT_NAME)";
18
+ dstSubfolderSpec = 16;
19
+ files = (
20
+ );
21
+ runOnlyForDeploymentPostprocessing = 0;
22
+ };
23
+ /* End PBXCopyFilesBuildPhase section */
24
+
25
+ /* Begin PBXFileReference section */
26
+ 134814201AA4EA6300B7C361 /* libFtMobileAgent.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libFtMobileAgent.a; sourceTree = BUILT_PRODUCTS_DIR; };
27
+ 17C4927E2D43B4F900487920 /* FTReactNativeUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FTReactNativeUtils.h; sourceTree = "<group>"; };
28
+ 17C4927F2D43B4F900487920 /* FTReactNativeUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FTReactNativeUtils.m; sourceTree = "<group>"; };
29
+ 7C3C28A527684CDF009DB8E2 /* FTMobileReactNative.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FTMobileReactNative.h; sourceTree = "<group>"; };
30
+ 7C3C28A627684CDF009DB8E2 /* FTMobileReactNative.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FTMobileReactNative.m; sourceTree = "<group>"; };
31
+ 7C3C28A727684D03009DB8E2 /* FTReactNativeRUM.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FTReactNativeRUM.h; sourceTree = "<group>"; };
32
+ 7C3C28A827684D03009DB8E2 /* FTReactNativeRUM.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FTReactNativeRUM.m; sourceTree = "<group>"; };
33
+ 7C3C28A927684D21009DB8E2 /* FTReactNativeTrace.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FTReactNativeTrace.h; sourceTree = "<group>"; };
34
+ 7C3C28AA27684D21009DB8E2 /* FTReactNativeTrace.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FTReactNativeTrace.m; sourceTree = "<group>"; };
35
+ 7C3C28AB27684D36009DB8E2 /* FTReactNativeLog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FTReactNativeLog.h; sourceTree = "<group>"; };
36
+ 7C3C28AC27684D36009DB8E2 /* FTReactNativeLog.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FTReactNativeLog.m; sourceTree = "<group>"; };
37
+ /* End PBXFileReference section */
38
+
39
+ /* Begin PBXFrameworksBuildPhase section */
40
+ 58B511D81A9E6C8500147676 /* Frameworks */ = {
41
+ isa = PBXFrameworksBuildPhase;
42
+ buildActionMask = 2147483647;
43
+ files = (
44
+ );
45
+ runOnlyForDeploymentPostprocessing = 0;
46
+ };
47
+ /* End PBXFrameworksBuildPhase section */
48
+
49
+ /* Begin PBXGroup section */
50
+ 134814211AA4EA7D00B7C361 /* Products */ = {
51
+ isa = PBXGroup;
52
+ children = (
53
+ 134814201AA4EA6300B7C361 /* libFtMobileAgent.a */,
54
+ );
55
+ name = Products;
56
+ sourceTree = "<group>";
57
+ };
58
+ 58B511D21A9E6C8500147676 = {
59
+ isa = PBXGroup;
60
+ children = (
61
+ 7C3C28AB27684D36009DB8E2 /* FTReactNativeLog.h */,
62
+ 7C3C28AC27684D36009DB8E2 /* FTReactNativeLog.m */,
63
+ 7C3C28A927684D21009DB8E2 /* FTReactNativeTrace.h */,
64
+ 7C3C28AA27684D21009DB8E2 /* FTReactNativeTrace.m */,
65
+ 7C3C28A727684D03009DB8E2 /* FTReactNativeRUM.h */,
66
+ 7C3C28A827684D03009DB8E2 /* FTReactNativeRUM.m */,
67
+ 7C3C28A527684CDF009DB8E2 /* FTMobileReactNative.h */,
68
+ 7C3C28A627684CDF009DB8E2 /* FTMobileReactNative.m */,
69
+ 17C4927E2D43B4F900487920 /* FTReactNativeUtils.h */,
70
+ 17C4927F2D43B4F900487920 /* FTReactNativeUtils.m */,
71
+ 134814211AA4EA7D00B7C361 /* Products */,
72
+ );
73
+ sourceTree = "<group>";
74
+ };
75
+ /* End PBXGroup section */
76
+
77
+ /* Begin PBXNativeTarget section */
78
+ 58B511DA1A9E6C8500147676 /* FtMobileAgent */ = {
79
+ isa = PBXNativeTarget;
80
+ buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "FtMobileAgent" */;
81
+ buildPhases = (
82
+ 58B511D71A9E6C8500147676 /* Sources */,
83
+ 58B511D81A9E6C8500147676 /* Frameworks */,
84
+ 58B511D91A9E6C8500147676 /* CopyFiles */,
85
+ );
86
+ buildRules = (
87
+ );
88
+ dependencies = (
89
+ );
90
+ name = FtMobileAgent;
91
+ productName = RCTDataManager;
92
+ productReference = 134814201AA4EA6300B7C361 /* libFtMobileAgent.a */;
93
+ productType = "com.apple.product-type.library.static";
94
+ };
95
+ /* End PBXNativeTarget section */
96
+
97
+ /* Begin PBXProject section */
98
+ 58B511D31A9E6C8500147676 /* Project object */ = {
99
+ isa = PBXProject;
100
+ attributes = {
101
+ LastUpgradeCheck = 0920;
102
+ ORGANIZATIONNAME = Facebook;
103
+ TargetAttributes = {
104
+ 58B511DA1A9E6C8500147676 = {
105
+ CreatedOnToolsVersion = 6.1.1;
106
+ };
107
+ };
108
+ };
109
+ buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "FtMobileAgent" */;
110
+ compatibilityVersion = "Xcode 3.2";
111
+ developmentRegion = English;
112
+ hasScannedForEncodings = 0;
113
+ knownRegions = (
114
+ English,
115
+ en,
116
+ );
117
+ mainGroup = 58B511D21A9E6C8500147676;
118
+ productRefGroup = 58B511D21A9E6C8500147676;
119
+ projectDirPath = "";
120
+ projectRoot = "";
121
+ targets = (
122
+ 58B511DA1A9E6C8500147676 /* FtMobileAgent */,
123
+ );
124
+ };
125
+ /* End PBXProject section */
126
+
127
+ /* Begin PBXSourcesBuildPhase section */
128
+ 58B511D71A9E6C8500147676 /* Sources */ = {
129
+ isa = PBXSourcesBuildPhase;
130
+ buildActionMask = 2147483647;
131
+ files = (
132
+ 17C492802D43B4F900487920 /* FTReactNativeUtils.m in Sources */,
133
+ );
134
+ runOnlyForDeploymentPostprocessing = 0;
135
+ };
136
+ /* End PBXSourcesBuildPhase section */
137
+
138
+ /* Begin XCBuildConfiguration section */
139
+ 58B511ED1A9E6C8500147676 /* Debug */ = {
140
+ isa = XCBuildConfiguration;
141
+ buildSettings = {
142
+ ALWAYS_SEARCH_USER_PATHS = NO;
143
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
144
+ CLANG_CXX_LIBRARY = "libc++";
145
+ CLANG_ENABLE_MODULES = YES;
146
+ CLANG_ENABLE_OBJC_ARC = YES;
147
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
148
+ CLANG_WARN_BOOL_CONVERSION = YES;
149
+ CLANG_WARN_COMMA = YES;
150
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
151
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
152
+ CLANG_WARN_EMPTY_BODY = YES;
153
+ CLANG_WARN_ENUM_CONVERSION = YES;
154
+ CLANG_WARN_INFINITE_RECURSION = YES;
155
+ CLANG_WARN_INT_CONVERSION = YES;
156
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
157
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
158
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
159
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
160
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
161
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
162
+ CLANG_WARN_UNREACHABLE_CODE = YES;
163
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
164
+ COPY_PHASE_STRIP = NO;
165
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
166
+ ENABLE_TESTABILITY = YES;
167
+ GCC_C_LANGUAGE_STANDARD = gnu99;
168
+ GCC_DYNAMIC_NO_PIC = NO;
169
+ GCC_NO_COMMON_BLOCKS = YES;
170
+ GCC_OPTIMIZATION_LEVEL = 0;
171
+ GCC_PREPROCESSOR_DEFINITIONS = (
172
+ "DEBUG=1",
173
+ "$(inherited)",
174
+ );
175
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
176
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
177
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
178
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
179
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
180
+ GCC_WARN_UNUSED_FUNCTION = YES;
181
+ GCC_WARN_UNUSED_VARIABLE = YES;
182
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
183
+ MTL_ENABLE_DEBUG_INFO = YES;
184
+ ONLY_ACTIVE_ARCH = YES;
185
+ SDKROOT = iphoneos;
186
+ };
187
+ name = Debug;
188
+ };
189
+ 58B511EE1A9E6C8500147676 /* Release */ = {
190
+ isa = XCBuildConfiguration;
191
+ buildSettings = {
192
+ ALWAYS_SEARCH_USER_PATHS = NO;
193
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
194
+ CLANG_CXX_LIBRARY = "libc++";
195
+ CLANG_ENABLE_MODULES = YES;
196
+ CLANG_ENABLE_OBJC_ARC = YES;
197
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
198
+ CLANG_WARN_BOOL_CONVERSION = YES;
199
+ CLANG_WARN_COMMA = YES;
200
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
201
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
202
+ CLANG_WARN_EMPTY_BODY = YES;
203
+ CLANG_WARN_ENUM_CONVERSION = YES;
204
+ CLANG_WARN_INFINITE_RECURSION = YES;
205
+ CLANG_WARN_INT_CONVERSION = YES;
206
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
207
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
208
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
209
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
210
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
211
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
212
+ CLANG_WARN_UNREACHABLE_CODE = YES;
213
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
214
+ COPY_PHASE_STRIP = YES;
215
+ ENABLE_NS_ASSERTIONS = NO;
216
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
217
+ GCC_C_LANGUAGE_STANDARD = gnu99;
218
+ GCC_NO_COMMON_BLOCKS = YES;
219
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
220
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
221
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
222
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
223
+ GCC_WARN_UNUSED_FUNCTION = YES;
224
+ GCC_WARN_UNUSED_VARIABLE = YES;
225
+ IPHONEOS_DEPLOYMENT_TARGET = 8.0;
226
+ MTL_ENABLE_DEBUG_INFO = NO;
227
+ SDKROOT = iphoneos;
228
+ VALIDATE_PRODUCT = YES;
229
+ };
230
+ name = Release;
231
+ };
232
+ 58B511F01A9E6C8500147676 /* Debug */ = {
233
+ isa = XCBuildConfiguration;
234
+ buildSettings = {
235
+ HEADER_SEARCH_PATHS = (
236
+ "$(inherited)",
237
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
238
+ "$(SRCROOT)/../../../React/**",
239
+ "$(SRCROOT)/../../react-native/React/**",
240
+ );
241
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
242
+ OTHER_LDFLAGS = "-ObjC";
243
+ PRODUCT_NAME = FtMobileAgent;
244
+ SKIP_INSTALL = YES;
245
+ SWIFT_OBJC_BRIDGING_HEADER = "FtMobileAgent-Bridging-Header.h";
246
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
247
+ SWIFT_VERSION = 5.0;
248
+ };
249
+ name = Debug;
250
+ };
251
+ 58B511F11A9E6C8500147676 /* Release */ = {
252
+ isa = XCBuildConfiguration;
253
+ buildSettings = {
254
+ HEADER_SEARCH_PATHS = (
255
+ "$(inherited)",
256
+ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
257
+ "$(SRCROOT)/../../../React/**",
258
+ "$(SRCROOT)/../../react-native/React/**",
259
+ );
260
+ LIBRARY_SEARCH_PATHS = "$(inherited)";
261
+ OTHER_LDFLAGS = "-ObjC";
262
+ PRODUCT_NAME = FtMobileAgent;
263
+ SKIP_INSTALL = YES;
264
+ SWIFT_OBJC_BRIDGING_HEADER = "FtMobileAgent-Bridging-Header.h";
265
+ SWIFT_VERSION = 5.0;
266
+ };
267
+ name = Release;
268
+ };
269
+ /* End XCBuildConfiguration section */
270
+
271
+ /* Begin XCConfigurationList section */
272
+ 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "FtMobileAgent" */ = {
273
+ isa = XCConfigurationList;
274
+ buildConfigurations = (
275
+ 58B511ED1A9E6C8500147676 /* Debug */,
276
+ 58B511EE1A9E6C8500147676 /* Release */,
277
+ );
278
+ defaultConfigurationIsVisible = 0;
279
+ defaultConfigurationName = Release;
280
+ };
281
+ 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "FtMobileAgent" */ = {
282
+ isa = XCConfigurationList;
283
+ buildConfigurations = (
284
+ 58B511F01A9E6C8500147676 /* Debug */,
285
+ 58B511F11A9E6C8500147676 /* Release */,
286
+ );
287
+ defaultConfigurationIsVisible = 0;
288
+ defaultConfigurationName = Release;
289
+ };
290
+ /* End XCConfigurationList section */
291
+ };
292
+ rootObject = 58B511D31A9E6C8500147676 /* Project object */;
293
+ }
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ </Workspace>
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict />
5
+ </plist>
@@ -0,0 +1,56 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Scheme
3
+ version = "1.7">
4
+ <BuildAction
5
+ parallelizeBuildables = "YES"
6
+ buildImplicitDependencies = "YES">
7
+ <BuildActionEntries>
8
+ <BuildActionEntry
9
+ buildForTesting = "YES"
10
+ buildForRunning = "YES"
11
+ buildForProfiling = "YES"
12
+ buildForArchiving = "YES"
13
+ buildForAnalyzing = "YES">
14
+ <BuildableReference
15
+ BuildableIdentifier = "primary"
16
+ BlueprintIdentifier = "58B511DA1A9E6C8500147676"
17
+ BuildableName = "libFtMobileAgent.a"
18
+ BlueprintName = "FtMobileAgent"
19
+ ReferencedContainer = "container:FtMobileAgent.xcodeproj">
20
+ </BuildableReference>
21
+ </BuildActionEntry>
22
+ </BuildActionEntries>
23
+ </BuildAction>
24
+ <TestAction
25
+ buildConfiguration = "Debug"
26
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
27
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
28
+ shouldUseLaunchSchemeArgsEnv = "YES"
29
+ shouldAutocreateTestPlan = "YES">
30
+ </TestAction>
31
+ <LaunchAction
32
+ buildConfiguration = "Debug"
33
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
34
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
35
+ launchStyle = "0"
36
+ useCustomWorkingDirectory = "NO"
37
+ ignoresPersistentStateOnLaunch = "NO"
38
+ debugDocumentVersioning = "YES"
39
+ debugServiceExtension = "internal"
40
+ allowLocationSimulation = "YES">
41
+ </LaunchAction>
42
+ <ProfileAction
43
+ buildConfiguration = "Release"
44
+ shouldUseLaunchSchemeArgsEnv = "YES"
45
+ savedToolIdentifier = ""
46
+ useCustomWorkingDirectory = "NO"
47
+ debugDocumentVersioning = "YES">
48
+ </ProfileAction>
49
+ <AnalyzeAction
50
+ buildConfiguration = "Debug">
51
+ </AnalyzeAction>
52
+ <ArchiveAction
53
+ buildConfiguration = "Release"
54
+ revealArchiveInOrganizer = "YES">
55
+ </ArchiveAction>
56
+ </Scheme>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>SchemeUserState</key>
6
+ <dict>
7
+ <key>FtMobileAgent.xcscheme</key>
8
+ <dict>
9
+ <key>orderHint</key>
10
+ <integer>0</integer>
11
+ </dict>
12
+ </dict>
13
+ </dict>
14
+ </plist>