From ce2f1192227558c8a0709b7486a3f277825105f4 Mon Sep 17 00:00:00 2001 From: Ben Nham Date: Thu, 11 Aug 2016 18:32:38 -0700 Subject: [PATCH] fix loading of dynamic linked JavaScriptCore on iOS simulator Reviewed By: michalgr Differential Revision: D3703392 fbshipit-source-id: 670185de1eefd1c542de2df96e40aede3b2c12cc --- React/Executors/RCTJSCWrapper.mm | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/React/Executors/RCTJSCWrapper.mm b/React/Executors/RCTJSCWrapper.mm index 222ebfc661b..237eb64e591 100644 --- a/React/Executors/RCTJSCWrapper.mm +++ b/React/Executors/RCTJSCWrapper.mm @@ -21,16 +21,18 @@ static void *RCTCustomLibraryHandler(void) static dispatch_once_t token; static void *handler; dispatch_once(&token, ^{ - const char *path = [[[NSBundle mainBundle] pathForResource:@"JavaScriptCore" - ofType:nil - inDirectory:@"Frameworks/JavaScriptCore.framework"] UTF8String]; - if (path) { - handler = dlopen(path, RTLD_LAZY); - if (!handler) { - RCTLogWarn(@"Can't load custom JSC library: %s", dlerror()); + handler = dlopen("@executable_path/Frameworks/JavaScriptCore.framework/JavaScriptCore", RTLD_LAZY); + if (!handler) { + const char *err = dlerror(); + + // Ignore the dlopen failure if custom JSC wasn't included in our app + // bundle. Unfortunately dlopen only provides string based errors. + if (err != nullptr && strstr(err, "image not found") == nullptr) { + RCTLogWarn(@"Can't load custom JSC library: %s", err); } } }); + return handler; }