mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: The integration of Flipper on iOS was crashing the template, and `test_ios_e2e` were failing because of it. Flipper integration must be wrapped inside `FB_SONARKIT_ENABLED`. Flipper's issues with Yoga and YogaKit were solved in Flipper 0.28.0, so let's update our integration to it, and we'll need to use Swift. We will be able to ship this in 0.62 (cc grabbou, axe-fb, priteshrnandgaonkar), and it should fix `test_ios_e2e` (cc hramos) � . ## Changelog [iOS] [Fixed] - Fix Flipper integration on and update Flipper to 0.30.0 Pull Request resolved: https://github.com/facebook/react-native/pull/27426 Test Plan: - Initialized an app with my branch as source. - Added `[AppDelegate initializeFlipper:application];` to `didFinishLaunchingWithOptions`. - Launched Flipper. - Ran the app (debug).  - Ran the app (release). - Everything succeeds, no Flipper connection available in release. Reviewed By: hramos Differential Revision: D18841468 Pulled By: axe-fb fbshipit-source-id: 73bb4810d1fbb6a96102848f8700ebb7c23a615b
97 lines
4.3 KiB
Ruby
97 lines
4.3 KiB
Ruby
platform :ios, '9.0'
|
|
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
|
|
|
|
# Add Flipper Pods
|
|
def flipper_pods()
|
|
flipperkit_version = '0.30.0'
|
|
pod 'FlipperKit', '~>' + flipperkit_version, :configuration => 'Debug'
|
|
pod 'FlipperKit/FlipperKitLayoutPlugin', '~>' + flipperkit_version, :configuration => 'Debug'
|
|
pod 'FlipperKit/SKIOSNetworkPlugin', '~>' + flipperkit_version, :configuration => 'Debug'
|
|
pod 'FlipperKit/FlipperKitUserDefaultsPlugin', '~>' + flipperkit_version, :configuration => 'Debug'
|
|
pod 'FlipperKit/FlipperKitReactPlugin', '~>' + flipperkit_version, :configuration => 'Debug'
|
|
end
|
|
|
|
# Post Install processing for Flipper
|
|
def flipper_post_install(installer)
|
|
installer.pods_project.targets.each do |target|
|
|
if target.name == 'YogaKit'
|
|
target.build_configurations.each do |config|
|
|
config.build_settings['SWIFT_VERSION'] = '4.1'
|
|
end
|
|
end
|
|
end
|
|
file_name = Dir.glob("*.xcodeproj")[0]
|
|
app_project = Xcodeproj::Project.open(file_name)
|
|
app_project.native_targets.each do |target|
|
|
target.build_configurations.each do |config|
|
|
cflags = config.build_settings['OTHER_CFLAGS'] || '$(inherited) '
|
|
unless cflags.include? '-DFB_SONARKIT_ENABLED=1'
|
|
puts 'Adding -DFB_SONARKIT_ENABLED=1 in OTHER_CFLAGS...'
|
|
cflags << '-DFB_SONARKIT_ENABLED=1'
|
|
end
|
|
config.build_settings['OTHER_CFLAGS'] = cflags
|
|
end
|
|
app_project.save
|
|
end
|
|
installer.pods_project.save
|
|
end
|
|
|
|
|
|
target 'HelloWorld' do
|
|
# Pods for HelloWorld
|
|
pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
|
|
pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
|
|
pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
|
|
pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
|
|
pod 'React', :path => '../node_modules/react-native/'
|
|
pod 'React-Core', :path => '../node_modules/react-native/'
|
|
pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
|
|
pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
|
|
pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
|
|
pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
|
|
pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
|
|
pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
|
|
pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
|
|
pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
|
|
pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
|
|
pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
|
|
pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
|
|
pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'
|
|
|
|
pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
|
|
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
|
|
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
|
|
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
|
|
pod 'ReactCommon/callinvoker', :path => "../node_modules/react-native/ReactCommon"
|
|
pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
|
|
pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga', :modular_headers => true
|
|
|
|
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
|
|
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
|
|
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
|
|
|
|
target 'HelloWorldTests' do
|
|
inherit! :complete
|
|
# Pods for testing
|
|
end
|
|
|
|
use_native_modules!
|
|
|
|
# For enabling Flipper.
|
|
# Note that if you use_frameworks!, flipper will no work.
|
|
# Disable these lines if you are doing use_frameworks!
|
|
flipper_pods()
|
|
post_install do |installer|
|
|
flipper_post_install(installer)
|
|
end
|
|
end
|
|
|
|
target 'HelloWorld-tvOS' do
|
|
# Pods for HelloWorld-tvOS
|
|
|
|
target 'HelloWorld-tvOSTests' do
|
|
inherit! :search_paths
|
|
# Pods for testing
|
|
end
|
|
end
|