Skip to content

Commit cb80e3b

Browse files
@allow-large-files [Flipper][RN] Integrated Flipper in RNTester application
Summary: Changelog: [iOS] [Fixed] Integrated Flipper in RNTester application and made sure that flipper connects with RNTester application allow-large-files Reviewed By: rickhanlonii Differential Revision: D19813213 fbshipit-source-id: f0c7a5a42ffaccd488582b0f42ce37aea946c636
1 parent c0c644c commit cb80e3b

File tree

4 files changed

+215
-18
lines changed

4 files changed

+215
-18
lines changed

RNTester/Podfile

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,62 @@ def pods()
1717
# Additional Pods which aren't included in the default Podfile
1818
pod 'React-ART', :path => '../Libraries/ART'
1919
pod 'React-RCTPushNotification', :path => '../Libraries/PushNotificationIOS'
20-
20+
pod 'Yoga',:path => '../ReactCommon/yoga', :modular_headers => true
2121
# Additional Pods which are classed as unstable
2222
#
2323
# To use fabric: add `fabric_enabled` option to the use_react_native method above, like below
2424
# use_react_native!(path: "..", fabric_enabled: true)
2525
end
2626

27+
28+
def flipper_pods()
29+
flipperkit_version = '0.30.1'
30+
pod 'FlipperKit', '~>' + flipperkit_version, :configuration => 'Debug'
31+
pod 'FlipperKit/FlipperKitLayoutPlugin', '~>' + flipperkit_version, :configuration => 'Debug'
32+
pod 'FlipperKit/SKIOSNetworkPlugin', '~>' + flipperkit_version, :configuration => 'Debug'
33+
pod 'FlipperKit/FlipperKitUserDefaultsPlugin', '~>' + flipperkit_version, :configuration => 'Debug'
34+
pod 'FlipperKit/FlipperKitReactPlugin', '~>' + flipperkit_version, :configuration => 'Debug'
35+
36+
if ENV['USE_FRAMEWORKS'] == '1'
37+
$static_framework = ['FlipperKit', 'Flipper', 'Flipper-Folly',
38+
'CocoaAsyncSocket', 'ComponentKit', 'Flipper-DoubleConversion',
39+
'Flipper-Glog', 'Flipper-PeerTalk', 'Flipper-RSocket',
40+
'CocoaLibEvent', 'OpenSSL-Universal', 'boost-for-react-native']
41+
42+
pre_install do |installer|
43+
Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
44+
installer.pod_targets.each do |pod|
45+
if $static_framework.include?(pod.name)
46+
def pod.build_type;
47+
Pod::Target::BuildType.static_library
48+
end
49+
end
50+
end
51+
end
52+
end
53+
end
54+
55+
# Post Install processing for Flipper
56+
def flipper_post_install(installer)
57+
file_name = Dir.glob("*.xcodeproj")[0]
58+
app_project = Xcodeproj::Project.open(file_name)
59+
app_project.native_targets.each do |target|
60+
target.build_configurations.each do |config|
61+
cflags = config.build_settings['OTHER_CFLAGS'] || '$(inherited) '
62+
unless cflags.include? '-DFB_SONARKIT_ENABLED=1'
63+
puts 'Adding -DFB_SONARKIT_ENABLED=1 in OTHER_CFLAGS...'
64+
cflags << ' -DFB_SONARKIT_ENABLED=1 '
65+
end
66+
config.build_settings['OTHER_CFLAGS'] = cflags
67+
end
68+
app_project.save
69+
end
70+
installer.pods_project.save
71+
end
72+
2773
target 'RNTester' do
2874
pods()
75+
flipper_pods()
2976
end
3077

3178
target 'RNTesterUnitTests' do
@@ -39,6 +86,7 @@ target 'RNTesterIntegrationTests' do
3986
end
4087

4188
post_install do |installer|
89+
flipper_post_install(installer)
4290
installer.pods_project.targets.each do |target|
4391
puts target.name
4492
end

RNTester/Podfile.lock

Lines changed: 81 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
PODS:
22
- boost-for-react-native (1.63.0)
3+
- CocoaAsyncSocket (7.6.3)
4+
- CocoaLibEvent (1.0.0)
35
- DoubleConversion (1.1.6)
46
- FBLazyVector (1000.0.0)
57
- FBReactNativeSpec (1000.0.0):
@@ -9,6 +11,52 @@ PODS:
911
- React-Core (= 1000.0.0)
1012
- React-jsi (= 1000.0.0)
1113
- ReactCommon/turbomodule/core (= 1000.0.0)
14+
- Flipper (0.30.2):
15+
- Flipper-Folly (~> 2.1)
16+
- Flipper-RSocket (~> 1.0)
17+
- Flipper-DoubleConversion (1.1.7)
18+
- Flipper-Folly (2.1.1):
19+
- boost-for-react-native
20+
- CocoaLibEvent (~> 1.0)
21+
- Flipper-DoubleConversion
22+
- Flipper-Glog
23+
- OpenSSL-Universal (= 1.0.2.19)
24+
- Flipper-Glog (0.3.6)
25+
- Flipper-PeerTalk (0.0.4)
26+
- Flipper-RSocket (1.0.0):
27+
- Flipper-Folly (~> 2.0)
28+
- FlipperKit (0.30.2):
29+
- FlipperKit/Core (= 0.30.2)
30+
- FlipperKit/Core (0.30.2):
31+
- Flipper (~> 0.30.2)
32+
- FlipperKit/CppBridge
33+
- FlipperKit/FBCxxFollyDynamicConvert
34+
- FlipperKit/FBDefines
35+
- FlipperKit/FKPortForwarding
36+
- FlipperKit/CppBridge (0.30.2):
37+
- Flipper (~> 0.30.2)
38+
- FlipperKit/FBCxxFollyDynamicConvert (0.30.2):
39+
- Flipper-Folly (~> 2.1)
40+
- FlipperKit/FBDefines (0.30.2)
41+
- FlipperKit/FKPortForwarding (0.30.2):
42+
- CocoaAsyncSocket (~> 7.6)
43+
- Flipper-PeerTalk (~> 0.0.4)
44+
- FlipperKit/FlipperKitHighlightOverlay (0.30.2)
45+
- FlipperKit/FlipperKitLayoutPlugin (0.30.2):
46+
- FlipperKit/Core
47+
- FlipperKit/FlipperKitHighlightOverlay
48+
- FlipperKit/FlipperKitLayoutTextSearchable
49+
- YogaKit (~> 1.18)
50+
- FlipperKit/FlipperKitLayoutTextSearchable (0.30.2)
51+
- FlipperKit/FlipperKitNetworkPlugin (0.30.2):
52+
- FlipperKit/Core
53+
- FlipperKit/FlipperKitReactPlugin (0.30.2):
54+
- FlipperKit/Core
55+
- FlipperKit/FlipperKitUserDefaultsPlugin (0.30.2):
56+
- FlipperKit/Core
57+
- FlipperKit/SKIOSNetworkPlugin (0.30.2):
58+
- FlipperKit/Core
59+
- FlipperKit/FlipperKitNetworkPlugin
1260
- Folly (2020.01.13.00):
1361
- boost-for-react-native
1462
- DoubleConversion
@@ -19,6 +67,9 @@ PODS:
1967
- DoubleConversion
2068
- glog
2169
- glog (0.3.5)
70+
- OpenSSL-Universal (1.0.2.19):
71+
- OpenSSL-Universal/Static (= 1.0.2.19)
72+
- OpenSSL-Universal/Static (1.0.2.19)
2273
- RCTRequired (1000.0.0)
2374
- RCTTypeSafety (1000.0.0):
2475
- FBLazyVector (= 1000.0.0)
@@ -280,11 +331,18 @@ PODS:
280331
- ReactCommon/callinvoker (= 1000.0.0)
281332
- ReactCommon/turbomodule/core (= 1000.0.0)
282333
- Yoga (1.14.0)
334+
- YogaKit (1.18.1):
335+
- Yoga (~> 1.14)
283336

284337
DEPENDENCIES:
285338
- DoubleConversion (from `../third-party-podspecs/DoubleConversion.podspec`)
286339
- FBLazyVector (from `../Libraries/FBLazyVector`)
287340
- FBReactNativeSpec (from `../Libraries/FBReactNativeSpec`)
341+
- FlipperKit (~> 0.30.1)
342+
- FlipperKit/FlipperKitLayoutPlugin (~> 0.30.1)
343+
- FlipperKit/FlipperKitReactPlugin (~> 0.30.1)
344+
- FlipperKit/FlipperKitUserDefaultsPlugin (~> 0.30.1)
345+
- FlipperKit/SKIOSNetworkPlugin (~> 0.30.1)
288346
- Folly (from `../third-party-podspecs/Folly.podspec`)
289347
- glog (from `../third-party-podspecs/glog.podspec`)
290348
- RCTRequired (from `../Libraries/RCTRequired`)
@@ -318,6 +376,17 @@ DEPENDENCIES:
318376
SPEC REPOS:
319377
trunk:
320378
- boost-for-react-native
379+
- CocoaAsyncSocket
380+
- CocoaLibEvent
381+
- Flipper
382+
- Flipper-DoubleConversion
383+
- Flipper-Folly
384+
- Flipper-Glog
385+
- Flipper-PeerTalk
386+
- Flipper-RSocket
387+
- FlipperKit
388+
- OpenSSL-Universal
389+
- YogaKit
321390

322391
EXTERNAL SOURCES:
323392
DoubleConversion:
@@ -379,11 +448,21 @@ EXTERNAL SOURCES:
379448

380449
SPEC CHECKSUMS:
381450
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
451+
CocoaAsyncSocket: eafaa68a7e0ec99ead0a7b35015e0bf25d2c8987
452+
CocoaLibEvent: 2fab71b8bd46dd33ddb959f7928ec5909f838e3f
382453
DoubleConversion: cde416483dac037923206447da6e1454df403714
383454
FBLazyVector: 9806caa151956ce2238f70bde6649a6e3468d2c2
384455
FBReactNativeSpec: 36a4e4488cc758ffceea8e1b3b5c6dab3ed99fa2
456+
Flipper: 10b225e352595f521be0e5badddd90e241336e89
457+
Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41
458+
Flipper-Folly: 2de3d03e0acc7064d5e4ed9f730e2f217486f162
459+
Flipper-Glog: 1dfd6abf1e922806c52ceb8701a3599a79a200a6
460+
Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
461+
Flipper-RSocket: 1260a31c05c238eabfa9bb8a64e3983049048371
462+
FlipperKit: 88b7f0d0cf907ddc2137b85eeb7f3d4d8d9395c8
385463
Folly: b73c3869541e86821df3c387eb0af5f65addfab4
386464
glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
465+
OpenSSL-Universal: 8b48cc0d10c1b2923617dfe5c178aa9ed2689355
387466
RCTRequired: f04f9813bccb37099f642722b46e879fc47c7e78
388467
RCTTypeSafety: 26a1a3b30655098b72d3954e3e7d0f9a7a059e95
389468
React: 7b262249ab4afa1d300c9e90f50edcc2a5f72bcd
@@ -407,7 +486,8 @@ SPEC CHECKSUMS:
407486
React-RCTVibration: e2856bb9408f7e8eccfe870e123e5644ab744219
408487
ReactCommon: c3834cbee58b60f71c8155c04a3f44e60ec017fb
409488
Yoga: f7fa200d8c49f97b54c9421079e781fb900b5cae
489+
YogaKit: f782866e155069a2cca2517aafea43200b01fd5a
410490

411-
PODFILE CHECKSUM: 31cb1ffc6e72e1bbb948da2fb648d4f7aca92168
491+
PODFILE CHECKSUM: 317625c4a1217b69f61b4979b58e9ef2f376f583
412492

413493
COCOAPODS: 1.8.4

RNTester/RNTester/AppDelegate.mm

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,19 @@
3434
#import <React/RCTFabricSurfaceHostingProxyRootView.h>
3535
#endif
3636

37+
38+
#if DEBUG
39+
#ifdef FB_SONARKIT_ENABLED
40+
#import <FlipperKit/FlipperClient.h>
41+
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
42+
#import <FlipperKitLayoutPlugin/SKDescriptorMapper.h>
43+
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
44+
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
45+
#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
46+
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
47+
#endif
48+
#endif
49+
3750
#import <ReactCommon/RCTTurboModuleManager.h>
3851

3952
#import "RNTesterTurboModuleProvider.h"
@@ -84,6 +97,7 @@ - (BOOL)application:(__unused UIApplication *)application didFinishLaunchingWith
8497
rootViewController.view = rootView;
8598
self.window.rootViewController = rootViewController;
8699
[self.window makeKeyAndVisible];
100+
[self initializeFlipper:application];
87101
return YES;
88102
}
89103

@@ -95,6 +109,22 @@ - (NSURL *)sourceURLForBridge:(__unused RCTBridge *)bridge
95109
fallbackResource:nil];
96110
}
97111

112+
- (void)initializeFlipper:(UIApplication *)application
113+
{
114+
#if DEBUG
115+
#ifdef FB_SONARKIT_ENABLED
116+
FlipperClient *client = [FlipperClient sharedClient];
117+
SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults];
118+
[client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:application
119+
withDescriptorMapper:layoutDescriptorMapper]];
120+
[client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]];
121+
[client addPlugin:[FlipperKitReactPlugin new]];
122+
[client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]];
123+
[client start];
124+
#endif
125+
#endif
126+
}
127+
98128
- (BOOL)application:(UIApplication *)app
99129
openURL:(NSURL *)url
100130
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options

0 commit comments

Comments
 (0)