Skip to content

Commit 5c96be9

Browse files
committed
feat!: drop support for Flipper
BREAKING CHANGE: Dropped support for Flipper. For more context, see react-native-community/discussions-and-proposals#641.
1 parent bb335da commit 5c96be9

File tree

18 files changed

+14
-393
lines changed

18 files changed

+14
-393
lines changed

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ jobs:
232232
- name: Install Pods
233233
if: ${{ steps.affected.outputs.ios != '' }}
234234
run: |
235-
USE_FLIPPER=0 pod install --project-directory=${{ steps.configure.outputs.project-directory }}
235+
pod install --project-directory=${{ steps.configure.outputs.project-directory }}
236236
working-directory: template-example
237237
- name: Build
238238
if: ${{ steps.affected.outputs.ios != '' }}

android/app/build.gradle

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,6 @@ project.ext.react = [
6262
bundleInRelease : false,
6363
enableCamera : !getSingleAppMode(),
6464
enableFabric : isFabricEnabled(project),
65-
enableFlipper : getFlipperVersion(rootDir),
6665
enableHermes : true,
6766
enableNewArchitecture: enableNewArchitecture,
6867
]
@@ -116,11 +115,6 @@ android {
116115
buildConfigField "String", "ReactTestApp_appManifest", "\"${appManifest}\""
117116
buildConfigField "String", "ReactTestApp_appManifestChecksum", "\"${checksum}\""
118117

119-
def recommendedFlipperVersion = getFlipperRecommendedVersion(rootDir)
120-
buildConfigField "String",
121-
"ReactTestApp_recommendedFlipperVersion",
122-
recommendedFlipperVersion ? "\"${recommendedFlipperVersion}\"" : "\"0\""
123-
124118
def singleApp = getSingleAppMode()
125119
buildConfigField "String", "ReactTestApp_singleApp", singleApp ? "\"${singleApp}\"" : "null"
126120

@@ -319,10 +313,6 @@ android {
319313
? "src/reactapplication-pre-0.73/java"
320314
: "src/reactapplication-0.73/java",
321315
]
322-
323-
if (project.ext.react.enableFlipper) {
324-
debug.java.srcDirs += "src/flipper/java"
325-
}
326316
}
327317

328318
splits {
@@ -398,21 +388,6 @@ dependencies {
398388
implementation libraries.androidCameraMlKitVision
399389
implementation libraries.mlKitBarcodeScanning
400390
}
401-
402-
if (project.ext.react.enableFlipper) {
403-
logger.warn("\nFlipper is deprecated and is removed from react-native in 0.74")
404-
logger.warn("\nFlipper will be removed from react-native-test-app in 3.0")
405-
def flipperVersion = project.ext.react.enableFlipper
406-
debugImplementation("com.facebook.flipper:flipper:${flipperVersion}") {
407-
exclude(group: "com.facebook.fbjni")
408-
}
409-
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${flipperVersion}") {
410-
exclude(group: "com.facebook.flipper")
411-
}
412-
debugImplementation("com.facebook.flipper:flipper-network-plugin:${flipperVersion}") {
413-
exclude(group: "com.facebook.flipper")
414-
}
415-
}
416391
}
417392

418393
if (!usePrefabs) {

android/app/src/flipper/java/com/microsoft/reacttestapp/ReactNativeFlipper.kt

Lines changed: 0 additions & 61 deletions
This file was deleted.

android/app/src/main/java/com/microsoft/reacttestapp/react/TestAppReactNativeHost.kt

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import android.app.Activity
44
import android.app.Application
55
import android.content.Context
66
import android.net.Uri
7-
import android.util.Log
87
import com.facebook.hermes.reactexecutor.HermesExecutorFactory
98
import com.facebook.react.PackageList
109
import com.facebook.react.ReactInstanceManager
@@ -13,7 +12,6 @@ import com.facebook.react.bridge.JSIModulePackage
1312
import com.facebook.react.bridge.JavaScriptExecutorFactory
1413
import com.facebook.react.bridge.ReactContext
1514
import com.facebook.react.devsupport.interfaces.DevSupportManager
16-
import com.facebook.react.modules.systeminfo.ReactNativeVersion
1715
import com.facebook.react.packagerconnection.PackagerConnectionSettings
1816
import com.facebook.soloader.SoLoader
1917
import com.microsoft.reacttestapp.BuildConfig
@@ -81,26 +79,6 @@ class TestAppReactNativeHost(
8179

8280
beforeReactNativeInit()
8381
reactInstanceManager.createReactContextInBackground()
84-
85-
if (BuildConfig.DEBUG) {
86-
try {
87-
Class.forName("com.microsoft.reacttestapp.ReactNativeFlipper")
88-
.getMethod("initialize", Context::class.java, ReactInstanceManager::class.java)
89-
.invoke(null, application, reactInstanceManager)
90-
} catch (e: ClassNotFoundException) {
91-
val flipperVersion = BuildConfig.ReactTestApp_recommendedFlipperVersion
92-
if (flipperVersion != "0") {
93-
val major = ReactNativeVersion.VERSION["major"] as Int
94-
val minor = ReactNativeVersion.VERSION["minor"] as Int
95-
Log.i(
96-
"ReactTestApp",
97-
"To use Flipper, define `FLIPPER_VERSION` in your `gradle.properties`. " +
98-
"Since you're using React Native $major.$minor, we recommend setting " +
99-
"`FLIPPER_VERSION=$flipperVersion`."
100-
)
101-
}
102-
}
103-
}
10482
}
10583

10684
fun addReactInstanceEventListener(listener: (ReactContext) -> Unit) {

android/test-app-util.gradle

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -134,33 +134,6 @@ ext.getArchitectures = {
134134
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
135135
}
136136

137-
ext.getFlipperRecommendedVersion = { baseDir ->
138-
def reactNativePath = findNodeModulesPath("react-native", baseDir)
139-
def props = new Properties()
140-
file("${reactNativePath}/template/android/gradle.properties").withInputStream {
141-
props.load(it)
142-
}
143-
144-
return props.getProperty("FLIPPER_VERSION")
145-
}
146-
147-
ext.getFlipperVersion = { baseDir ->
148-
def recommendedFlipperVersion = getFlipperRecommendedVersion(baseDir)
149-
if (recommendedFlipperVersion == null) {
150-
// Current React Native version doesn't support Flipper
151-
return null
152-
}
153-
154-
// Prefer user specified Flipper version
155-
if (project.hasProperty("FLIPPER_VERSION")) {
156-
def flipperVersion = project.getProperty("FLIPPER_VERSION")
157-
return flipperVersion == "false" ? null : flipperVersion
158-
}
159-
160-
// Use the recommended Flipper version
161-
return recommendedFlipperVersion
162-
}
163-
164137
ext.getManifest = {
165138
if (manifest == null) {
166139
def manifestFile = findFile("app.json")

example/android/gradle.properties

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,6 @@ android.useAndroidX=true
2727
# Automatically convert third-party libraries to use AndroidX
2828
android.enableJetifier=true
2929

30-
# Version of Flipper to use with React Native. Default value is whatever React
31-
# Native defaults to. To disable Flipper, set it to `false`.
32-
#FLIPPER_VERSION=0.182.0
33-
3430
# Enable Fabric at runtime.
3531
#USE_FABRIC=1
3632

example/ios/Podfile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ require_relative '../node_modules/react-native-test-app/test_app'
22

33
workspace 'Example.xcworkspace'
44

5-
use_flipper! false unless ENV['ENABLE_FLIPPER']
6-
75
options = {
86
:fabric_enabled => false,
97
:hermes_enabled => false,

ios/ReactTestApp/ReactInstance.swift

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,19 +51,6 @@ final class ReactInstance: NSObject, RNXHostConfig {
5151
andEventID: AEEventID(kAEGetURL)
5252
)
5353
#endif
54-
55-
#if USE_FLIPPER
56-
if let flipper = FlipperClient.shared() {
57-
flipper.add(FlipperKitLayoutPlugin(
58-
rootNode: UIApplication.shared,
59-
with: SKDescriptorMapper(defaults: ())
60-
))
61-
flipper.add(FKUserDefaultsPlugin(suiteName: nil))
62-
flipper.add(FlipperKitReactPlugin())
63-
flipper.add(FlipperKitNetworkPlugin(networkAdapter: SKIOSNetworkAdapter()))
64-
flipper.start()
65-
}
66-
#endif
6754
}
6855

6956
init(forTestingPurposesOnly: Bool) {

ios/ReactTestApp/ReactTestApp-Bridging-Header.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,6 @@
1616

1717
@import ReactTestApp_DevSupport;
1818

19-
#if USE_FLIPPER
20-
#import <FlipperKit/FlipperClient.h>
21-
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h>
22-
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h>
23-
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h>
24-
#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h>
25-
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h>
26-
#endif // USE_FLIPPER
27-
2819
#import "React+Compatibility.h"
2920
#import "UIViewController+ReactTestApp.h"
3021

ios/test_app.rb

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,6 @@ def platform_config(key, project_root, target_platform)
5151
config[key] if !config.nil? && !config.empty?
5252
end
5353

54-
def flipper_enabled?
55-
@flipper_versions != false
56-
end
57-
58-
def flipper_versions
59-
@flipper_versions != false && (@flipper_versions || {})
60-
end
61-
6254
def nearest_node_modules(project_root)
6355
path = find_file('node_modules', project_root)
6456
assert(!path.nil?, "Could not find 'node_modules'")
@@ -194,10 +186,6 @@ def resources_pod(project_root, target_platform, platforms)
194186
Pathname.new(app_dir).relative_path_from(project_root).to_s
195187
end
196188

197-
def use_flipper!(versions = {})
198-
@flipper_versions = versions
199-
end
200-
201189
def use_react_native!(project_root, target_platform, options)
202190
react_native = react_native_path(project_root, target_platform)
203191
version = package_version(react_native.to_s).segments
@@ -208,9 +196,7 @@ def use_react_native!(project_root, target_platform, options)
208196
include_react_native!(**options,
209197
app_path: find_file('package.json', project_root).parent.to_s,
210198
path: react_native.relative_path_from(project_root).to_s,
211-
rta_flipper_versions: flipper_versions,
212-
rta_project_root: project_root,
213-
rta_target_platform: target_platform)
199+
rta_project_root: project_root)
214200
end
215201

216202
def make_project!(xcodeproj, project_root, target_platform, options)
@@ -315,7 +301,6 @@ def make_project!(xcodeproj, project_root, target_platform, options)
315301
build_number = platform_config('buildNumber', project_root, target_platform)
316302
build_settings['PRODUCT_BUILD_NUMBER'] = build_number || '1'
317303

318-
supports_flipper = target_platform == :ios && flipper_enabled?
319304
use_fabric = fabric_enabled?(options, rn_version)
320305
use_turbomodule = new_architecture_enabled?(options, rn_version)
321306

@@ -332,19 +317,13 @@ def make_project!(xcodeproj, project_root, target_platform, options)
332317
(rn_version >= v(0, 71, 0) && rn_version < v(0, 71, 4)) ||
333318
(rn_version.positive? && rn_version < v(0, 70, 14))
334319
target.build_configurations.each do |config|
335-
use_flipper = config.name == 'Debug' && supports_flipper
336-
337320
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
338321
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << version_macro
339322
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'USE_FABRIC=1' if use_fabric
340323
if enable_cxx17_removed_unary_binary_function
341324
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] <<
342325
'_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION=1'
343326
end
344-
if use_flipper
345-
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'FB_SONARKIT_ENABLED=1'
346-
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'USE_FLIPPER=1'
347-
end
348327
if use_turbomodule
349328
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'FOLLY_NO_CONFIG=1'
350329
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_NEW_ARCH_ENABLED=1'
@@ -357,10 +336,6 @@ def make_project!(xcodeproj, project_root, target_platform, options)
357336

358337
config.build_settings['OTHER_SWIFT_FLAGS'] ||= ['$(inherited)']
359338
config.build_settings['OTHER_SWIFT_FLAGS'] << '-DUSE_FABRIC' if use_fabric
360-
if use_flipper
361-
config.build_settings['OTHER_SWIFT_FLAGS'] << '-DFB_SONARKIT_ENABLED'
362-
config.build_settings['OTHER_SWIFT_FLAGS'] << '-DUSE_FLIPPER'
363-
end
364339
config.build_settings['OTHER_SWIFT_FLAGS'] << '-DUSE_TURBOMODULE' if use_turbomodule
365340
if single_app.is_a? String
366341
config.build_settings['OTHER_SWIFT_FLAGS'] << '-DENABLE_SINGLE_APP_MODE'
@@ -455,11 +430,6 @@ def use_test_app_internal!(target_platform, options)
455430

456431
installer.pods_project.targets.each do |target|
457432
case target.name
458-
when /\AFlipper/, 'libevent'
459-
target.build_configurations.each do |config|
460-
# Flipper and its dependencies log too many warnings
461-
config.build_settings['WARNING_CFLAGS'] = ['-w']
462-
end
463433
when /\AReact/
464434
target.build_configurations.each do |config|
465435
# Xcode 10.2 requires suppression of nullability for React

0 commit comments

Comments
 (0)