From 49a0c03ff07294e4f44001d7237e7e910daec2ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Wed, 20 Mar 2019 13:29:45 +0100 Subject: [PATCH] ios: fix deprecation warning NSURLConnection sendSynchronousRequest is deprecated since iOS 9. Replace the method by whjat's currently on RN master, which implements a modern alternative. --- ios/sdk/src/RCTBridgeWrapper.m | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/ios/sdk/src/RCTBridgeWrapper.m b/ios/sdk/src/RCTBridgeWrapper.m index 9cb8a8025..2e3da65c8 100644 --- a/ios/sdk/src/RCTBridgeWrapper.m +++ b/ios/sdk/src/RCTBridgeWrapper.m @@ -43,16 +43,25 @@ static NSURL *serverRootWithHost(NSString *host) { } - (BOOL)isPackagerRunning:(NSString *)host { - NSURL *url - = [serverRootWithHost(host) URLByAppendingPathComponent:@"status"]; - NSURLRequest *request = [NSURLRequest requestWithURL:url]; - NSURLResponse *response; - NSData *data = [NSURLConnection sendSynchronousRequest:request - returningResponse:&response - error:NULL]; - NSString *status = [[NSString alloc] initWithData:data - encoding:NSUTF8StringEncoding]; + NSURL *url = [serverRootWithHost(host) URLByAppendingPathComponent:@"status"]; + NSURLSession *session = [NSURLSession sharedSession]; + NSURLRequest *request = [NSURLRequest requestWithURL:url]; + __block NSURLResponse *response; + __block NSData *data; + + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + [[session dataTaskWithRequest:request + completionHandler:^(NSData *d, + NSURLResponse *res, + __unused NSError *err) { + data = d; + response = res; + dispatch_semaphore_signal(semaphore); + }] resume]; + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); + + NSString *status = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; return [status isEqualToString:@"packager-status:running"]; }