diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SKIOSNetworkPlugin/FLEXNetworkLib/FLEXNetworkRecorder.mm b/iOS/Plugins/SonarKitNetworkPlugin/SKIOSNetworkPlugin/FLEXNetworkLib/FLEXNetworkRecorder.mm index b9d5004c1..58ba1e22b 100755 --- a/iOS/Plugins/SonarKitNetworkPlugin/SKIOSNetworkPlugin/FLEXNetworkLib/FLEXNetworkRecorder.mm +++ b/iOS/Plugins/SonarKitNetworkPlugin/SKIOSNetworkPlugin/FLEXNetworkLib/FLEXNetworkRecorder.mm @@ -116,13 +116,7 @@ NSString *const kFLEXNetworkRecorderResponseCacheLimitDefaultsKey = @"com.flex.r } dispatch_async(self.queue, ^{ - RequestInfo info = { - .identifier = self.identifierDict[requestID].longLongValue, - .timestamp = [NSDate timestamp], - .request = request, - }; - - info.setBody(request.HTTPBody); + SKRequestInfo *info = [[SKRequestInfo alloc] initWithIdentifier:self.identifierDict[requestID].longLongValue timestamp:[NSDate timestamp] request:request data:request.HTTPBody]; [self.delegate didObserveRequest:info]; FLEXNetworkTransaction *transaction = [FLEXNetworkTransaction new]; @@ -176,13 +170,7 @@ NSString *const kFLEXNetworkRecorderResponseCacheLimitDefaultsKey = @"com.flex.r } transaction.transactionState = FLEXNetworkTransactionStateFinished; transaction.duration = -[transaction.startTime timeIntervalSinceDate:finishedDate]; - ResponseInfo responseInfo = { - .identifier = self.identifierDict[requestID].longLongValue, - .timestamp = [NSDate timestamp], - .response = transaction.response, - .body = nil, - }; - responseInfo.setBody(responseBody); + SKResponseInfo *responseInfo = [[SKResponseInfo alloc] initWithIndentifier:self.identifierDict[requestID].longLongValue timestamp:[NSDate timestamp] response:transaction.response data:responseBody]; self.identifierDict[requestID] = nil; //Clear the entry [self.delegate didObserveResponse:responseInfo]; @@ -207,12 +195,8 @@ NSString *const kFLEXNetworkRecorderResponseCacheLimitDefaultsKey = @"com.flex.r if (!transaction) { return; } - ResponseInfo responseInfo = { - .identifier = self.identifierDict[requestID].longLongValue, - .timestamp = [NSDate timestamp], - .response = transaction.response, - .body = nil, - }; + + SKResponseInfo *responseInfo = [[SKResponseInfo alloc] initWithIndentifier:self.identifierDict[requestID].longLongValue timestamp:[NSDate timestamp] response:transaction.response data: nil]; self.identifierDict[requestID] = nil; //Clear the entry [self.delegate didObserveResponse:responseInfo]; transaction.transactionState = FLEXNetworkTransactionStateFailed; diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin+CPPInitialization.h b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin+CPPInitialization.h new file mode 100644 index 000000000..7d2a4e89e --- /dev/null +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin+CPPInitialization.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2018-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the LICENSE + * file in the root directory of this source tree. + * + */ +#if FB_SONARKIT_ENABLED +#pragma once + +#import "SKBufferingPlugin.h" +#import "SKDispatchQueue.h" +#import +#import + +struct CachedEvent { + NSString *method; + NSDictionary *sonarObject; +}; + + +@interface SKBufferingPlugin(CPPInitialization) + +- (instancetype)initWithVectorEventSize:(NSUInteger)size connectionAccessQueue:(std::shared_ptr)connectionAccessQueue; +- (instancetype)initWithDispatchQueue:(std::shared_ptr)queue; + +@end + +#endif diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin.h b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin.h index 45ec23df4..99dc666b1 100644 --- a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin.h +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin.h @@ -11,13 +11,9 @@ #import -#import - -#import "SKDispatchQueue.h" - @interface SKBufferingPlugin : NSObject -- (instancetype)initWithQueue:(const std::shared_ptr &)queue NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithQueue:(dispatch_queue_t)queue NS_DESIGNATED_INITIALIZER; - (void)send:(NSString *)method sonarObject:(NSDictionary *)sonarObject; diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin.mm b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin.mm index 0e8ae8512..96248ad24 100644 --- a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin.mm +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin.mm @@ -11,26 +11,31 @@ #import "SKBufferingPlugin.h" #import - -struct CachedEvent { - NSString *method; - NSDictionary *sonarObject; -}; +#import "SKDispatchQueue.h" +#import "SKBufferingPlugin+CPPInitialization.h" static const NSUInteger bufferSize = 500; +@interface SKBufferingPlugin() + +@property(assign, nonatomic) std::vector ringBuffer; +@property(assign, nonatomic) std::shared_ptr connectionAccessQueue; +@property(strong, nonatomic) id connection; + +@end + @implementation SKBufferingPlugin -{ - std::vector _ringBuffer; - std::shared_ptr _connectionAccessQueue; +// { +// std::vector _ringBuffer; +// std::shared_ptr _connectionAccessQueue; +// +// id _connection; +// } - id _connection; -} - -- (instancetype)initWithQueue:(const std::shared_ptr &)queue { +- (instancetype)initWithQueue:(dispatch_queue_t)queue { if (self = [super init]) { _ringBuffer.reserve(bufferSize); - _connectionAccessQueue = queue; + _connectionAccessQueue = std::make_shared(queue); } return self; } @@ -80,4 +85,22 @@ static const NSUInteger bufferSize = 500; @end +@implementation SKBufferingPlugin(CPPInitialization) + +- (instancetype)initWithVectorEventSize:(NSUInteger)size connectionAccessQueue:(std::shared_ptr)connectionAccessQueue { + if (self = [super init]) { + _ringBuffer.reserve(size); + _connectionAccessQueue = connectionAccessQueue; + } + return self; +} +- (instancetype)initWithDispatchQueue:(std::shared_ptr)queue { + return [self initWithVectorEventSize:bufferSize + connectionAccessQueue:queue]; + +} + +@end + + #endif diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKNetworkReporter.h b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKNetworkReporter.h index a08d18ba1..ac8475237 100644 --- a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKNetworkReporter.h +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKNetworkReporter.h @@ -6,47 +6,13 @@ * */ #import - -struct RequestInfo { - int64_t identifier; - uint64_t timestamp; - NSURLRequest *request; - NSString *body; - - void setBody(NSData *data) { - body = data ? [data base64EncodedStringWithOptions: 0] - : [request.HTTPBody base64EncodedStringWithOptions: 0]; - } -}; - -struct ResponseInfo { - int64_t identifier; - uint64_t timestamp; - NSURLResponse *response; - NSString *body; - - bool shouldStripReponseBody() { - NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response; - NSString *contentType = httpResponse.allHeaderFields[@"content-type"]; - if (!contentType) { - return NO; - } - - return [contentType containsString:@"image/"] || - [contentType containsString:@"video/"] || - [contentType containsString:@"application/zip"]; - } - - void setBody(NSData *data) { - body = shouldStripReponseBody() ? nil : [data base64EncodedStringWithOptions: 0]; - } - -}; +#import "SKRequestInfo.h" +#import "SKResponseInfo.h" @protocol SKNetworkReporterDelegate -- (void)didObserveRequest:(RequestInfo)request; -- (void)didObserveResponse:(ResponseInfo)response; +- (void)didObserveRequest:(SKRequestInfo *)request; +- (void)didObserveResponse:(SKResponseInfo *)response; @end diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKRequestInfo.h b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKRequestInfo.h new file mode 100644 index 000000000..a7cba1d65 --- /dev/null +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKRequestInfo.h @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2018-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the LICENSE + * file in the root directory of this source tree. + * + */ + +#import + +@interface SKRequestInfo: NSObject +@property(assign, readwrite) int64_t identifier; +@property(assign, readwrite) uint64_t timestamp; +@property(strong, nonatomic) NSURLRequest* request; +@property(strong, nonatomic) NSString* body; + +- (instancetype)initWithIdentifier:(int64_t)identifier timestamp:(uint64_t)timestamp request:(NSURLRequest*)request data:(NSData *)data; +- (void)setBodyFromData:(NSData * _Nullable)data; + +@end diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKRequestInfo.m b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKRequestInfo.m new file mode 100644 index 000000000..0802d978e --- /dev/null +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKRequestInfo.m @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2018-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the LICENSE + * file in the root directory of this source tree. + * + */ + +#import "SKRequestInfo.h" + +@implementation SKRequestInfo +@synthesize identifier = _identifier; +@synthesize timestamp = _timestamp; +@synthesize request = _request; +@synthesize body = _body; + +- (instancetype)initWithIdentifier:(int64_t)identifier timestamp:(uint64_t)timestamp request:(NSURLRequest *)request data:(NSData *)data{ + + if (self = [super init]){ + _identifier = identifier; + _timestamp = timestamp; + _request = request; + _body = data ? [data base64EncodedStringWithOptions: 0] + : [request.HTTPBody base64EncodedStringWithOptions: 0]; + } + return self; +} + +- (void)setBodyFromData:(NSData * _Nullable)data { + self.body = data ? [data base64EncodedStringWithOptions: 0] + : [self.request.HTTPBody base64EncodedStringWithOptions: 0]; +} + +@end diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKResponseInfo.h b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKResponseInfo.h new file mode 100644 index 000000000..af56fc651 --- /dev/null +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKResponseInfo.h @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2018-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the LICENSE + * file in the root directory of this source tree. + * + */ + +#import + +@interface SKResponseInfo : NSObject + +@property(assign, readwrite) int64_t identifier; +@property(assign, readwrite) uint64_t timestamp; +@property(strong, nonatomic) NSURLResponse* response; +@property(strong, nonatomic) NSString* body; + +- (instancetype)initWithIndentifier:(int64_t)identifier timestamp:(uint64_t)timestamp response:(NSURLResponse *)response data:(NSData *)data; +- (void)setBodyFromData:(NSData * _Nullable)data; + +@end diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKResponseInfo.m b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKResponseInfo.m new file mode 100644 index 000000000..39cdec1c4 --- /dev/null +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKResponseInfo.m @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2018-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the LICENSE + * file in the root directory of this source tree. + * + */ + +#import "SKResponseInfo.h" + +@implementation SKResponseInfo +@synthesize identifier = _identifier; +@synthesize timestamp = _timestamp; +@synthesize response = _response; +@synthesize body = _body; + +- (instancetype)initWithIndentifier:(int64_t)identifier timestamp:(uint64_t)timestamp response:(NSURLResponse *)response data:(NSData *)data { + if(self = [super init]) { + _identifier = identifier; + _timestamp = timestamp; + _response = response; + _body = [SKResponseInfo shouldStripReponseBodyWithResponse:response] ? nil : [data base64EncodedStringWithOptions: 0]; + } + return self; +} + ++ (BOOL) shouldStripReponseBodyWithResponse:(NSURLResponse *)response { + NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response; + NSString *contentType = httpResponse.allHeaderFields[@"content-type"]; + if (!contentType) { + return NO; + } + + return [contentType containsString:@"image/"] || + [contentType containsString:@"video/"] || + [contentType containsString:@"application/zip"]; +} + +- (void)setBodyFromData:(NSData *_Nullable)data { + self.body = [SKResponseInfo shouldStripReponseBodyWithResponse:self.response] ? nil : [data base64EncodedStringWithOptions: 0]; +} + +@end diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin+CPPInitialization.h b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin+CPPInitialization.h new file mode 100644 index 000000000..00f422f60 --- /dev/null +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin+CPPInitialization.h @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2018-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the LICENSE + * file in the root directory of this source tree. + * + */ +#if FB_SONARKIT_ENABLED + +#pragma once +#import "SonarKitNetworkPlugin.h" +#import "SKDispatchQueue.h" +#import + +@interface SonarKitNetworkPlugin(CPPInitialization) +- (instancetype)initWithNetworkAdapter:(id)adapter dispatchQueue:(std::shared_ptr)queue; +@end +#endif diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin.h b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin.h index 7792e41ce..a367b3a65 100644 --- a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin.h +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin.h @@ -12,12 +12,11 @@ #import "SKBufferingPlugin.h" #import "SKNetworkReporter.h" -#import "SKDispatchQueue.h" @interface SonarKitNetworkPlugin : SKBufferingPlugin - (instancetype)initWithNetworkAdapter:(id)adapter NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithNetworkAdapter:(id)adapter queue:(const std::shared_ptr &)queue; //For test purposes +- (instancetype)initWithNetworkAdapter:(id)adapter queue:(dispatch_queue_t)queue; //For test purposes @property (strong, nonatomic) id adapter; diff --git a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin.mm b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin.mm index 4c54dd8fb..486ddffcc 100644 --- a/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin.mm +++ b/iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin.mm @@ -6,8 +6,14 @@ * */ #if FB_SONARKIT_ENABLED +#import +#import +#import #import "SonarKitNetworkPlugin.h" #import "SKNetworkReporter.h" +#import "SonarKitNetworkPlugin+CPPInitialization.h" +#import "SKBufferingPlugin+CPPInitialization.h" +#import "SKDispatchQueue.h" @interface SonarKitNetworkPlugin () @@ -21,20 +27,20 @@ } - (instancetype)init { - if (self = [super initWithQueue:std::make_shared(dispatch_queue_create("com.sonarkit.network.buffer", DISPATCH_QUEUE_SERIAL))]) { + if (self = [super initWithQueue:dispatch_queue_create("com.sonarkit.network.buffer", DISPATCH_QUEUE_SERIAL)]) { } return self; } - (instancetype)initWithNetworkAdapter:(id)adapter { - if (self = [super initWithQueue:std::make_shared(dispatch_queue_create("com.sonarkit.network.buffer", DISPATCH_QUEUE_SERIAL))]) { + if (self = [super initWithQueue:dispatch_queue_create("com.sonarkit.network.buffer", DISPATCH_QUEUE_SERIAL)]) { adapter.delegate = self; _adapter = adapter; } return self; } -- (instancetype)initWithNetworkAdapter:(id)adapter queue:(const std::shared_ptr &)queue; { +- (instancetype)initWithNetworkAdapter:(id)adapter queue:(dispatch_queue_t)queue; { if (self = [super initWithQueue:queue]) { adapter.delegate = self; _adapter = adapter; @@ -45,7 +51,7 @@ #pragma mark - SKNetworkReporterDelegate -- (void)didObserveRequest:(RequestInfo)request; +- (void)didObserveRequest:(SKRequestInfo *)request; { NSMutableArray *> *headers = [NSMutableArray new]; for (NSString *key in [request.request.allHTTPHeaderFields allKeys]) { @@ -69,7 +75,7 @@ }]; } -- (void)didObserveResponse:(ResponseInfo)response +- (void)didObserveResponse:(SKResponseInfo *)response { NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response.response; @@ -98,4 +104,16 @@ @end +@implementation SonarKitNetworkPlugin (CPPInitialization) + +- (instancetype)initWithNetworkAdapter:(id)adapter dispatchQueue:(std::shared_ptr)queue { + if (self = [super initWithDispatchQueue:queue]) { + adapter.delegate = self; + _adapter = adapter; + } + return self; +} + +@end + #endif diff --git a/iOS/Sample/Sample.xcodeproj/project.pbxproj b/iOS/Sample/Sample.xcodeproj/project.pbxproj index b44e11a9a..2e4089673 100644 --- a/iOS/Sample/Sample.xcodeproj/project.pbxproj +++ b/iOS/Sample/Sample.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 070E4F377782060039511A32 /* libPods-Sample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 55478E5C767F9CC35112E1C9 /* libPods-Sample.a */; }; 53D59DB320ABA18400207065 /* NetworkViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53D59DAA20ABA18300207065 /* NetworkViewController.m */; }; 53D59DB420ABA18400207065 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 53D59DAB20ABA18300207065 /* AppDelegate.mm */; }; 53D59DB520ABA18400207065 /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 53D59DAD20ABA18300207065 /* MainViewController.m */; }; @@ -14,12 +15,10 @@ 53D59DB720ABA18400207065 /* MainStoryBoard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 53D59DB020ABA18400207065 /* MainStoryBoard.storyboard */; }; 53D59DB820ABA18400207065 /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 53D59DB120ABA18400207065 /* Icons.xcassets */; }; 53E0DE5420ABA0E4005682E1 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 53E0DE5320ABA0E4005682E1 /* main.m */; }; - B369CEA3B6F57057FAACAE2F /* libPods-Sample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27922CF99D8E609480377096 /* libPods-Sample.a */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 275FDB8D19C1C8C26A47DA09 /* Pods-Sample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Sample.release.xcconfig"; path = "Pods/Target Support Files/Pods-Sample/Pods-Sample.release.xcconfig"; sourceTree = ""; }; - 27922CF99D8E609480377096 /* libPods-Sample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Sample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 081A9FC23643CD21C7D61AA1 /* Pods-Sample.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Sample.release.xcconfig"; path = "Pods/Target Support Files/Pods-Sample/Pods-Sample.release.xcconfig"; sourceTree = ""; }; 53D59DAA20ABA18300207065 /* NetworkViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NetworkViewController.m; sourceTree = SOURCE_ROOT; }; 53D59DAB20ABA18300207065 /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AppDelegate.mm; sourceTree = SOURCE_ROOT; }; 53D59DAC20ABA18300207065 /* NetworkViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NetworkViewController.h; sourceTree = SOURCE_ROOT; }; @@ -33,7 +32,8 @@ 53E0DE4120ABA0E3005682E1 /* Sample.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Sample.app; sourceTree = BUILT_PRODUCTS_DIR; }; 53E0DE5220ABA0E4005682E1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; }; 53E0DE5320ABA0E4005682E1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 7086E77977EF48ABCAE4DED7 /* Pods-Sample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Sample.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Sample/Pods-Sample.debug.xcconfig"; sourceTree = ""; }; + 55478E5C767F9CC35112E1C9 /* libPods-Sample.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Sample.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + BDF8FF7C018FDB3437209993 /* Pods-Sample.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Sample.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Sample/Pods-Sample.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -41,7 +41,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B369CEA3B6F57057FAACAE2F /* libPods-Sample.a in Frameworks */, + 070E4F377782060039511A32 /* libPods-Sample.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -72,8 +72,8 @@ children = ( 53D59DB920ABA19900207065 /* Sample */, 53E0DE4220ABA0E3005682E1 /* Products */, - 71F5EB9E42BEADDCC04A205D /* Pods */, - E2FCEB633911AF4886EC0881 /* Frameworks */, + 56F86505D10A36D42C8D0302 /* Pods */, + C89232DD95E032B5B6FA95A1 /* Frameworks */, ); sourceTree = ""; }; @@ -85,19 +85,19 @@ name = Products; sourceTree = ""; }; - 71F5EB9E42BEADDCC04A205D /* Pods */ = { + 56F86505D10A36D42C8D0302 /* Pods */ = { isa = PBXGroup; children = ( - 7086E77977EF48ABCAE4DED7 /* Pods-Sample.debug.xcconfig */, - 275FDB8D19C1C8C26A47DA09 /* Pods-Sample.release.xcconfig */, + BDF8FF7C018FDB3437209993 /* Pods-Sample.debug.xcconfig */, + 081A9FC23643CD21C7D61AA1 /* Pods-Sample.release.xcconfig */, ); name = Pods; sourceTree = ""; }; - E2FCEB633911AF4886EC0881 /* Frameworks */ = { + C89232DD95E032B5B6FA95A1 /* Frameworks */ = { isa = PBXGroup; children = ( - 27922CF99D8E609480377096 /* libPods-Sample.a */, + 55478E5C767F9CC35112E1C9 /* libPods-Sample.a */, ); name = Frameworks; sourceTree = ""; @@ -109,7 +109,7 @@ isa = PBXNativeTarget; buildConfigurationList = 53E0DE5720ABA0E4005682E1 /* Build configuration list for PBXNativeTarget "Sample" */; buildPhases = ( - 88DDF414B12B2B557290B67B /* [CP] Check Pods Manifest.lock */, + 3C367C9C6EDD0E6199F76FAC /* [CP] Check Pods Manifest.lock */, 53E0DE3D20ABA0E3005682E1 /* Sources */, 53E0DE3E20ABA0E3005682E1 /* Frameworks */, 53E0DE3F20ABA0E3005682E1 /* Resources */, @@ -168,7 +168,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 88DDF414B12B2B557290B67B /* [CP] Check Pods Manifest.lock */ = { + 3C367C9C6EDD0E6199F76FAC /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -316,7 +316,7 @@ }; 53E0DE5820ABA0E4005682E1 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7086E77977EF48ABCAE4DED7 /* Pods-Sample.debug.xcconfig */; + baseConfigurationReference = BDF8FF7C018FDB3437209993 /* Pods-Sample.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; @@ -385,7 +385,7 @@ }; 53E0DE5920ABA0E4005682E1 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 275FDB8D19C1C8C26A47DA09 /* Pods-Sample.release.xcconfig */; + baseConfigurationReference = 081A9FC23643CD21C7D61AA1 /* Pods-Sample.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; diff --git a/iOS/SampleSwift/Podfile b/iOS/SampleSwift/Podfile index 0207d0bcc..d683752be 100644 --- a/iOS/SampleSwift/Podfile +++ b/iOS/SampleSwift/Podfile @@ -7,7 +7,7 @@ target 'SampleSwift' do pod 'SonarKit', '~> 0.6' # Layout and network plugins are not yet supported for swift projects # pod 'SonarKit/SonarKitLayoutComponentKitSupport', '~> 0.0.2' - # pod 'SonarKit/SKIOSNetworkPlugin', '~> 0.0.2' + pod 'SonarKit/SKIOSNetworkPlugin', '~> 0.6' post_install do |installer| installer.pods_project.targets.each do |target| diff --git a/iOS/SampleSwift/SampleSwift.xcodeproj/project.pbxproj b/iOS/SampleSwift/SampleSwift.xcodeproj/project.pbxproj index 4a35f2f09..a447dd5e6 100644 --- a/iOS/SampleSwift/SampleSwift.xcodeproj/project.pbxproj +++ b/iOS/SampleSwift/SampleSwift.xcodeproj/project.pbxproj @@ -7,7 +7,8 @@ objects = { /* Begin PBXBuildFile section */ - 076C8BE348B2F2F251103C6F /* libPods-SampleSwift.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 116D6234DE1F7298C4C2836E /* libPods-SampleSwift.a */; }; + 532FF2DF211316ED00FC5A10 /* NetworkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532FF2DE211316ED00FC5A10 /* NetworkViewController.swift */; }; + 629899EF3F77DD9CC9462399 /* libPods-SampleSwift.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 54D075F591C612F4A46C4C50 /* libPods-SampleSwift.a */; }; A19C402720E20023004BF1F7 /* Icons.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A19C402620E20023004BF1F7 /* Icons.xcassets */; }; A1EC522D20DED61B007C6977 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1EC522C20DED61B007C6977 /* AppDelegate.swift */; }; A1EC522F20DED61B007C6977 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1EC522E20DED61B007C6977 /* ViewController.swift */; }; @@ -16,8 +17,10 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 116D6234DE1F7298C4C2836E /* libPods-SampleSwift.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SampleSwift.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 37AC1E08B3D4DC8183172E21 /* Pods-SampleSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleSwift.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SampleSwift/Pods-SampleSwift.debug.xcconfig"; sourceTree = ""; }; + 532FF2DE211316ED00FC5A10 /* NetworkViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkViewController.swift; sourceTree = ""; }; + 54D075F591C612F4A46C4C50 /* libPods-SampleSwift.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SampleSwift.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 59BC319BD0C305C87CCBB954 /* Pods-SampleSwift.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleSwift.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SampleSwift/Pods-SampleSwift.debug.xcconfig"; sourceTree = ""; }; + 76A1EA0FA19A4343BF5468B9 /* Pods-SampleSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleSwift.release.xcconfig"; path = "Pods/Target Support Files/Pods-SampleSwift/Pods-SampleSwift.release.xcconfig"; sourceTree = ""; }; A19C402620E20023004BF1F7 /* Icons.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Icons.xcassets; sourceTree = SOURCE_ROOT; }; A1EC522920DED61B007C6977 /* SampleSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SampleSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; A1EC522C20DED61B007C6977 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -25,7 +28,6 @@ A1EC523620DED61C007C6977 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; A1EC523820DED61C007C6977 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; A1EC523E20DEDC00007C6977 /* MainStoryBoard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MainStoryBoard.storyboard; sourceTree = ""; }; - B4D379232B75ED516DAC4010 /* Pods-SampleSwift.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SampleSwift.release.xcconfig"; path = "Pods/Target Support Files/Pods-SampleSwift/Pods-SampleSwift.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -33,37 +35,20 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 076C8BE348B2F2F251103C6F /* libPods-SampleSwift.a in Frameworks */, + 629899EF3F77DD9CC9462399 /* libPods-SampleSwift.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 3AAFD4FB7381DCF64BCC28F8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 116D6234DE1F7298C4C2836E /* libPods-SampleSwift.a */, - ); - name = Frameworks; - sourceTree = ""; - }; - 86D600B594F09E018D741296 /* Pods */ = { - isa = PBXGroup; - children = ( - 37AC1E08B3D4DC8183172E21 /* Pods-SampleSwift.debug.xcconfig */, - B4D379232B75ED516DAC4010 /* Pods-SampleSwift.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; A1EC522020DED61B007C6977 = { isa = PBXGroup; children = ( A1EC522B20DED61B007C6977 /* SampleSwift */, A1EC522A20DED61B007C6977 /* Products */, - 86D600B594F09E018D741296 /* Pods */, - 3AAFD4FB7381DCF64BCC28F8 /* Frameworks */, + D64C1609A23F7F455EB46170 /* Pods */, + FCE001267EA01B99C44EBA11 /* Frameworks */, ); sourceTree = ""; }; @@ -84,10 +69,28 @@ A1EC522E20DED61B007C6977 /* ViewController.swift */, A1EC523520DED61C007C6977 /* LaunchScreen.storyboard */, A1EC523820DED61C007C6977 /* Info.plist */, + 532FF2DE211316ED00FC5A10 /* NetworkViewController.swift */, ); path = SampleSwift; sourceTree = ""; }; + D64C1609A23F7F455EB46170 /* Pods */ = { + isa = PBXGroup; + children = ( + 59BC319BD0C305C87CCBB954 /* Pods-SampleSwift.debug.xcconfig */, + 76A1EA0FA19A4343BF5468B9 /* Pods-SampleSwift.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; + FCE001267EA01B99C44EBA11 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 54D075F591C612F4A46C4C50 /* libPods-SampleSwift.a */, + ); + name = Frameworks; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -95,7 +98,7 @@ isa = PBXNativeTarget; buildConfigurationList = A1EC523B20DED61C007C6977 /* Build configuration list for PBXNativeTarget "SampleSwift" */; buildPhases = ( - EC305E9596C92E7DA323DDC1 /* [CP] Check Pods Manifest.lock */, + FEB6C3EADB1D3B088347CC11 /* [CP] Check Pods Manifest.lock */, A1EC522520DED61B007C6977 /* Sources */, A1EC522620DED61B007C6977 /* Frameworks */, A1EC522720DED61B007C6977 /* Resources */, @@ -156,7 +159,7 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - EC305E9596C92E7DA323DDC1 /* [CP] Check Pods Manifest.lock */ = { + FEB6C3EADB1D3B088347CC11 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -182,6 +185,7 @@ buildActionMask = 2147483647; files = ( A1EC522F20DED61B007C6977 /* ViewController.swift in Sources */, + 532FF2DF211316ED00FC5A10 /* NetworkViewController.swift in Sources */, A1EC522D20DED61B007C6977 /* AppDelegate.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -316,7 +320,7 @@ }; A1EC523C20DED61C007C6977 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 37AC1E08B3D4DC8183172E21 /* Pods-SampleSwift.debug.xcconfig */; + baseConfigurationReference = 59BC319BD0C305C87CCBB954 /* Pods-SampleSwift.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; @@ -341,8 +345,38 @@ "$(inherited)", "@executable_path/Frameworks", ); + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFB_SONARKIT_ENABLED=1", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-l\"CocoaAsyncSocket\"", + "-l\"DoubleConversion\"", + "-l\"Folly\"", + "-l\"PeerTalk\"", + "-l\"RSocket\"", + "-l\"Sonar\"", + "-l\"SonarKit\"", + "-l\"crypto\"", + "-l\"event\"", + "-l\"event_core\"", + "-l\"event_extra\"", + "-l\"event_pthreads\"", + "-l\"glog\"", + "-l\"ssl\"", + "-l\"stdc++\"", + "-framework", + "\"CFNetwork\"", + "-framework", + "\"Security\"", + "-DFB_SONARKIT_ENABLED=1", + ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/SonarKit/SonarKit.modulemap\" -Xcc -DFB_SONARKIT_ENABLED"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.flipper.SampleSwift; PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -350,7 +384,7 @@ }; A1EC523D20DED61C007C6977 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = B4D379232B75ED516DAC4010 /* Pods-SampleSwift.release.xcconfig */; + baseConfigurationReference = 76A1EA0FA19A4343BF5468B9 /* Pods-SampleSwift.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_STYLE = Automatic; @@ -375,6 +409,35 @@ "$(inherited)", "@executable_path/Frameworks", ); + OTHER_CPLUSPLUSFLAGS = ( + "$(OTHER_CFLAGS)", + "-DFB_SONARKIT_ENABLED=1", + ); + OTHER_LDFLAGS = ( + "$(inherited)", + "-ObjC", + "-l\"CocoaAsyncSocket\"", + "-l\"DoubleConversion\"", + "-l\"Folly\"", + "-l\"PeerTalk\"", + "-l\"RSocket\"", + "-l\"Sonar\"", + "-l\"SonarKit\"", + "-l\"crypto\"", + "-l\"event\"", + "-l\"event_core\"", + "-l\"event_extra\"", + "-l\"event_pthreads\"", + "-l\"glog\"", + "-l\"ssl\"", + "-l\"stdc++\"", + "-framework", + "\"CFNetwork\"", + "-framework", + "\"Security\"", + "-DFB_SONARKIT_ENABLED=1", + ); + OTHER_SWIFT_FLAGS = "$(inherited) -Xcc -fmodule-map-file=\"${PODS_ROOT}/Headers/Public/SonarKit/SonarKit.modulemap\" -Xcc -DFB_SONARKIT_ENABLED"; PRODUCT_BUNDLE_IDENTIFIER = com.facebook.flipper.SampleSwift; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 4.0; diff --git a/iOS/SampleSwift/SampleSwift/AppDelegate.swift b/iOS/SampleSwift/SampleSwift/AppDelegate.swift index c8b12a596..476d5e669 100644 --- a/iOS/SampleSwift/SampleSwift/AppDelegate.swift +++ b/iOS/SampleSwift/SampleSwift/AppDelegate.swift @@ -17,7 +17,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { // let layoutDescriptorMapper = SKDescriptorMapper(defaults: ()) // SonarKitLayoutComponentKitSupport.setUp(descriptorMapper: layoutDescriptorMapper) // client.addPlugin(SonarKitLayoutPlugin(rootNode: application, descriptorMapper: layoutDescriptorMapper)) -// client.addPlugin(SonarKitNetworkPlugin(networkAdapter: SKIOSNetworkAdapter())) + + client?.add(SonarKitNetworkPlugin(networkAdapter: SKIOSNetworkAdapter())) client?.start() let storyboard = UIStoryboard(name: "MainStoryBoard", bundle: nil) diff --git a/iOS/SampleSwift/SampleSwift/MainStoryBoard.storyboard b/iOS/SampleSwift/SampleSwift/MainStoryBoard.storyboard index 352bad524..e0b427f91 100644 --- a/iOS/SampleSwift/SampleSwift/MainStoryBoard.storyboard +++ b/iOS/SampleSwift/SampleSwift/MainStoryBoard.storyboard @@ -1,11 +1,11 @@ - + - + @@ -31,7 +31,7 @@ - + @@ -72,7 +69,7 @@ - + @@ -93,7 +90,7 @@ - + @@ -153,6 +150,7 @@ + diff --git a/iOS/SampleSwift/SampleSwift/NetworkViewController.swift b/iOS/SampleSwift/SampleSwift/NetworkViewController.swift new file mode 100644 index 000000000..3c6483970 --- /dev/null +++ b/iOS/SampleSwift/SampleSwift/NetworkViewController.swift @@ -0,0 +1,88 @@ +// Copyright 2004-present Facebook. All Rights Reserved. + +import UIKit + +class NetworkViewController: UIViewController { + + @IBAction func tappedGetAPI(_ sender: UIButton) { + let getURL = URL(string: "https://demo9512366.mockable.io/FlipperGet")! + let dataTask = URLSession.shared.dataTask(with: getURL){ [weak self] (data, response, error) in + guard let strongSelf = self else { return } + guard let dataUnwrapped = data else { + strongSelf.showAlert(message: "Received no data in GET API") + return + } + + if let errorUnwrapped = error { + strongSelf.showAlert(message: "Received error in GET API Error:\(errorUnwrapped.localizedDescription)") + return + } + + let dict = try! JSONSerialization.jsonObject(with: dataUnwrapped, options: JSONSerialization.ReadingOptions.init(rawValue: 0)) as! [String: String] + // As sonar cannot detect print() in Logs + NSLog("MSG-GET: \(dict["msg"] ?? "Did not find msg key in the received response")") + strongSelf.showAlert(message: "Received response from GET API, please check the sonar network plugin for detailed response") + } + dataTask.resume() + } + + @IBAction func tappedPOSTAPI(_ sender: UIButton) { + guard let postURL = URL(string: "https://demo9512366.mockable.io/FlipperPost") else { + showAlert(message: "Check the POST URL") + return + } + var postRequest = URLRequest(url: postURL) + postRequest.addValue("application/json", forHTTPHeaderField: "Content-Type") + postRequest.addValue("application/json", forHTTPHeaderField: "Accept") + + let dict = ["app" : "Flipper", "remarks": "Its Awesome"] + postRequest.httpBody = try! JSONSerialization.data(withJSONObject: dict, options: JSONSerialization.WritingOptions.init(rawValue: 0)) + postRequest.httpMethod = "POST" + let dataTask = URLSession.shared.dataTask(with: postRequest){ [weak self] (data, response, error) in + guard let strongSelf = self else { return } + guard let dataUnwrapped = data else { + strongSelf.showAlert(message: "Received no data in POST API") + return + } + + if let errorUnwrapped = error { + strongSelf.showAlert(message: "Received error in POST API Error:\(errorUnwrapped.localizedDescription)") + return + } + + let dict = try! JSONSerialization.jsonObject(with: dataUnwrapped, options: JSONSerialization.ReadingOptions.init(rawValue: 0)) as! [String: String] + // As sonar cannot detect print() in Logs + NSLog("MSG-POST: \(dict["msg"] ?? "Did not find msg key in the received response")") + strongSelf.showAlert(message: "Received response from POST API, please check the sonar network plugin for detailed response") + } + dataTask.resume() + } + + @IBAction func tappedFetchFBLitho(_ sender: UIButton) { + let imageURL = URL(string: "https://raw.githubusercontent.com/facebook/litho/master/docs/static/logo.png")! + let dataTask = URLSession.shared.dataTask(with: imageURL){ [weak self] (data, response, error) in + guard let strongSelf = self else { return } + guard let _ = data else { + strongSelf.showAlert(message: "Received no data in Images API") + return + } + + if let errorUnwrapped = error { + strongSelf.showAlert(message: "Received error in Images API Error:\(errorUnwrapped.localizedDescription)") + return + } + + // As sonar cannot detect print() in Logs + NSLog("Got Image") + strongSelf.showAlert(message: "Received Litho Image") + } + dataTask.resume() + } + + func showAlert(message: String) { + let alertController = UIAlertController.init(title: "Flipper", message: message, preferredStyle: .alert); + let alertAction = UIAlertAction(title: "Okay", style: UIAlertActionStyle.default, handler: nil) + alertController.addAction(alertAction) + present(alertController, animated: true, completion: nil) + } +} diff --git a/iOS/SonarKit.podspec b/iOS/SonarKit.podspec index d9d66242c..76009c55b 100644 --- a/iOS/SonarKit.podspec +++ b/iOS/SonarKit.podspec @@ -106,13 +106,13 @@ Pod::Spec.new do |spec| ss.header_dir = "SonarKitNetworkPlugin" ss.dependency 'SonarKit/Core' ss.compiler_flags = folly_compiler_flags - ss.public_header_files = 'iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin.h', - 'iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin.h', - 'iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKDispatchQueue.h', - 'iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKNetworkReporter.h' + ss.public_header_files = 'iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKBufferingPlugin.h', + 'iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKNetworkReporter.h', + 'iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKRequestInfo.h', + 'iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SKResponseInfo.h', + 'iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/SonarKitNetworkPlugin.h' ss.source_files = "iOS/Plugins/SonarKitNetworkPlugin/SonarKitNetworkPlugin/*.{h,cpp,m,mm}" - ss.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", - "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)\"/Headers/Private/SonarKit/**" } + ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)\"/Headers/Private/SonarKit/**" } end spec.subspec "SKIOSNetworkPlugin" do |ss| @@ -122,7 +122,6 @@ Pod::Spec.new do |spec| ss.compiler_flags = folly_compiler_flags ss.public_header_files = 'iOS/Plugins/SonarKitNetworkPlugin/SKIOSNetworkPlugin/SKIOSNetworkAdapter.h' ss.source_files = "iOS/Plugins/SonarKitNetworkPlugin/SKIOSNetworkPlugin/**/*.{h,cpp,m,mm}" - ss.pod_target_xcconfig = { "USE_HEADERMAP" => "NO", - "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)\"/Headers/Private/SonarKit/**" } + ss.pod_target_xcconfig = { "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)\"/Headers/Private/SonarKit/**" } end end diff --git a/iOS/SonarKit.xcodeproj/project.pbxproj b/iOS/SonarKit.xcodeproj/project.pbxproj index 0743bc3c1..c40fcc470 100644 --- a/iOS/SonarKit.xcodeproj/project.pbxproj +++ b/iOS/SonarKit.xcodeproj/project.pbxproj @@ -7,6 +7,85 @@ objects = { /* Begin PBXBuildFile section */ + 537A850D21123223004A52BB /* SKDispatchQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84B121123223004A52BB /* SKDispatchQueue.h */; }; + 537A850E21123223004A52BB /* SonarKitNetworkPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84B221123223004A52BB /* SonarKitNetworkPlugin.h */; }; + 537A850F21123223004A52BB /* SonarKitNetworkPlugin.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84B321123223004A52BB /* SonarKitNetworkPlugin.mm */; }; + 537A851021123223004A52BB /* SKNetworkReporter.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84B421123223004A52BB /* SKNetworkReporter.h */; }; + 537A851121123223004A52BB /* SKBufferingPlugin.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84B521123223004A52BB /* SKBufferingPlugin.mm */; }; + 537A851221123223004A52BB /* SKBufferingPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84B621123223004A52BB /* SKBufferingPlugin.h */; }; + 537A851321123223004A52BB /* FLEXNetworkObserver.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84B921123223004A52BB /* FLEXNetworkObserver.mm */; }; + 537A851421123223004A52BB /* FLEXNetworkTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A84BA21123223004A52BB /* FLEXNetworkTransaction.m */; }; + 537A851521123223004A52BB /* FLEXNetworkObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84BB21123223004A52BB /* FLEXNetworkObserver.h */; }; + 537A851621123223004A52BB /* FLEXNetworkRecorder.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84BC21123223004A52BB /* FLEXNetworkRecorder.mm */; }; + 537A851721123223004A52BB /* FLEXNetworkTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84BD21123223004A52BB /* FLEXNetworkTransaction.h */; }; + 537A851821123223004A52BB /* FLEXUtility.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84BE21123223004A52BB /* FLEXUtility.mm */; }; + 537A851921123223004A52BB /* FLEXUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84BF21123223004A52BB /* FLEXUtility.h */; }; + 537A851A21123223004A52BB /* FLEXNetworkRecorder.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84C021123223004A52BB /* FLEXNetworkRecorder.h */; }; + 537A851B21123223004A52BB /* SKIOSNetworkAdapter.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84C121123223004A52BB /* SKIOSNetworkAdapter.mm */; }; + 537A851C21123223004A52BB /* SKIOSNetworkAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84C221123223004A52BB /* SKIOSNetworkAdapter.h */; }; + 537A852421123223004A52BB /* Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84CD21123223004A52BB /* Utils.h */; }; + 537A852521123223004A52BB /* CKFlexboxComponent+Sonar.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84CE21123223004A52BB /* CKFlexboxComponent+Sonar.mm */; }; + 537A852621123223004A52BB /* SKComponentRootViewDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84CF21123223004A52BB /* SKComponentRootViewDescriptor.mm */; }; + 537A852721123223004A52BB /* CKComponent+Sonar.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84D021123223004A52BB /* CKComponent+Sonar.mm */; }; + 537A852821123223004A52BB /* Utils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84D121123223004A52BB /* Utils.mm */; }; + 537A852921123223004A52BB /* CKInsetComponent+Sonar.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84D221123223004A52BB /* CKInsetComponent+Sonar.mm */; }; + 537A852A21123223004A52BB /* SKComponentLayoutWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84D321123223004A52BB /* SKComponentLayoutWrapper.h */; }; + 537A852B21123223004A52BB /* CKComponent+Sonar.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84D421123223004A52BB /* CKComponent+Sonar.h */; }; + 537A852C21123223004A52BB /* CKInsetComponent+Sonar.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84D521123223004A52BB /* CKInsetComponent+Sonar.h */; }; + 537A852D21123223004A52BB /* SKComponentLayoutWrapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84D621123223004A52BB /* SKComponentLayoutWrapper.mm */; }; + 537A852E21123223004A52BB /* CKFlexboxComponent+Sonar.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84D721123223004A52BB /* CKFlexboxComponent+Sonar.h */; }; + 537A852F21123223004A52BB /* SKComponentHostingViewDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84D821123223004A52BB /* SKComponentHostingViewDescriptor.mm */; }; + 537A853021123223004A52BB /* SKComponentLayoutDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84D921123223004A52BB /* SKComponentLayoutDescriptor.mm */; }; + 537A853121123223004A52BB /* SKComponentLayoutDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84DA21123223004A52BB /* SKComponentLayoutDescriptor.h */; }; + 537A853221123223004A52BB /* SonarKitLayoutComponentKitSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84DB21123223004A52BB /* SonarKitLayoutComponentKitSupport.h */; }; + 537A853321123223004A52BB /* SKComponentHostingViewDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84DC21123223004A52BB /* SKComponentHostingViewDescriptor.h */; }; + 537A853421123223004A52BB /* SonarKitLayoutComponentKitSupport.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84DD21123223004A52BB /* SonarKitLayoutComponentKitSupport.mm */; }; + 537A853521123223004A52BB /* SKComponentRootViewDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84DE21123223004A52BB /* SKComponentRootViewDescriptor.h */; }; + 537A853621123223004A52BB /* SKNodeDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84E021123223004A52BB /* SKNodeDescriptor.h */; }; + 537A853721123223004A52BB /* SKSearchResultNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84E121123223004A52BB /* SKSearchResultNode.h */; }; + 537A853821123223004A52BB /* UIColor+SKSonarValueCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84E221123223004A52BB /* UIColor+SKSonarValueCoder.h */; }; + 537A853921123223004A52BB /* SKNamed.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84E321123223004A52BB /* SKNamed.mm */; }; + 537A853A21123223004A52BB /* SKTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A84E421123223004A52BB /* SKTouch.m */; }; + 537A853B21123223004A52BB /* SKTapListenerImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A84E521123223004A52BB /* SKTapListenerImpl.m */; }; + 537A853C21123223004A52BB /* UIView+SKInvalidation.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84E621123223004A52BB /* UIView+SKInvalidation.h */; }; + 537A853D21123223004A52BB /* SKHighlightOverlay.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84E721123223004A52BB /* SKHighlightOverlay.h */; }; + 537A853E21123223004A52BB /* UICollectionView+SKInvalidation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84E821123223004A52BB /* UICollectionView+SKInvalidation.mm */; }; + 537A853F21123223004A52BB /* SonarKitLayoutPlugin.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84E921123223004A52BB /* SonarKitLayoutPlugin.mm */; }; + 537A854021123223004A52BB /* SKInvalidation.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84EA21123223004A52BB /* SKInvalidation.h */; }; + 537A854121123223004A52BB /* SKHiddenWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84EC21123223004A52BB /* SKHiddenWindow.h */; }; + 537A854221123223004A52BB /* SKSwizzle.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84ED21123223004A52BB /* SKSwizzle.h */; }; + 537A854321123223004A52BB /* SKYogaKitHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84EE21123223004A52BB /* SKYogaKitHelper.h */; }; + 537A854421123223004A52BB /* SKSwizzle.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84EF21123223004A52BB /* SKSwizzle.mm */; }; + 537A854521123223004A52BB /* SKHiddenWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A84F021123223004A52BB /* SKHiddenWindow.m */; }; + 537A854621123223004A52BB /* SKObjectHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84F121123223004A52BB /* SKObjectHash.h */; }; + 537A854721123223004A52BB /* SKNamed.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84F221123223004A52BB /* SKNamed.h */; }; + 537A854821123223004A52BB /* UIView+SKInvalidation.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84F321123223004A52BB /* UIView+SKInvalidation.mm */; }; + 537A854921123223004A52BB /* SKSearchResultNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A84F421123223004A52BB /* SKSearchResultNode.m */; }; + 537A854A21123223004A52BB /* SKObject.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84F521123223004A52BB /* SKObject.mm */; }; + 537A854B21123223004A52BB /* SKDescriptorMapper.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84F621123223004A52BB /* SKDescriptorMapper.mm */; }; + 537A854C21123223004A52BB /* SonarKitLayoutPlugin.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84F721123223004A52BB /* SonarKitLayoutPlugin.h */; }; + 537A854D21123223004A52BB /* SKViewControllerDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84F921123223004A52BB /* SKViewControllerDescriptor.h */; }; + 537A854E21123223004A52BB /* SKScrollViewDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A84FA21123223004A52BB /* SKScrollViewDescriptor.m */; }; + 537A854F21123223004A52BB /* SKButtonDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A84FB21123223004A52BB /* SKButtonDescriptor.mm */; }; + 537A855021123223004A52BB /* SKApplicationDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A84FC21123223004A52BB /* SKApplicationDescriptor.m */; }; + 537A855121123223004A52BB /* SKButtonDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84FD21123223004A52BB /* SKButtonDescriptor.h */; }; + 537A855221123223004A52BB /* SKScrollViewDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A84FE21123223004A52BB /* SKScrollViewDescriptor.h */; }; + 537A855321123223004A52BB /* SKViewControllerDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A84FF21123223004A52BB /* SKViewControllerDescriptor.m */; }; + 537A855421123223004A52BB /* SKViewDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A850021123223004A52BB /* SKViewDescriptor.h */; }; + 537A855521123223004A52BB /* SKViewDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A850121123223004A52BB /* SKViewDescriptor.mm */; }; + 537A855621123223004A52BB /* SKApplicationDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A850221123223004A52BB /* SKApplicationDescriptor.h */; }; + 537A855721123223004A52BB /* SKTapListenerImpl.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A850321123223004A52BB /* SKTapListenerImpl.h */; }; + 537A855821123223004A52BB /* UIColor+SKSonarValueCoder.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A850421123223004A52BB /* UIColor+SKSonarValueCoder.mm */; }; + 537A855921123223004A52BB /* SKTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A850521123223004A52BB /* SKTouch.h */; }; + 537A855A21123223004A52BB /* SKNodeDescriptor.mm in Sources */ = {isa = PBXBuildFile; fileRef = 537A850621123223004A52BB /* SKNodeDescriptor.mm */; }; + 537A855B21123223004A52BB /* SKHighlightOverlay.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A850721123223004A52BB /* SKHighlightOverlay.m */; }; + 537A855C21123223004A52BB /* SKObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A850821123223004A52BB /* SKObject.h */; }; + 537A855D21123223004A52BB /* UICollectionView+SKInvalidation.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A850921123223004A52BB /* UICollectionView+SKInvalidation.h */; }; + 537A855E21123223004A52BB /* SKDescriptorMapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A850A21123223004A52BB /* SKDescriptorMapper.h */; }; + 537A855F21123223004A52BB /* SKInvalidation.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A850B21123223004A52BB /* SKInvalidation.m */; }; + 537A856021123223004A52BB /* SKTapListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A850C21123223004A52BB /* SKTapListener.h */; }; + 537A856921123BDB004A52BB /* SKRequestInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 537A856721123BDB004A52BB /* SKRequestInfo.h */; }; + 537A856A21123BDB004A52BB /* SKRequestInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 537A856821123BDB004A52BB /* SKRequestInfo.m */; }; 53D19A2620A4BABA00A371E3 /* SonarClient.mm in Sources */ = {isa = PBXBuildFile; fileRef = 53D19A1220A4BAB900A371E3 /* SonarClient.mm */; }; 53D19A2820A4BABA00A371E3 /* SonarUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 53D19A1420A4BAB900A371E3 /* SonarUtil.m */; }; 53D19A2F20A4BABA00A371E3 /* SKPortForwardingServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 53D19A1D20A4BABA00A371E3 /* SKPortForwardingServer.m */; }; @@ -25,11 +104,92 @@ 53D4C50F20A5B72800613A96 /* SKPortForwardingServer.h in Headers */ = {isa = PBXBuildFile; fileRef = 53D19A1B20A4BABA00A371E3 /* SKPortForwardingServer.h */; }; 53D4C51020A5B72800613A96 /* SKPortForwardingCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 53D19A1C20A4BABA00A371E3 /* SKPortForwardingCommon.h */; }; 53D4C51220A5B89900613A96 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53D4C51120A5B89900613A96 /* Foundation.framework */; }; + 53EF578A211240540072E1EA /* SKResponseInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 53EF5788211240540072E1EA /* SKResponseInfo.h */; }; + 53EF578B211240540072E1EA /* SKResponseInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 53EF5789211240540072E1EA /* SKResponseInfo.m */; }; 6AE55F0A77A5644AADF2CEA6 /* libPods-SonarKit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 104CB87D17FDFDC934630C14 /* libPods-SonarKit.a */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 104CB87D17FDFDC934630C14 /* libPods-SonarKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SonarKit.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 537A84B121123223004A52BB /* SKDispatchQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKDispatchQueue.h; sourceTree = ""; }; + 537A84B221123223004A52BB /* SonarKitNetworkPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SonarKitNetworkPlugin.h; sourceTree = ""; }; + 537A84B321123223004A52BB /* SonarKitNetworkPlugin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SonarKitNetworkPlugin.mm; sourceTree = ""; }; + 537A84B421123223004A52BB /* SKNetworkReporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKNetworkReporter.h; sourceTree = ""; }; + 537A84B521123223004A52BB /* SKBufferingPlugin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKBufferingPlugin.mm; sourceTree = ""; }; + 537A84B621123223004A52BB /* SKBufferingPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKBufferingPlugin.h; sourceTree = ""; }; + 537A84B921123223004A52BB /* FLEXNetworkObserver.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FLEXNetworkObserver.mm; sourceTree = ""; }; + 537A84BA21123223004A52BB /* FLEXNetworkTransaction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FLEXNetworkTransaction.m; sourceTree = ""; }; + 537A84BB21123223004A52BB /* FLEXNetworkObserver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLEXNetworkObserver.h; sourceTree = ""; }; + 537A84BC21123223004A52BB /* FLEXNetworkRecorder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FLEXNetworkRecorder.mm; sourceTree = ""; }; + 537A84BD21123223004A52BB /* FLEXNetworkTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLEXNetworkTransaction.h; sourceTree = ""; }; + 537A84BE21123223004A52BB /* FLEXUtility.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FLEXUtility.mm; sourceTree = ""; }; + 537A84BF21123223004A52BB /* FLEXUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLEXUtility.h; sourceTree = ""; }; + 537A84C021123223004A52BB /* FLEXNetworkRecorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FLEXNetworkRecorder.h; sourceTree = ""; }; + 537A84C121123223004A52BB /* SKIOSNetworkAdapter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKIOSNetworkAdapter.mm; sourceTree = ""; }; + 537A84C221123223004A52BB /* SKIOSNetworkAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKIOSNetworkAdapter.h; sourceTree = ""; }; + 537A84CD21123223004A52BB /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utils.h; sourceTree = ""; }; + 537A84CE21123223004A52BB /* CKFlexboxComponent+Sonar.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "CKFlexboxComponent+Sonar.mm"; sourceTree = ""; }; + 537A84CF21123223004A52BB /* SKComponentRootViewDescriptor.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKComponentRootViewDescriptor.mm; sourceTree = ""; }; + 537A84D021123223004A52BB /* CKComponent+Sonar.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "CKComponent+Sonar.mm"; sourceTree = ""; }; + 537A84D121123223004A52BB /* Utils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Utils.mm; sourceTree = ""; }; + 537A84D221123223004A52BB /* CKInsetComponent+Sonar.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "CKInsetComponent+Sonar.mm"; sourceTree = ""; }; + 537A84D321123223004A52BB /* SKComponentLayoutWrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKComponentLayoutWrapper.h; sourceTree = ""; }; + 537A84D421123223004A52BB /* CKComponent+Sonar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CKComponent+Sonar.h"; sourceTree = ""; }; + 537A84D521123223004A52BB /* CKInsetComponent+Sonar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CKInsetComponent+Sonar.h"; sourceTree = ""; }; + 537A84D621123223004A52BB /* SKComponentLayoutWrapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKComponentLayoutWrapper.mm; sourceTree = ""; }; + 537A84D721123223004A52BB /* CKFlexboxComponent+Sonar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CKFlexboxComponent+Sonar.h"; sourceTree = ""; }; + 537A84D821123223004A52BB /* SKComponentHostingViewDescriptor.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKComponentHostingViewDescriptor.mm; sourceTree = ""; }; + 537A84D921123223004A52BB /* SKComponentLayoutDescriptor.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKComponentLayoutDescriptor.mm; sourceTree = ""; }; + 537A84DA21123223004A52BB /* SKComponentLayoutDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKComponentLayoutDescriptor.h; sourceTree = ""; }; + 537A84DB21123223004A52BB /* SonarKitLayoutComponentKitSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SonarKitLayoutComponentKitSupport.h; sourceTree = ""; }; + 537A84DC21123223004A52BB /* SKComponentHostingViewDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKComponentHostingViewDescriptor.h; sourceTree = ""; }; + 537A84DD21123223004A52BB /* SonarKitLayoutComponentKitSupport.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SonarKitLayoutComponentKitSupport.mm; sourceTree = ""; }; + 537A84DE21123223004A52BB /* SKComponentRootViewDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKComponentRootViewDescriptor.h; sourceTree = ""; }; + 537A84E021123223004A52BB /* SKNodeDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKNodeDescriptor.h; sourceTree = ""; }; + 537A84E121123223004A52BB /* SKSearchResultNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKSearchResultNode.h; sourceTree = ""; }; + 537A84E221123223004A52BB /* UIColor+SKSonarValueCoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIColor+SKSonarValueCoder.h"; sourceTree = ""; }; + 537A84E321123223004A52BB /* SKNamed.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKNamed.mm; sourceTree = ""; }; + 537A84E421123223004A52BB /* SKTouch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKTouch.m; sourceTree = ""; }; + 537A84E521123223004A52BB /* SKTapListenerImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKTapListenerImpl.m; sourceTree = ""; }; + 537A84E621123223004A52BB /* UIView+SKInvalidation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+SKInvalidation.h"; sourceTree = ""; }; + 537A84E721123223004A52BB /* SKHighlightOverlay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKHighlightOverlay.h; sourceTree = ""; }; + 537A84E821123223004A52BB /* UICollectionView+SKInvalidation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "UICollectionView+SKInvalidation.mm"; sourceTree = ""; }; + 537A84E921123223004A52BB /* SonarKitLayoutPlugin.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SonarKitLayoutPlugin.mm; sourceTree = ""; }; + 537A84EA21123223004A52BB /* SKInvalidation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKInvalidation.h; sourceTree = ""; }; + 537A84EC21123223004A52BB /* SKHiddenWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKHiddenWindow.h; sourceTree = ""; }; + 537A84ED21123223004A52BB /* SKSwizzle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKSwizzle.h; sourceTree = ""; }; + 537A84EE21123223004A52BB /* SKYogaKitHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKYogaKitHelper.h; sourceTree = ""; }; + 537A84EF21123223004A52BB /* SKSwizzle.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKSwizzle.mm; sourceTree = ""; }; + 537A84F021123223004A52BB /* SKHiddenWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKHiddenWindow.m; sourceTree = ""; }; + 537A84F121123223004A52BB /* SKObjectHash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKObjectHash.h; sourceTree = ""; }; + 537A84F221123223004A52BB /* SKNamed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKNamed.h; sourceTree = ""; }; + 537A84F321123223004A52BB /* UIView+SKInvalidation.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "UIView+SKInvalidation.mm"; sourceTree = ""; }; + 537A84F421123223004A52BB /* SKSearchResultNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKSearchResultNode.m; sourceTree = ""; }; + 537A84F521123223004A52BB /* SKObject.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKObject.mm; sourceTree = ""; }; + 537A84F621123223004A52BB /* SKDescriptorMapper.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKDescriptorMapper.mm; sourceTree = ""; }; + 537A84F721123223004A52BB /* SonarKitLayoutPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SonarKitLayoutPlugin.h; sourceTree = ""; }; + 537A84F921123223004A52BB /* SKViewControllerDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKViewControllerDescriptor.h; sourceTree = ""; }; + 537A84FA21123223004A52BB /* SKScrollViewDescriptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKScrollViewDescriptor.m; sourceTree = ""; }; + 537A84FB21123223004A52BB /* SKButtonDescriptor.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKButtonDescriptor.mm; sourceTree = ""; }; + 537A84FC21123223004A52BB /* SKApplicationDescriptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKApplicationDescriptor.m; sourceTree = ""; }; + 537A84FD21123223004A52BB /* SKButtonDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKButtonDescriptor.h; sourceTree = ""; }; + 537A84FE21123223004A52BB /* SKScrollViewDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKScrollViewDescriptor.h; sourceTree = ""; }; + 537A84FF21123223004A52BB /* SKViewControllerDescriptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKViewControllerDescriptor.m; sourceTree = ""; }; + 537A850021123223004A52BB /* SKViewDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKViewDescriptor.h; sourceTree = ""; }; + 537A850121123223004A52BB /* SKViewDescriptor.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKViewDescriptor.mm; sourceTree = ""; }; + 537A850221123223004A52BB /* SKApplicationDescriptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKApplicationDescriptor.h; sourceTree = ""; }; + 537A850321123223004A52BB /* SKTapListenerImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKTapListenerImpl.h; sourceTree = ""; }; + 537A850421123223004A52BB /* UIColor+SKSonarValueCoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "UIColor+SKSonarValueCoder.mm"; sourceTree = ""; }; + 537A850521123223004A52BB /* SKTouch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKTouch.h; sourceTree = ""; }; + 537A850621123223004A52BB /* SKNodeDescriptor.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SKNodeDescriptor.mm; sourceTree = ""; }; + 537A850721123223004A52BB /* SKHighlightOverlay.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKHighlightOverlay.m; sourceTree = ""; }; + 537A850821123223004A52BB /* SKObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKObject.h; sourceTree = ""; }; + 537A850921123223004A52BB /* UICollectionView+SKInvalidation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UICollectionView+SKInvalidation.h"; sourceTree = ""; }; + 537A850A21123223004A52BB /* SKDescriptorMapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKDescriptorMapper.h; sourceTree = ""; }; + 537A850B21123223004A52BB /* SKInvalidation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKInvalidation.m; sourceTree = ""; }; + 537A850C21123223004A52BB /* SKTapListener.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKTapListener.h; sourceTree = ""; }; + 537A856721123BDB004A52BB /* SKRequestInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SKRequestInfo.h; sourceTree = ""; }; + 537A856821123BDB004A52BB /* SKRequestInfo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SKRequestInfo.m; sourceTree = ""; }; 53D19A0520A4BA3600A371E3 /* SonarKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SonarKit.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 53D19A0920A4BA3600A371E3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 53D19A1020A4BAB900A371E3 /* SKMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKMacros.h; sourceTree = ""; }; @@ -50,6 +210,8 @@ 53D3BBD620C629230022EB45 /* FBCxxFollyDynamicConvert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = FBCxxFollyDynamicConvert.mm; sourceTree = ""; }; 53D3BBD720C629230022EB45 /* FBCxxFollyDynamicConvert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCxxFollyDynamicConvert.h; sourceTree = ""; }; 53D4C51120A5B89900613A96 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 53EF5788211240540072E1EA /* SKResponseInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SKResponseInfo.h; sourceTree = ""; }; + 53EF5789211240540072E1EA /* SKResponseInfo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SKResponseInfo.m; sourceTree = ""; }; 5B3C0104984F1A2F624E5394 /* Pods-SonarKit.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SonarKit.release.xcconfig"; path = "Pods/Target Support Files/Pods-SonarKit/Pods-SonarKit.release.xcconfig"; sourceTree = ""; }; C6253FA5661121EDD200B8A9 /* Pods-SonarKit.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-SonarKit.debug.xcconfig"; path = "Pods/Target Support Files/Pods-SonarKit/Pods-SonarKit.debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ @@ -76,6 +238,166 @@ name = Pods; sourceTree = ""; }; + 537A84AE21123223004A52BB /* Plugins */ = { + isa = PBXGroup; + children = ( + 537A84AF21123223004A52BB /* SonarKitNetworkPlugin */, + 537A84C321123223004A52BB /* SonarKitLayoutPlugin */, + ); + path = Plugins; + sourceTree = SOURCE_ROOT; + }; + 537A84AF21123223004A52BB /* SonarKitNetworkPlugin */ = { + isa = PBXGroup; + children = ( + 537A84B021123223004A52BB /* SonarKitNetworkPlugin */, + 537A84B721123223004A52BB /* SKIOSNetworkPlugin */, + ); + path = SonarKitNetworkPlugin; + sourceTree = ""; + }; + 537A84B021123223004A52BB /* SonarKitNetworkPlugin */ = { + isa = PBXGroup; + children = ( + 537A84B121123223004A52BB /* SKDispatchQueue.h */, + 537A84B221123223004A52BB /* SonarKitNetworkPlugin.h */, + 537A84B321123223004A52BB /* SonarKitNetworkPlugin.mm */, + 537A84B421123223004A52BB /* SKNetworkReporter.h */, + 537A84B521123223004A52BB /* SKBufferingPlugin.mm */, + 537A84B621123223004A52BB /* SKBufferingPlugin.h */, + 537A856721123BDB004A52BB /* SKRequestInfo.h */, + 537A856821123BDB004A52BB /* SKRequestInfo.m */, + 53EF5788211240540072E1EA /* SKResponseInfo.h */, + 53EF5789211240540072E1EA /* SKResponseInfo.m */, + ); + path = SonarKitNetworkPlugin; + sourceTree = ""; + }; + 537A84B721123223004A52BB /* SKIOSNetworkPlugin */ = { + isa = PBXGroup; + children = ( + 537A84B821123223004A52BB /* FLEXNetworkLib */, + 537A84C121123223004A52BB /* SKIOSNetworkAdapter.mm */, + 537A84C221123223004A52BB /* SKIOSNetworkAdapter.h */, + ); + path = SKIOSNetworkPlugin; + sourceTree = ""; + }; + 537A84B821123223004A52BB /* FLEXNetworkLib */ = { + isa = PBXGroup; + children = ( + 537A84B921123223004A52BB /* FLEXNetworkObserver.mm */, + 537A84BA21123223004A52BB /* FLEXNetworkTransaction.m */, + 537A84BB21123223004A52BB /* FLEXNetworkObserver.h */, + 537A84BC21123223004A52BB /* FLEXNetworkRecorder.mm */, + 537A84BD21123223004A52BB /* FLEXNetworkTransaction.h */, + 537A84BE21123223004A52BB /* FLEXUtility.mm */, + 537A84BF21123223004A52BB /* FLEXUtility.h */, + 537A84C021123223004A52BB /* FLEXNetworkRecorder.h */, + ); + path = FLEXNetworkLib; + sourceTree = ""; + }; + 537A84C321123223004A52BB /* SonarKitLayoutPlugin */ = { + isa = PBXGroup; + children = ( + 537A84CC21123223004A52BB /* SonarKitLayoutComponentKitSupport */, + 537A84DF21123223004A52BB /* SonarKitLayoutPlugin */, + ); + path = SonarKitLayoutPlugin; + sourceTree = ""; + }; + 537A84CC21123223004A52BB /* SonarKitLayoutComponentKitSupport */ = { + isa = PBXGroup; + children = ( + 537A84CD21123223004A52BB /* Utils.h */, + 537A84CE21123223004A52BB /* CKFlexboxComponent+Sonar.mm */, + 537A84CF21123223004A52BB /* SKComponentRootViewDescriptor.mm */, + 537A84D021123223004A52BB /* CKComponent+Sonar.mm */, + 537A84D121123223004A52BB /* Utils.mm */, + 537A84D221123223004A52BB /* CKInsetComponent+Sonar.mm */, + 537A84D321123223004A52BB /* SKComponentLayoutWrapper.h */, + 537A84D421123223004A52BB /* CKComponent+Sonar.h */, + 537A84D521123223004A52BB /* CKInsetComponent+Sonar.h */, + 537A84D621123223004A52BB /* SKComponentLayoutWrapper.mm */, + 537A84D721123223004A52BB /* CKFlexboxComponent+Sonar.h */, + 537A84D821123223004A52BB /* SKComponentHostingViewDescriptor.mm */, + 537A84D921123223004A52BB /* SKComponentLayoutDescriptor.mm */, + 537A84DA21123223004A52BB /* SKComponentLayoutDescriptor.h */, + 537A84DB21123223004A52BB /* SonarKitLayoutComponentKitSupport.h */, + 537A84DC21123223004A52BB /* SKComponentHostingViewDescriptor.h */, + 537A84DD21123223004A52BB /* SonarKitLayoutComponentKitSupport.mm */, + 537A84DE21123223004A52BB /* SKComponentRootViewDescriptor.h */, + ); + path = SonarKitLayoutComponentKitSupport; + sourceTree = ""; + }; + 537A84DF21123223004A52BB /* SonarKitLayoutPlugin */ = { + isa = PBXGroup; + children = ( + 537A84E021123223004A52BB /* SKNodeDescriptor.h */, + 537A84E121123223004A52BB /* SKSearchResultNode.h */, + 537A84E221123223004A52BB /* UIColor+SKSonarValueCoder.h */, + 537A84E321123223004A52BB /* SKNamed.mm */, + 537A84E421123223004A52BB /* SKTouch.m */, + 537A84E521123223004A52BB /* SKTapListenerImpl.m */, + 537A84E621123223004A52BB /* UIView+SKInvalidation.h */, + 537A84E721123223004A52BB /* SKHighlightOverlay.h */, + 537A84E821123223004A52BB /* UICollectionView+SKInvalidation.mm */, + 537A84E921123223004A52BB /* SonarKitLayoutPlugin.mm */, + 537A84EA21123223004A52BB /* SKInvalidation.h */, + 537A84EB21123223004A52BB /* utils */, + 537A84F221123223004A52BB /* SKNamed.h */, + 537A84F321123223004A52BB /* UIView+SKInvalidation.mm */, + 537A84F421123223004A52BB /* SKSearchResultNode.m */, + 537A84F521123223004A52BB /* SKObject.mm */, + 537A84F621123223004A52BB /* SKDescriptorMapper.mm */, + 537A84F721123223004A52BB /* SonarKitLayoutPlugin.h */, + 537A84F821123223004A52BB /* descriptors */, + 537A850321123223004A52BB /* SKTapListenerImpl.h */, + 537A850421123223004A52BB /* UIColor+SKSonarValueCoder.mm */, + 537A850521123223004A52BB /* SKTouch.h */, + 537A850621123223004A52BB /* SKNodeDescriptor.mm */, + 537A850721123223004A52BB /* SKHighlightOverlay.m */, + 537A850821123223004A52BB /* SKObject.h */, + 537A850921123223004A52BB /* UICollectionView+SKInvalidation.h */, + 537A850A21123223004A52BB /* SKDescriptorMapper.h */, + 537A850B21123223004A52BB /* SKInvalidation.m */, + 537A850C21123223004A52BB /* SKTapListener.h */, + ); + path = SonarKitLayoutPlugin; + sourceTree = ""; + }; + 537A84EB21123223004A52BB /* utils */ = { + isa = PBXGroup; + children = ( + 537A84EC21123223004A52BB /* SKHiddenWindow.h */, + 537A84ED21123223004A52BB /* SKSwizzle.h */, + 537A84EE21123223004A52BB /* SKYogaKitHelper.h */, + 537A84EF21123223004A52BB /* SKSwizzle.mm */, + 537A84F021123223004A52BB /* SKHiddenWindow.m */, + 537A84F121123223004A52BB /* SKObjectHash.h */, + ); + path = utils; + sourceTree = ""; + }; + 537A84F821123223004A52BB /* descriptors */ = { + isa = PBXGroup; + children = ( + 537A84F921123223004A52BB /* SKViewControllerDescriptor.h */, + 537A84FA21123223004A52BB /* SKScrollViewDescriptor.m */, + 537A84FB21123223004A52BB /* SKButtonDescriptor.mm */, + 537A84FC21123223004A52BB /* SKApplicationDescriptor.m */, + 537A84FD21123223004A52BB /* SKButtonDescriptor.h */, + 537A84FE21123223004A52BB /* SKScrollViewDescriptor.h */, + 537A84FF21123223004A52BB /* SKViewControllerDescriptor.m */, + 537A850021123223004A52BB /* SKViewDescriptor.h */, + 537A850121123223004A52BB /* SKViewDescriptor.mm */, + 537A850221123223004A52BB /* SKApplicationDescriptor.h */, + ); + path = descriptors; + sourceTree = ""; + }; 53D199FB20A4BA3600A371E3 = { isa = PBXGroup; children = ( @@ -97,6 +419,7 @@ 53D19A0720A4BA3600A371E3 /* SonarKit */ = { isa = PBXGroup; children = ( + 537A84AE21123223004A52BB /* Plugins */, 53D3BBD520C629230022EB45 /* FBCxxUtils */, 53D19A1E20A4BABA00A371E3 /* CppBridge */, 53D19A1020A4BAB900A371E3 /* SKMacros.h */, @@ -167,16 +490,59 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 537A856021123223004A52BB /* SKTapListener.h in Headers */, + 537A855E21123223004A52BB /* SKDescriptorMapper.h in Headers */, 53D4C50B20A5B72800613A96 /* SonarConnection.h in Headers */, + 537A853C21123223004A52BB /* UIView+SKInvalidation.h in Headers */, + 537A851221123223004A52BB /* SKBufferingPlugin.h in Headers */, + 537A855221123223004A52BB /* SKScrollViewDescriptor.h in Headers */, + 537A851721123223004A52BB /* FLEXNetworkTransaction.h in Headers */, + 537A852E21123223004A52BB /* CKFlexboxComponent+Sonar.h in Headers */, + 537A853521123223004A52BB /* SKComponentRootViewDescriptor.h in Headers */, + 537A855D21123223004A52BB /* UICollectionView+SKInvalidation.h in Headers */, + 537A853721123223004A52BB /* SKSearchResultNode.h in Headers */, + 537A854221123223004A52BB /* SKSwizzle.h in Headers */, + 537A853321123223004A52BB /* SKComponentHostingViewDescriptor.h in Headers */, + 537A853221123223004A52BB /* SonarKitLayoutComponentKitSupport.h in Headers */, 53D4C50D20A5B72800613A96 /* SonarResponder.h in Headers */, + 537A853D21123223004A52BB /* SKHighlightOverlay.h in Headers */, + 537A854C21123223004A52BB /* SonarKitLayoutPlugin.h in Headers */, + 537A850E21123223004A52BB /* SonarKitNetworkPlugin.h in Headers */, 53D4C50620A5B72800613A96 /* SonarCppWrapperPlugin.h in Headers */, + 537A853621123223004A52BB /* SKNodeDescriptor.h in Headers */, + 537A854621123223004A52BB /* SKObjectHash.h in Headers */, + 537A855921123223004A52BB /* SKTouch.h in Headers */, + 537A854021123223004A52BB /* SKInvalidation.h in Headers */, + 537A852421123223004A52BB /* Utils.h in Headers */, + 537A855621123223004A52BB /* SKApplicationDescriptor.h in Headers */, 53D4C50720A5B72800613A96 /* SonarCppBridgingConnection.h in Headers */, + 537A852C21123223004A52BB /* CKInsetComponent+Sonar.h in Headers */, + 537A856921123BDB004A52BB /* SKRequestInfo.h in Headers */, + 537A855721123223004A52BB /* SKTapListenerImpl.h in Headers */, + 537A851C21123223004A52BB /* SKIOSNetworkAdapter.h in Headers */, + 537A855121123223004A52BB /* SKButtonDescriptor.h in Headers */, 53D4C50820A5B72800613A96 /* SonarCppBridgingResponder.h in Headers */, + 537A854721123223004A52BB /* SKNamed.h in Headers */, 53D4C50920A5B72800613A96 /* SKMacros.h in Headers */, + 537A854D21123223004A52BB /* SKViewControllerDescriptor.h in Headers */, 53D4C50A20A5B72800613A96 /* SonarClient.h in Headers */, + 53EF578A211240540072E1EA /* SKResponseInfo.h in Headers */, + 537A854321123223004A52BB /* SKYogaKitHelper.h in Headers */, + 537A854121123223004A52BB /* SKHiddenWindow.h in Headers */, + 537A855421123223004A52BB /* SKViewDescriptor.h in Headers */, + 537A853821123223004A52BB /* UIColor+SKSonarValueCoder.h in Headers */, + 537A855C21123223004A52BB /* SKObject.h in Headers */, 53D3BBD920C629230022EB45 /* FBCxxFollyDynamicConvert.h in Headers */, 53D4C50C20A5B72800613A96 /* SonarPlugin.h in Headers */, + 537A853121123223004A52BB /* SKComponentLayoutDescriptor.h in Headers */, + 537A851921123223004A52BB /* FLEXUtility.h in Headers */, + 537A851A21123223004A52BB /* FLEXNetworkRecorder.h in Headers */, 53D4C50F20A5B72800613A96 /* SKPortForwardingServer.h in Headers */, + 537A851521123223004A52BB /* FLEXNetworkObserver.h in Headers */, + 537A852A21123223004A52BB /* SKComponentLayoutWrapper.h in Headers */, + 537A850D21123223004A52BB /* SKDispatchQueue.h in Headers */, + 537A851021123223004A52BB /* SKNetworkReporter.h in Headers */, + 537A852B21123223004A52BB /* CKComponent+Sonar.h in Headers */, 53D4C51020A5B72800613A96 /* SKPortForwardingCommon.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -214,6 +580,7 @@ TargetAttributes = { 53D19A0420A4BA3600A371E3 = { CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 0920; ProvisioningStyle = Automatic; }; }; @@ -271,11 +638,49 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 537A854521123223004A52BB /* SKHiddenWindow.m in Sources */, + 537A853E21123223004A52BB /* UICollectionView+SKInvalidation.mm in Sources */, + 537A854921123223004A52BB /* SKSearchResultNode.m in Sources */, + 537A854821123223004A52BB /* UIView+SKInvalidation.mm in Sources */, + 537A851421123223004A52BB /* FLEXNetworkTransaction.m in Sources */, + 537A853021123223004A52BB /* SKComponentLayoutDescriptor.mm in Sources */, + 537A855321123223004A52BB /* SKViewControllerDescriptor.m in Sources */, + 537A852F21123223004A52BB /* SKComponentHostingViewDescriptor.mm in Sources */, + 537A854E21123223004A52BB /* SKScrollViewDescriptor.m in Sources */, + 537A856A21123BDB004A52BB /* SKRequestInfo.m in Sources */, + 537A852821123223004A52BB /* Utils.mm in Sources */, + 537A853921123223004A52BB /* SKNamed.mm in Sources */, + 537A854F21123223004A52BB /* SKButtonDescriptor.mm in Sources */, + 537A852521123223004A52BB /* CKFlexboxComponent+Sonar.mm in Sources */, + 537A852D21123223004A52BB /* SKComponentLayoutWrapper.mm in Sources */, 53D3BBD820C629230022EB45 /* FBCxxFollyDynamicConvert.mm in Sources */, + 537A854B21123223004A52BB /* SKDescriptorMapper.mm in Sources */, + 537A855521123223004A52BB /* SKViewDescriptor.mm in Sources */, + 537A854421123223004A52BB /* SKSwizzle.mm in Sources */, + 53EF578B211240540072E1EA /* SKResponseInfo.m in Sources */, + 537A851121123223004A52BB /* SKBufferingPlugin.mm in Sources */, + 537A855821123223004A52BB /* UIColor+SKSonarValueCoder.mm in Sources */, + 537A854A21123223004A52BB /* SKObject.mm in Sources */, 53D19A3320A4BABA00A371E3 /* SonarCppBridgingResponder.mm in Sources */, + 537A855B21123223004A52BB /* SKHighlightOverlay.m in Sources */, + 537A855021123223004A52BB /* SKApplicationDescriptor.m in Sources */, 53D19A2F20A4BABA00A371E3 /* SKPortForwardingServer.m in Sources */, + 537A855A21123223004A52BB /* SKNodeDescriptor.mm in Sources */, + 537A851821123223004A52BB /* FLEXUtility.mm in Sources */, + 537A853421123223004A52BB /* SonarKitLayoutComponentKitSupport.mm in Sources */, + 537A852621123223004A52BB /* SKComponentRootViewDescriptor.mm in Sources */, + 537A851621123223004A52BB /* FLEXNetworkRecorder.mm in Sources */, 53D19A3020A4BABA00A371E3 /* SonarCppBridgingConnection.mm in Sources */, + 537A850F21123223004A52BB /* SonarKitNetworkPlugin.mm in Sources */, + 537A853B21123223004A52BB /* SKTapListenerImpl.m in Sources */, 53D19A2620A4BABA00A371E3 /* SonarClient.mm in Sources */, + 537A853F21123223004A52BB /* SonarKitLayoutPlugin.mm in Sources */, + 537A853A21123223004A52BB /* SKTouch.m in Sources */, + 537A852721123223004A52BB /* CKComponent+Sonar.mm in Sources */, + 537A855F21123223004A52BB /* SKInvalidation.m in Sources */, + 537A851B21123223004A52BB /* SKIOSNetworkAdapter.mm in Sources */, + 537A852921123223004A52BB /* CKInsetComponent+Sonar.mm in Sources */, + 537A851321123223004A52BB /* FLEXNetworkObserver.mm in Sources */, 53D19A2820A4BABA00A371E3 /* SonarUtil.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -406,6 +811,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "c++14"; CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; DEFINES_MODULE = YES; @@ -428,6 +834,8 @@ "${PODS_ROOT}/Headers/Public/glog", "${PODS_ROOT}/Headers/Public/CocoaAsyncSocket", /usr/local/Cellar/openssl/1.0.2o_1/include, + "${SRCROOT}", + "${SRCROOT}/Plugins/**", ); INFOPLIST_FILE = SonarKit/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -467,10 +875,13 @@ PRODUCT_BUNDLE_IDENTIFIER = FB.SonarKit; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; USER_HEADER_SEARCH_PATHS = ""; "USER_HEADER_SEARCH_PATHS[arch=*]" = "${SRCROOT}/SonarKit/** ${SRCROOT}/../xplat/**"; USE_HEADERMAP = YES; + VALID_ARCHS = "armv7s armv7 arm64"; }; name = Debug; }; @@ -481,6 +892,7 @@ ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "c++14"; CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; DEFINES_MODULE = YES; @@ -499,6 +911,8 @@ "${PODS_ROOT}/Headers/Public/glog", "${PODS_ROOT}/Headers/Public/CocoaAsyncSocket", /usr/local/Cellar/openssl/1.0.2o_1/include, + "${SRCROOT}", + "${SRCROOT}/Plugins/**", ); INFOPLIST_FILE = SonarKit/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -538,9 +952,11 @@ PRODUCT_BUNDLE_IDENTIFIER = FB.SonarKit; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; TARGETED_DEVICE_FAMILY = "1,2"; USER_HEADER_SEARCH_PATHS = ""; USE_HEADERMAP = YES; + VALID_ARCHS = "armv7s armv7 arm64"; }; name = Release; };