fix building for ios simulator from cli/xcode

This commit is contained in:
Roman Volosovskyi 2021-05-11 10:39:21 +03:00
parent 6a71a1e798
commit 6c7d689a7c
No known key found for this signature in database
GPG Key ID: 0238A4B5ECEE70DE
4 changed files with 23 additions and 161 deletions

View File

@ -34,11 +34,21 @@ abstract_target 'Status' do
target 'StatusImPR' do target 'StatusImPR' do
end end
use_flipper!({ 'Flipper' => '0.74.0' }) #commented out temporarily
post_install do |installer| #use_flipper!({ 'Flipper' => '0.74.0' })
flipper_post_install(installer) #post_install do |installer|
end # flipper_post_install(installer)
#end
# some of libs wouldn't be build for x86_64 otherwise and that is
# necessary for ios simulators
post_install do |installer_representation|
installer_representation.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
end
end
end
use_native_modules! use_native_modules!
end end

View File

@ -2,7 +2,6 @@ PODS:
- boost-for-react-native (1.63.0) - boost-for-react-native (1.63.0)
- BVLinearGradient (2.5.6): - BVLinearGradient (2.5.6):
- React - React
- CocoaAsyncSocket (7.6.5)
- CryptoSwift (1.3.8) - CryptoSwift (1.3.8)
- DoubleConversion (1.1.6) - DoubleConversion (1.1.6)
- FBLazyVector (0.63.4) - FBLazyVector (0.63.4)
@ -13,52 +12,6 @@ PODS:
- React-Core (= 0.63.4) - React-Core (= 0.63.4)
- React-jsi (= 0.63.4) - React-jsi (= 0.63.4)
- ReactCommon/turbomodule/core (= 0.63.4) - ReactCommon/turbomodule/core (= 0.63.4)
- Flipper (0.74.0):
- Flipper-Folly (~> 2.5)
- Flipper-RSocket (~> 1.3)
- Flipper-DoubleConversion (1.1.7)
- Flipper-Folly (2.5.1):
- boost-for-react-native
- Flipper-DoubleConversion
- Flipper-Glog
- libevent (~> 2.1.12)
- OpenSSL-Universal (= 1.1.180)
- Flipper-Glog (0.3.6)
- Flipper-PeerTalk (0.0.4)
- Flipper-RSocket (1.3.1):
- Flipper-Folly (~> 2.5)
- FlipperKit (0.74.0):
- FlipperKit/Core (= 0.74.0)
- FlipperKit/Core (0.74.0):
- Flipper (~> 0.74.0)
- FlipperKit/CppBridge
- FlipperKit/FBCxxFollyDynamicConvert
- FlipperKit/FBDefines
- FlipperKit/FKPortForwarding
- FlipperKit/CppBridge (0.74.0):
- Flipper (~> 0.74.0)
- FlipperKit/FBCxxFollyDynamicConvert (0.74.0):
- Flipper-Folly (~> 2.5)
- FlipperKit/FBDefines (0.74.0)
- FlipperKit/FKPortForwarding (0.74.0):
- CocoaAsyncSocket (~> 7.6)
- Flipper-PeerTalk (~> 0.0.4)
- FlipperKit/FlipperKitHighlightOverlay (0.74.0)
- FlipperKit/FlipperKitLayoutPlugin (0.74.0):
- FlipperKit/Core
- FlipperKit/FlipperKitHighlightOverlay
- FlipperKit/FlipperKitLayoutTextSearchable
- YogaKit (~> 1.18)
- FlipperKit/FlipperKitLayoutTextSearchable (0.74.0)
- FlipperKit/FlipperKitNetworkPlugin (0.74.0):
- FlipperKit/Core
- FlipperKit/FlipperKitReactPlugin (0.74.0):
- FlipperKit/Core
- FlipperKit/FlipperKitUserDefaultsPlugin (0.74.0):
- FlipperKit/Core
- FlipperKit/SKIOSNetworkPlugin (0.74.0):
- FlipperKit/Core
- FlipperKit/FlipperKitNetworkPlugin
- Folly (2020.01.13.00): - Folly (2020.01.13.00):
- boost-for-react-native - boost-for-react-native
- DoubleConversion - DoubleConversion
@ -72,8 +25,6 @@ PODS:
- Keycard (3.0.4): - Keycard (3.0.4):
- CryptoSwift - CryptoSwift
- secp256k1 - secp256k1
- libevent (2.1.12)
- OpenSSL-Universal (1.1.180)
- Permission-Camera (2.1.5): - Permission-Camera (2.1.5):
- RNPermissions - RNPermissions
- Permission-Microphone (2.1.5): - Permission-Microphone (2.1.5):
@ -270,7 +221,7 @@ PODS:
- React - React
- react-native-status (1.0.0): - react-native-status (1.0.0):
- React - React
- react-native-status-keycard (2.5.34): - react-native-status-keycard (2.5.35):
- Keycard - Keycard
- React - React
- react-native-webview (10.9.2): - react-native-webview (10.9.2):
@ -387,33 +338,12 @@ PODS:
- TouchID (4.4.1): - TouchID (4.4.1):
- React - React
- Yoga (1.14.0) - Yoga (1.14.0)
- YogaKit (1.18.1):
- Yoga (~> 1.14)
DEPENDENCIES: DEPENDENCIES:
- BVLinearGradient (from `../node_modules/react-native-linear-gradient`) - BVLinearGradient (from `../node_modules/react-native-linear-gradient`)
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
- FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`) - FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
- Flipper (= 0.74.0)
- Flipper-DoubleConversion (= 1.1.7)
- Flipper-Folly (~> 2.2)
- Flipper-Glog (= 0.3.6)
- Flipper-PeerTalk (~> 0.0.4)
- Flipper-RSocket (~> 1.1)
- FlipperKit (= 0.74.0)
- FlipperKit/Core (= 0.74.0)
- FlipperKit/CppBridge (= 0.74.0)
- FlipperKit/FBCxxFollyDynamicConvert (= 0.74.0)
- FlipperKit/FBDefines (= 0.74.0)
- FlipperKit/FKPortForwarding (= 0.74.0)
- FlipperKit/FlipperKitHighlightOverlay (= 0.74.0)
- FlipperKit/FlipperKitLayoutPlugin (= 0.74.0)
- FlipperKit/FlipperKitLayoutTextSearchable (= 0.74.0)
- FlipperKit/FlipperKitNetworkPlugin (= 0.74.0)
- FlipperKit/FlipperKitReactPlugin (= 0.74.0)
- FlipperKit/FlipperKitUserDefaultsPlugin (= 0.74.0)
- FlipperKit/SKIOSNetworkPlugin (= 0.74.0)
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`) - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
- Keycard (from `https://github.com/status-im/Keycard.swift.git`) - Keycard (from `https://github.com/status-im/Keycard.swift.git`)
@ -481,21 +411,10 @@ DEPENDENCIES:
SPEC REPOS: SPEC REPOS:
trunk: trunk:
- boost-for-react-native - boost-for-react-native
- CocoaAsyncSocket
- CryptoSwift - CryptoSwift
- Flipper
- Flipper-DoubleConversion
- Flipper-Folly
- Flipper-Glog
- Flipper-PeerTalk
- Flipper-RSocket
- FlipperKit
- libevent
- OpenSSL-Universal
- SQLCipher - SQLCipher
- SSZipArchive - SSZipArchive
- TOCropViewController - TOCropViewController
- YogaKit
EXTERNAL SOURCES: EXTERNAL SOURCES:
BVLinearGradient: BVLinearGradient:
@ -638,23 +557,13 @@ CHECKOUT OPTIONS:
SPEC CHECKSUMS: SPEC CHECKSUMS:
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872 BVLinearGradient: e3aad03778a456d77928f594a649e96995f1c872
CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
CryptoSwift: 01b0f0cba1d5c212e5a335ff6c054fb75a204f00 CryptoSwift: 01b0f0cba1d5c212e5a335ff6c054fb75a204f00
DoubleConversion: cde416483dac037923206447da6e1454df403714 DoubleConversion: cde416483dac037923206447da6e1454df403714
FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e
FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e
Flipper: c1ad50344bffdce628b1906b48f6e7cd06724236
Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41
Flipper-Folly: f7a3caafbd74bda4827954fd7a6e000e36355489
Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6
Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
Flipper-RSocket: 127954abe8b162fcaf68d2134d34dc2bd7076154
FlipperKit: f42987ea58737ac0fb3fbc38f8e703452ba56940
Folly: b73c3869541e86821df3c387eb0af5f65addfab4 Folly: b73c3869541e86821df3c387eb0af5f65addfab4
glog: cee4319f395bad5865ef3f32466c2e0ae677432c glog: cee4319f395bad5865ef3f32466c2e0ae677432c
Keycard: dd96182888da0aacf4de821b641103143bbb26cc Keycard: dd96182888da0aacf4de821b641103143bbb26cc
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
OpenSSL-Universal: 1aa4f6a6ee7256b83db99ec1ccdaa80d10f9af9b
Permission-Camera: afad27bf90337684d4a86f3825112d648c8c4d3b Permission-Camera: afad27bf90337684d4a86f3825112d648c8c4d3b
Permission-Microphone: 0ffabc3fe1c75cfb260525ee3f529383c9f4368c Permission-Microphone: 0ffabc3fe1c75cfb260525ee3f529383c9f4368c
RCTRequired: 082f10cd3f905d6c124597fd1c14f6f2655ff65e RCTRequired: 082f10cd3f905d6c124597fd1c14f6f2655ff65e
@ -679,7 +588,7 @@ SPEC CHECKSUMS:
react-native-slider: 12bd76d3d568c9c5500825db54123d44b48e4ad4 react-native-slider: 12bd76d3d568c9c5500825db54123d44b48e4ad4
react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865 react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
react-native-status: 45dbf1302ce3c258b459dfab137cd1c2c68c295d react-native-status: 45dbf1302ce3c258b459dfab137cd1c2c68c295d
react-native-status-keycard: efdf1a51fe36a8ca4741234c0c428ef25b73d162 react-native-status-keycard: de55c01648d24ff7c17a77f3aa29a0421f44143c
react-native-webview: 4e96d493f9f90ba4f03b28933f30b2964df07e39 react-native-webview: 4e96d493f9f90ba4f03b28933f30b2964df07e39
React-RCTActionSheet: 89a0ca9f4a06c1f93c26067af074ccdce0f40336 React-RCTActionSheet: 89a0ca9f4a06c1f93c26067af074ccdce0f40336
React-RCTAnimation: 1bde3ecc0c104c55df246eda516e0deb03c4e49b React-RCTAnimation: 1bde3ecc0c104c55df246eda516e0deb03c4e49b
@ -714,8 +623,7 @@ SPEC CHECKSUMS:
TOCropViewController: 3105367e808b7d3d886a74ff59bf4804e7d3ab38 TOCropViewController: 3105367e808b7d3d886a74ff59bf4804e7d3ab38
TouchID: ba4c656d849cceabc2e4eef722dea5e55959ecf4 TouchID: ba4c656d849cceabc2e4eef722dea5e55959ecf4
Yoga: 4bd86afe9883422a7c4028c00e34790f560923d6 Yoga: 4bd86afe9883422a7c4028c00e34790f560923d6
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
PODFILE CHECKSUM: c1c8d3ccfd58edcd7388c38b7b0a24d729b2be80 PODFILE CHECKSUM: 3df5a5ce6c538b5f3727cb3ee1c20bf66d7ac3eb
COCOAPODS: 1.10.0 COCOAPODS: 1.10.0

View File

@ -330,7 +330,6 @@
00E356EB1AD99517003FC87E /* Frameworks */, 00E356EB1AD99517003FC87E /* Frameworks */,
00E356EC1AD99517003FC87E /* Resources */, 00E356EC1AD99517003FC87E /* Resources */,
AFAB37B70B6EB1B7D2E869AD /* [CP] Copy Pods Resources */, AFAB37B70B6EB1B7D2E869AD /* [CP] Copy Pods Resources */,
866426FF96B485C556ACB9E0 /* [CP] Embed Pods Frameworks */,
); );
buildRules = ( buildRules = (
); );
@ -354,7 +353,6 @@
20B6B6891D92C42700CC5C6A /* Embed Frameworks */, 20B6B6891D92C42700CC5C6A /* Embed Frameworks */,
E3914A731DF919ED00EBB515 /* Run Script */, E3914A731DF919ED00EBB515 /* Run Script */,
291E1A8BC076990A77B59232 /* [CP] Copy Pods Resources */, 291E1A8BC076990A77B59232 /* [CP] Copy Pods Resources */,
98D91F9B784A11C76C1DA9C1 /* [CP] Embed Pods Frameworks */,
); );
buildRules = ( buildRules = (
); );
@ -377,7 +375,6 @@
3AAD2AD624A3A60E0075D594 /* Embed Frameworks */, 3AAD2AD624A3A60E0075D594 /* Embed Frameworks */,
3AAD2AD724A3A60E0075D594 /* Run Script */, 3AAD2AD724A3A60E0075D594 /* Run Script */,
3AAD2AD824A3A60E0075D594 /* [CP] Copy Pods Resources */, 3AAD2AD824A3A60E0075D594 /* [CP] Copy Pods Resources */,
1997449D1D0A7BEAADD6CEC8 /* [CP] Embed Pods Frameworks */,
); );
buildRules = ( buildRules = (
); );
@ -525,24 +522,6 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "set -o errexit\nexport NODE_BINARY=\"node\"\nexport NODE_ARGS=\" --max-old-space-size=16384 \"\n\nbash -x ../node_modules/react-native/scripts/react-native-xcode.sh > ./react-native-xcode.log 2>&1"; shellScript = "set -o errexit\nexport NODE_BINARY=\"node\"\nexport NODE_ARGS=\" --max-old-space-size=16384 \"\n\nbash -x ../node_modules/react-native/scripts/react-native-xcode.sh > ./react-native-xcode.log 2>&1";
}; };
1997449D1D0A7BEAADD6CEC8 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-frameworks.sh",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusImPR/Pods-Status-StatusImPR-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
291E1A8BC076990A77B59232 /* [CP] Copy Pods Resources */ = { 291E1A8BC076990A77B59232 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
@ -681,42 +660,6 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0; showEnvVarsInLog = 0;
}; };
866426FF96B485C556ACB9E0 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-frameworks.sh",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm-StatusImTests/Pods-Status-StatusIm-StatusImTests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
98D91F9B784A11C76C1DA9C1 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-frameworks.sh",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Status-StatusIm/Pods-Status-StatusIm-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
AFAB37B70B6EB1B7D2E869AD /* [CP] Copy Pods Resources */ = { AFAB37B70B6EB1B7D2E869AD /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
@ -1186,7 +1129,6 @@
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LIBRARY_SEARCH_PATHS = ( LIBRARY_SEARCH_PATHS = (
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
"\"$(inherited)\"", "\"$(inherited)\"",
); );
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
@ -1260,7 +1202,6 @@
IPHONEOS_DEPLOYMENT_TARGET = 11.0; IPHONEOS_DEPLOYMENT_TARGET = 11.0;
LIBRARY_SEARCH_PATHS = ( LIBRARY_SEARCH_PATHS = (
"\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"", "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
"\"$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)\"",
"\"$(inherited)\"", "\"$(inherited)\"",
); );
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;

View File

@ -23,6 +23,7 @@
#import <UserNotifications/UserNotifications.h> #import <UserNotifications/UserNotifications.h>
#import <RNCPushNotificationIOS.h> #import <RNCPushNotificationIOS.h>
/*
#if DEBUG #if DEBUG
#import <FlipperKit/FlipperClient.h> #import <FlipperKit/FlipperClient.h>
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h> #import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
@ -30,7 +31,8 @@
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h> #import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h> #import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h> #import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
*/
/*
static void InitializeFlipper(UIApplication *application) { static void InitializeFlipper(UIApplication *application) {
FlipperClient *client = [FlipperClient sharedClient]; FlipperClient *client = [FlipperClient sharedClient];
SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults]; SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
@ -41,6 +43,7 @@ static void InitializeFlipper(UIApplication *application) {
[client start]; [client start];
} }
#endif #endif
*/
@implementation AppDelegate @implementation AppDelegate
{ {
@ -50,7 +53,7 @@ static void InitializeFlipper(UIApplication *application) {
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ {
#if DEBUG #if DEBUG
InitializeFlipper(application); //InitializeFlipper(application);
#endif #endif
signal(SIGPIPE, SIG_IGN); signal(SIGPIPE, SIG_IGN);
NSURL *jsCodeLocation; NSURL *jsCodeLocation;