mirror of
https://github.com/status-im/react-native.git
synced 2025-02-24 23:28:12 +00:00
Converted RCTRedBox to a bridge module
This commit is contained in:
parent
46c6cde947
commit
2cd02d94ff
@ -46,12 +46,12 @@ typedef NS_ENUM(NSUInteger, RCTBridgeFields) {
|
||||
|
||||
RCT_EXTERN NSArray *RCTGetModuleClasses(void);
|
||||
|
||||
static id<RCTJavaScriptExecutor> RCTLatestExecutor = nil;
|
||||
id<RCTJavaScriptExecutor> RCTGetLatestExecutor(void);
|
||||
id<RCTJavaScriptExecutor> RCTGetLatestExecutor(void)
|
||||
{
|
||||
return RCTLatestExecutor;
|
||||
}
|
||||
@interface RCTBridge ()
|
||||
|
||||
+ (instancetype)currentBridge;
|
||||
+ (void)setCurrentBridge:(RCTBridge *)bridge;
|
||||
|
||||
@end
|
||||
|
||||
@interface RCTBatchedBridge : RCTBridge
|
||||
|
||||
@ -100,6 +100,7 @@ id<RCTJavaScriptExecutor> RCTGetLatestExecutor(void)
|
||||
[_mainDisplayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
|
||||
}
|
||||
|
||||
[RCTBridge setCurrentBridge:self];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:RCTJavaScriptWillStartLoadingNotification
|
||||
object:self
|
||||
@ -176,11 +177,11 @@ id<RCTJavaScriptExecutor> RCTGetLatestExecutor(void)
|
||||
if (error) {
|
||||
NSArray *stack = [error userInfo][@"stack"];
|
||||
if (stack) {
|
||||
[[RCTRedBox sharedInstance] showErrorMessage:[error localizedDescription]
|
||||
withStack:stack];
|
||||
[self.redBox showErrorMessage:error.localizedDescription
|
||||
withStack:stack];
|
||||
} else {
|
||||
[[RCTRedBox sharedInstance] showErrorMessage:[error localizedDescription]
|
||||
withDetails:[error localizedFailureReason]];
|
||||
[self.redBox showErrorMessage:error.localizedDescription
|
||||
withDetails:error.localizedFailureReason];
|
||||
}
|
||||
|
||||
NSDictionary *userInfo = @{@"bridge": self, @"error": error};
|
||||
@ -263,7 +264,6 @@ id<RCTJavaScriptExecutor> RCTGetLatestExecutor(void)
|
||||
* any other module has access to the bridge
|
||||
*/
|
||||
_javaScriptExecutor = _modulesByName[RCTBridgeModuleNameForClass(self.executorClass)];
|
||||
RCTLatestExecutor = _javaScriptExecutor;
|
||||
|
||||
for (id<RCTBridgeModule> module in _modulesByName.allValues) {
|
||||
|
||||
@ -317,7 +317,7 @@ id<RCTJavaScriptExecutor> RCTGetLatestExecutor(void)
|
||||
asGlobalObjectNamed:@"__fbBatchedBridgeConfig"
|
||||
callback:^(NSError *error) {
|
||||
if (error) {
|
||||
[[RCTRedBox sharedInstance] showError:error];
|
||||
[self.redBox showError:error];
|
||||
}
|
||||
onComplete(error);
|
||||
}];
|
||||
@ -335,19 +335,10 @@ id<RCTJavaScriptExecutor> RCTGetLatestExecutor(void)
|
||||
sourceCodeModule.scriptURL = self.bundleURL;
|
||||
sourceCodeModule.scriptText = sourceCode;
|
||||
|
||||
static BOOL shouldDismiss = NO;
|
||||
if (shouldDismiss) {
|
||||
[[RCTRedBox sharedInstance] dismiss];
|
||||
}
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
shouldDismiss = YES;
|
||||
});
|
||||
|
||||
[self enqueueApplicationScript:sourceCode url:self.bundleURL onComplete:^(NSError *loadError) {
|
||||
|
||||
if (loadError) {
|
||||
[[RCTRedBox sharedInstance] showError:loadError];
|
||||
[self.redBox showError:loadError];
|
||||
return;
|
||||
}
|
||||
|
||||
@ -436,8 +427,8 @@ RCT_NOT_IMPLEMENTED(-initWithBundleURL:(__unused NSURL *)bundleURL
|
||||
RCTAssertMainThread();
|
||||
|
||||
_valid = NO;
|
||||
if (RCTLatestExecutor == _javaScriptExecutor) {
|
||||
RCTLatestExecutor = nil;
|
||||
if ([RCTBridge currentBridge] == self) {
|
||||
[RCTBridge setCurrentBridge:nil];
|
||||
}
|
||||
|
||||
[_mainDisplayLink invalidate];
|
||||
@ -477,6 +468,16 @@ RCT_NOT_IMPLEMENTED(-initWithBundleURL:(__unused NSURL *)bundleURL
|
||||
});
|
||||
}
|
||||
|
||||
- (void)logMessage:(NSString *)message level:(NSString *)level
|
||||
{
|
||||
if (RCT_DEBUG) {
|
||||
[_javaScriptExecutor executeJSCall:@"RCTLog"
|
||||
method:@"logIfNoNativeHook"
|
||||
arguments:@[level, message]
|
||||
callback:^(__unused id json, __unused NSError *error) {}];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - RCTBridge methods
|
||||
|
||||
/**
|
||||
@ -599,7 +600,7 @@ RCT_NOT_IMPLEMENTED(-initWithBundleURL:(__unused NSURL *)bundleURL
|
||||
|
||||
RCTJavaScriptCallback processResponse = ^(id json, NSError *error) {
|
||||
if (error) {
|
||||
[[RCTRedBox sharedInstance] showError:error];
|
||||
[self.redBox showError:error];
|
||||
}
|
||||
|
||||
if (!self.isValid) {
|
||||
|
@ -39,8 +39,6 @@ NSString *const RCTDidCreateNativeModules = @"RCTDidCreateNativeModules";
|
||||
|
||||
@end
|
||||
|
||||
RCT_EXTERN id<RCTJavaScriptExecutor> RCTGetLatestExecutor(void);
|
||||
|
||||
static NSMutableArray *RCTModuleClasses;
|
||||
NSArray *RCTGetModuleClasses(void);
|
||||
NSArray *RCTGetModuleClasses(void)
|
||||
@ -142,6 +140,24 @@ dispatch_queue_t RCTJSThread;
|
||||
});
|
||||
}
|
||||
|
||||
static RCTBridge *RCTCurrentBridgeInstance = nil;
|
||||
|
||||
/**
|
||||
* The last current active bridge instance. This is set automatically whenever
|
||||
* the bridge is accessed. It can be useful for static functions or singletons
|
||||
* that need to access the bridge for purposes such as logging, but should not
|
||||
* be relied upon to return any particular instance, due to race conditions.
|
||||
*/
|
||||
+ (instancetype)currentBridge
|
||||
{
|
||||
return RCTCurrentBridgeInstance;
|
||||
}
|
||||
|
||||
+ (void)setCurrentBridge:(RCTBridge *)currentBridge
|
||||
{
|
||||
RCTCurrentBridgeInstance = currentBridge;
|
||||
}
|
||||
|
||||
- (instancetype)initWithDelegate:(id<RCTBridgeDelegate>)delegate
|
||||
launchOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
@ -252,18 +268,9 @@ RCT_NOT_IMPLEMENTED(-init)
|
||||
_batchedBridge = nil;
|
||||
}
|
||||
|
||||
+ (void)logMessage:(NSString *)message level:(NSString *)level
|
||||
- (void)logMessage:(NSString *)message level:(NSString *)level
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
if (![RCTGetLatestExecutor() isValid]) {
|
||||
return;
|
||||
}
|
||||
|
||||
[RCTGetLatestExecutor() executeJSCall:@"RCTLog"
|
||||
method:@"logIfNoNativeHook"
|
||||
arguments:@[level, message]
|
||||
callback:^(__unused id json, __unused NSError *error) {}];
|
||||
});
|
||||
[_batchedBridge logMessage:message level:level];
|
||||
}
|
||||
|
||||
- (NSDictionary *)modules
|
||||
|
@ -16,9 +16,10 @@
|
||||
#import "RCTDefines.h"
|
||||
#import "RCTRedBox.h"
|
||||
|
||||
@interface RCTBridge (Logging)
|
||||
@interface RCTBridge ()
|
||||
|
||||
+ (void)logMessage:(NSString *)message level:(NSString *)level;
|
||||
+ (RCTBridge *)currentBridge;
|
||||
- (void)logMessage:(NSString *)message level:(NSString *)level;
|
||||
|
||||
@end
|
||||
|
||||
@ -188,7 +189,8 @@ void _RCTLogFormat(
|
||||
RCTLogLevel level,
|
||||
const char *fileName,
|
||||
int lineNumber,
|
||||
NSString *format, ...)
|
||||
NSString *format, ...
|
||||
)
|
||||
{
|
||||
RCTLogFunction logFunction = RCTGetLocalLogFunction();
|
||||
BOOL log = RCT_DEBUG || (logFunction != nil);
|
||||
@ -224,11 +226,11 @@ void _RCTLogFormat(
|
||||
}
|
||||
}
|
||||
}];
|
||||
[[RCTRedBox sharedInstance] showErrorMessage:message withStack:stack];
|
||||
[[RCTBridge currentBridge].redBox showErrorMessage:message withStack:stack];
|
||||
}
|
||||
|
||||
// Log to JS executor
|
||||
[RCTBridge logMessage:message level:level ? @(RCTLogLevels[level - 1]) : @"info"];
|
||||
[[RCTBridge currentBridge] logMessage:message level:level ? @(RCTLogLevels[level - 1]) : @"info"];
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -20,6 +20,8 @@
|
||||
NSUInteger _reloadRetries;
|
||||
}
|
||||
|
||||
@synthesize bridge = _bridge;
|
||||
|
||||
RCT_EXPORT_MODULE()
|
||||
|
||||
- (instancetype)initWithDelegate:(id<RCTExceptionsManagerDelegate>)delegate
|
||||
@ -44,7 +46,7 @@ RCT_EXPORT_METHOD(reportSoftException:(NSString *)message
|
||||
[_delegate handleSoftJSExceptionWithMessage:message stack:stack];
|
||||
return;
|
||||
}
|
||||
[[RCTRedBox sharedInstance] showErrorMessage:message withStack:stack];
|
||||
[_bridge.redBox showErrorMessage:message withStack:stack];
|
||||
}
|
||||
|
||||
RCT_EXPORT_METHOD(reportFatalException:(NSString *)message
|
||||
@ -56,7 +58,7 @@ RCT_EXPORT_METHOD(reportFatalException:(NSString *)message
|
||||
return;
|
||||
}
|
||||
|
||||
[[RCTRedBox sharedInstance] showErrorMessage:message withStack:stack];
|
||||
[_bridge.redBox showErrorMessage:message withStack:stack];
|
||||
|
||||
if (!RCT_DEBUG) {
|
||||
|
||||
@ -95,7 +97,7 @@ RCT_EXPORT_METHOD(updateExceptionMessage:(NSString *)message
|
||||
return;
|
||||
}
|
||||
|
||||
[[RCTRedBox sharedInstance] updateErrorMessage:message withStack:stack];
|
||||
[_bridge.redBox updateErrorMessage:message withStack:stack];
|
||||
}
|
||||
|
||||
// Deprecated. Use reportFatalException directly instead.
|
||||
|
@ -9,9 +9,10 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface RCTRedBox : NSObject
|
||||
#import "RCTBridge.h"
|
||||
#import "RCTBridgeModule.h"
|
||||
|
||||
+ (instancetype)sharedInstance;
|
||||
@interface RCTRedBox : NSObject <RCTBridgeModule>
|
||||
|
||||
- (void)showError:(NSError *)error;
|
||||
- (void)showErrorMessage:(NSString *)message;
|
||||
@ -19,10 +20,16 @@
|
||||
- (void)showErrorMessage:(NSString *)message withStack:(NSArray *)stack;
|
||||
- (void)updateErrorMessage:(NSString *)message withStack:(NSArray *)stack;
|
||||
|
||||
- (void)setNextBackgroundColor:(UIColor *)color;
|
||||
|
||||
- (NSString *)currentErrorMessage;
|
||||
|
||||
- (void)dismiss;
|
||||
|
||||
@end
|
||||
|
||||
/**
|
||||
* This category makes the red box instance available via the RCTBridge, which
|
||||
* is useful for any class that needs to access the red box or error log.
|
||||
*/
|
||||
@interface RCTBridge (RCTRedBox)
|
||||
|
||||
@property (nonatomic, readonly) RCTRedBox *redBox;
|
||||
|
||||
@end
|
@ -30,15 +30,13 @@
|
||||
NSArray *_lastStackTrace;
|
||||
|
||||
UITableViewCell *_cachedMessageCell;
|
||||
UIColor *_redColor;
|
||||
}
|
||||
|
||||
- (id)initWithFrame:(CGRect)frame
|
||||
{
|
||||
if ((self = [super initWithFrame:frame])) {
|
||||
_redColor = [UIColor colorWithRed:0.8 green:0 blue:0 alpha:1];
|
||||
self.windowLevel = UIWindowLevelAlert + 1000;
|
||||
self.backgroundColor = _redColor;
|
||||
self.backgroundColor = [UIColor colorWithRed:0.8 green:0 blue:0 alpha:1];
|
||||
self.hidden = YES;
|
||||
|
||||
UIViewController *rootController = [UIViewController new];
|
||||
@ -55,7 +53,7 @@
|
||||
_stackTraceTableView.delegate = self;
|
||||
_stackTraceTableView.dataSource = self;
|
||||
_stackTraceTableView.backgroundColor = [UIColor clearColor];
|
||||
_stackTraceTableView.separatorColor = [[UIColor whiteColor] colorWithAlphaComponent:0.3];
|
||||
_stackTraceTableView.separatorColor = [UIColor colorWithWhite:1 alpha:0.3];
|
||||
_stackTraceTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
||||
[_rootView addSubview:_stackTraceTableView];
|
||||
|
||||
@ -63,7 +61,7 @@
|
||||
dismissButton.accessibilityIdentifier = @"redbox-dismiss";
|
||||
dismissButton.titleLabel.font = [UIFont systemFontOfSize:14];
|
||||
[dismissButton setTitle:@"Dismiss (ESC)" forState:UIControlStateNormal];
|
||||
[dismissButton setTitleColor:[[UIColor whiteColor] colorWithAlphaComponent:0.5] forState:UIControlStateNormal];
|
||||
[dismissButton setTitleColor:[UIColor colorWithWhite:1 alpha:0.5] forState:UIControlStateNormal];
|
||||
[dismissButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
|
||||
[dismissButton addTarget:self action:@selector(dismiss) forControlEvents:UIControlEventTouchUpInside];
|
||||
|
||||
@ -71,7 +69,7 @@
|
||||
reloadButton.accessibilityIdentifier = @"redbox-reload";
|
||||
reloadButton.titleLabel.font = [UIFont systemFontOfSize:14];
|
||||
[reloadButton setTitle:@"Reload JS (\u2318R)" forState:UIControlStateNormal];
|
||||
[reloadButton setTitleColor:[[UIColor whiteColor] colorWithAlphaComponent:0.5] forState:UIControlStateNormal];
|
||||
[reloadButton setTitleColor:[UIColor colorWithWhite:1 alpha:0.5] forState:UIControlStateNormal];
|
||||
[reloadButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
|
||||
[reloadButton addTarget:self action:@selector(reload) forControlEvents:UIControlEventTouchUpInside];
|
||||
|
||||
@ -136,7 +134,6 @@ RCT_NOT_IMPLEMENTED(-initWithCoder:(NSCoder *)aDecoder)
|
||||
- (void)dismiss
|
||||
{
|
||||
self.hidden = YES;
|
||||
self.backgroundColor = _redColor;
|
||||
[self resignFirstResponder];
|
||||
[[[[UIApplication sharedApplication] delegate] window] makeKeyWindow];
|
||||
}
|
||||
@ -193,15 +190,15 @@ RCT_NOT_IMPLEMENTED(-initWithCoder:(NSCoder *)aDecoder)
|
||||
{
|
||||
if (!cell) {
|
||||
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell"];
|
||||
cell.textLabel.textColor = [[UIColor whiteColor] colorWithAlphaComponent:0.9];
|
||||
cell.textLabel.textColor = [UIColor colorWithWhite:1 alpha:0.9];
|
||||
cell.textLabel.font = [UIFont fontWithName:@"Menlo-Regular" size:14];
|
||||
cell.textLabel.numberOfLines = 2;
|
||||
cell.detailTextLabel.textColor = [[UIColor whiteColor] colorWithAlphaComponent:0.7];
|
||||
cell.detailTextLabel.textColor = [UIColor colorWithWhite:1 alpha:0.7];
|
||||
cell.detailTextLabel.font = [UIFont fontWithName:@"Menlo-Regular" size:11];
|
||||
cell.detailTextLabel.lineBreakMode = NSLineBreakByTruncatingMiddle;
|
||||
cell.backgroundColor = [UIColor clearColor];
|
||||
cell.selectedBackgroundView = [UIView new];
|
||||
cell.selectedBackgroundView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.2];
|
||||
cell.selectedBackgroundView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.2];
|
||||
}
|
||||
|
||||
cell.textLabel.text = stackFrame[@"methodName"];
|
||||
@ -271,23 +268,9 @@ RCT_NOT_IMPLEMENTED(-initWithCoder:(NSCoder *)aDecoder)
|
||||
@implementation RCTRedBox
|
||||
{
|
||||
RCTRedBoxWindow *_window;
|
||||
UIColor *_nextBackgroundColor;
|
||||
}
|
||||
|
||||
+ (instancetype)sharedInstance
|
||||
{
|
||||
static RCTRedBox *_sharedInstance;
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
_sharedInstance = [RCTRedBox new];
|
||||
});
|
||||
return _sharedInstance;
|
||||
}
|
||||
|
||||
- (void)setNextBackgroundColor:(UIColor *)color
|
||||
{
|
||||
_nextBackgroundColor = color;
|
||||
}
|
||||
RCT_EXPORT_MODULE()
|
||||
|
||||
- (void)showError:(NSError *)error
|
||||
{
|
||||
@ -322,25 +305,12 @@ RCT_NOT_IMPLEMENTED(-initWithCoder:(NSCoder *)aDecoder)
|
||||
{
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
if (!_window) {
|
||||
_window = [[RCTRedBoxWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
|
||||
_window = [[RCTRedBoxWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
|
||||
}
|
||||
[_window showErrorMessage:message withStack:stack showIfHidden:shouldShow];
|
||||
if (_nextBackgroundColor) {
|
||||
_window.backgroundColor = _nextBackgroundColor;
|
||||
_nextBackgroundColor = nil;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
- (NSString *)currentErrorMessage
|
||||
{
|
||||
if (_window && !_window.hidden) {
|
||||
return _window.lastErrorMessage;
|
||||
} else {
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (void)dismiss
|
||||
{
|
||||
[_window dismiss];
|
||||
@ -348,21 +318,33 @@ RCT_NOT_IMPLEMENTED(-initWithCoder:(NSCoder *)aDecoder)
|
||||
|
||||
@end
|
||||
|
||||
@implementation RCTBridge (RCTRedBox)
|
||||
|
||||
- (RCTRedBox *)redBox
|
||||
{
|
||||
return self.modules[RCTBridgeModuleNameForClass([RCTRedBox class])];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#else // Disabled
|
||||
|
||||
@implementation RCTRedBox
|
||||
|
||||
+ (instancetype)sharedInstance { return nil; }
|
||||
- (void)showError:(NSError *)message {}
|
||||
- (void)showErrorMessage:(NSString *)message {}
|
||||
- (void)showErrorMessage:(NSString *)message withDetails:(NSString *)details {}
|
||||
- (void)showErrorMessage:(NSString *)message withStack:(NSArray *)stack {}
|
||||
- (void)updateErrorMessage:(NSString *)message withStack:(NSArray *)stack {}
|
||||
- (void)showErrorMessage:(NSString *)message withStack:(NSArray *)stack showIfHidden:(BOOL)shouldShow {}
|
||||
- (NSString *)currentErrorMessage { return nil; }
|
||||
- (void)setNextBackgroundColor:(UIColor *)color {}
|
||||
- (void)dismiss {}
|
||||
|
||||
@end
|
||||
|
||||
@implementation RCTBridge (RCTRedBox)
|
||||
|
||||
- (RCTRedBox *)redBox { return nil; }
|
||||
|
||||
@end
|
||||
|
||||
#endif
|
@ -48,6 +48,7 @@
|
||||
13E067561A70F44B002CDEE1 /* RCTViewManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 13E0674E1A70F44B002CDEE1 /* RCTViewManager.m */; };
|
||||
13E067571A70F44B002CDEE1 /* RCTView.m in Sources */ = {isa = PBXBuildFile; fileRef = 13E067501A70F44B002CDEE1 /* RCTView.m */; };
|
||||
13E067591A70F44B002CDEE1 /* UIView+React.m in Sources */ = {isa = PBXBuildFile; fileRef = 13E067541A70F44B002CDEE1 /* UIView+React.m */; };
|
||||
13F17A851B8493E5007D4C75 /* RCTRedBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 13F17A841B8493E5007D4C75 /* RCTRedBox.m */; };
|
||||
1403F2B31B0AE60700C2A9A4 /* RCTPerfStats.m in Sources */ = {isa = PBXBuildFile; fileRef = 1403F2B21B0AE60700C2A9A4 /* RCTPerfStats.m */; };
|
||||
14200DAA1AC179B3008EE6BA /* RCTJavaScriptLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 14200DA91AC179B3008EE6BA /* RCTJavaScriptLoader.m */; };
|
||||
142014191B32094000CC17BA /* RCTPerformanceLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 142014171B32094000CC17BA /* RCTPerformanceLogger.m */; };
|
||||
@ -75,7 +76,6 @@
|
||||
83CBBA511A601E3B00E9B192 /* RCTAssert.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA4B1A601E3B00E9B192 /* RCTAssert.m */; };
|
||||
83CBBA521A601E3B00E9B192 /* RCTLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA4E1A601E3B00E9B192 /* RCTLog.m */; };
|
||||
83CBBA531A601E3B00E9B192 /* RCTUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA501A601E3B00E9B192 /* RCTUtils.m */; };
|
||||
83CBBA5A1A601E9000E9B192 /* RCTRedBox.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA591A601E9000E9B192 /* RCTRedBox.m */; };
|
||||
83CBBA601A601EAA00E9B192 /* RCTBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA5F1A601EAA00E9B192 /* RCTBridge.m */; };
|
||||
83CBBA691A601EF300E9B192 /* RCTEventDispatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA661A601EF300E9B192 /* RCTEventDispatcher.m */; };
|
||||
83CBBA981A6020BB00E9B192 /* RCTTouchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CBBA971A6020BB00E9B192 /* RCTTouchHandler.m */; };
|
||||
@ -188,6 +188,8 @@
|
||||
13E067501A70F44B002CDEE1 /* RCTView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTView.m; sourceTree = "<group>"; };
|
||||
13E067531A70F44B002CDEE1 /* UIView+React.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+React.h"; sourceTree = "<group>"; };
|
||||
13E067541A70F44B002CDEE1 /* UIView+React.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+React.m"; sourceTree = "<group>"; };
|
||||
13F17A831B8493E5007D4C75 /* RCTRedBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRedBox.h; sourceTree = "<group>"; };
|
||||
13F17A841B8493E5007D4C75 /* RCTRedBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRedBox.m; sourceTree = "<group>"; };
|
||||
1403F2B11B0AE60700C2A9A4 /* RCTPerfStats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTPerfStats.h; sourceTree = "<group>"; };
|
||||
1403F2B21B0AE60700C2A9A4 /* RCTPerfStats.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTPerfStats.m; sourceTree = "<group>"; };
|
||||
14200DA81AC179B3008EE6BA /* RCTJavaScriptLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJavaScriptLoader.h; sourceTree = "<group>"; };
|
||||
@ -245,8 +247,6 @@
|
||||
83CBBA4E1A601E3B00E9B192 /* RCTLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTLog.m; sourceTree = "<group>"; };
|
||||
83CBBA4F1A601E3B00E9B192 /* RCTUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTUtils.h; sourceTree = "<group>"; };
|
||||
83CBBA501A601E3B00E9B192 /* RCTUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTUtils.m; sourceTree = "<group>"; };
|
||||
83CBBA581A601E9000E9B192 /* RCTRedBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTRedBox.h; sourceTree = "<group>"; };
|
||||
83CBBA591A601E9000E9B192 /* RCTRedBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTRedBox.m; sourceTree = "<group>"; };
|
||||
83CBBA5E1A601EAA00E9B192 /* RCTBridge.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTBridge.h; sourceTree = "<group>"; };
|
||||
83CBBA5F1A601EAA00E9B192 /* RCTBridge.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTBridge.m; sourceTree = "<group>"; };
|
||||
83CBBA631A601ECA00E9B192 /* RCTJavaScriptExecutor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTJavaScriptExecutor.h; sourceTree = "<group>"; };
|
||||
@ -312,6 +312,8 @@
|
||||
13B07FEA1A69327A00A75B9A /* RCTExceptionsManager.m */,
|
||||
63F014BE1B02080B003B75D2 /* RCTPointAnnotation.h */,
|
||||
63F014BF1B02080B003B75D2 /* RCTPointAnnotation.m */,
|
||||
13F17A831B8493E5007D4C75 /* RCTRedBox.h */,
|
||||
13F17A841B8493E5007D4C75 /* RCTRedBox.m */,
|
||||
000E6CE91AB0E97F000CDF4D /* RCTSourceCode.h */,
|
||||
000E6CEA1AB0E980000CDF4D /* RCTSourceCode.m */,
|
||||
13723B4E1A82FD3C00F88898 /* RCTStatusBarManager.h */,
|
||||
@ -483,8 +485,6 @@
|
||||
1403F2B21B0AE60700C2A9A4 /* RCTPerfStats.m */,
|
||||
14F4D3891AE1B7E40049C042 /* RCTProfile.h */,
|
||||
14F4D38A1AE1B7E40049C042 /* RCTProfile.m */,
|
||||
83CBBA581A601E9000E9B192 /* RCTRedBox.h */,
|
||||
83CBBA591A601E9000E9B192 /* RCTRedBox.m */,
|
||||
830A229C1A66C68A008503DA /* RCTRootView.h */,
|
||||
830A229D1A66C68A008503DA /* RCTRootView.m */,
|
||||
83BEE46C1A6D19BC00B5863B /* RCTSparseArray.h */,
|
||||
@ -598,7 +598,6 @@
|
||||
131B6AF41AF1093D00FFC3E0 /* RCTSegmentedControl.m in Sources */,
|
||||
830A229E1A66C68A008503DA /* RCTRootView.m in Sources */,
|
||||
13B07FF01A69327A00A75B9A /* RCTExceptionsManager.m in Sources */,
|
||||
83CBBA5A1A601E9000E9B192 /* RCTRedBox.m in Sources */,
|
||||
13A0C28A1B74F71200B29F6F /* RCTDevMenu.m in Sources */,
|
||||
14C2CA711B3AC63800E6CBB2 /* RCTModuleMethod.m in Sources */,
|
||||
13CC8A821B17642100940AE7 /* RCTBorderDrawing.m in Sources */,
|
||||
@ -651,6 +650,7 @@
|
||||
13B0801A1A69489C00A75B9A /* RCTNavigator.m in Sources */,
|
||||
137327E71AA5CF210034F82E /* RCTTabBar.m in Sources */,
|
||||
63F014C01B02080B003B75D2 /* RCTPointAnnotation.m in Sources */,
|
||||
13F17A851B8493E5007D4C75 /* RCTRedBox.m in Sources */,
|
||||
83392EB31B6634E10013B15F /* RCTModalHostViewController.m in Sources */,
|
||||
14435CE51AAC4AE100FC20F4 /* RCTMap.m in Sources */,
|
||||
134FCB3E1A6E7F0800051CC8 /* RCTWebViewExecutor.m in Sources */,
|
||||
|
Loading…
x
Reference in New Issue
Block a user