Entirely control Flipper being enabled through Podfile (#1086)
Summary: Currently user’s are being told to add a definition of the `FB_SONARKIT_ENABLED` macro and examples, including those in stock React Native templates, set this for the user by making use of a `post_install` hook in the user’s `Podfile`. This leads to confusion, fragile code [when a user’s project dir structure deviates from vanilla], and is ultimately not necessary as CocoaPods already has dedicated mechanisms to: * specify build settings (through the `xcconfig` property); * and selectively include certain pods only in certain build configurations (e.g. debug). Finally, this PR also includes a commit [to fix the current builds](https://github.com/facebook/flipper/pull/1086/files#r418526812). ## Changelog > Entirely control Flipper being enabled through inclusion in Podfile and optionally limiting to certain build configurations using the `:configuration` directive. Pull Request resolved: https://github.com/facebook/flipper/pull/1086 Test Plan: I have built and ran the Sample application, as well as used this version of Flipper with a new RN app built from `master`. Reviewed By: passy Differential Revision: D21381828 Pulled By: priteshrnandgaonkar fbshipit-source-id: edf6dae28eb02336a49e8230654d6186360ea8d6
This commit is contained in:
committed by
Facebook GitHub Bot
parent
63a512a910
commit
c393ee9421
@@ -4,55 +4,21 @@ source 'https://github.com/CocoaPods/Specs'
|
||||
|
||||
target 'SampleSwift' do
|
||||
platform :ios, '10.0'
|
||||
pod 'Flipper', :path => '../../Flipper.podspec'
|
||||
pod 'FlipperKit', :path => '../../FlipperKit.podspec'
|
||||
pod 'FlipperKit/SKIOSNetworkPlugin', :path => '../../FlipperKit.podspec'
|
||||
pod 'FlipperKit/FlipperKitUserDefaultsPlugin', :path => '../../FlipperKit.podspec'
|
||||
pod 'FlipperKit/FlipperKitExamplePlugin', :path => '../../FlipperKit.podspec'
|
||||
pod 'FlipperKit/FlipperKitLayoutComponentKitSupport', :path => '../../FlipperKit.podspec'
|
||||
|
||||
# If you use `use_frameworks!` in your Podfile,
|
||||
# uncomment the below $static_framework array and also
|
||||
# the pre_install section. This will cause Flipper and
|
||||
# it's dependencies to be built as a static library and all other pods to
|
||||
# be dynamic.
|
||||
# $static_framework = ['FlipperKit', 'Flipper', 'Flipper-Folly',
|
||||
# 'CocoaAsyncSocket', 'ComponentKit', 'DoubleConversion',
|
||||
# 'glog', 'Flipper-PeerTalk', 'Flipper-RSocket', 'Yoga', 'YogaKit',
|
||||
# 'CocoaLibEvent', 'OpenSSL-Universal', 'boost-for-react-native']
|
||||
#
|
||||
# pre_install do |installer|
|
||||
# Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
|
||||
# installer.pod_targets.each do |pod|
|
||||
# if $static_framework.include?(pod.name)
|
||||
# def pod.build_type;
|
||||
# Pod::Target::BuildType.static_library
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
|
||||
post_install do |installer|
|
||||
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|
|
||||
if (config.build_settings['OTHER_SWIFT_FLAGS'])
|
||||
unless config.build_settings['OTHER_SWIFT_FLAGS'].include? '-DFB_SONARKIT_ENABLED'
|
||||
puts 'Adding -DFB_SONARKIT_ENABLED ...'
|
||||
swift_flags = config.build_settings['OTHER_SWIFT_FLAGS']
|
||||
if swift_flags.split.last != '-Xcc'
|
||||
config.build_settings['OTHER_SWIFT_FLAGS'] << ' -Xcc'
|
||||
end
|
||||
config.build_settings['OTHER_SWIFT_FLAGS'] << ' -DFB_SONARKIT_ENABLED'
|
||||
end
|
||||
else
|
||||
puts 'OTHER_SWIFT_FLAGS does not exist thus assigning it to `$(inherited) -Xcc -DFB_SONARKIT_ENABLED`'
|
||||
config.build_settings['OTHER_SWIFT_FLAGS'] = '$(inherited) -Xcc -DFB_SONARKIT_ENABLED'
|
||||
end
|
||||
app_project.save
|
||||
end
|
||||
end
|
||||
installer.pods_project.save
|
||||
end
|
||||
# See docs/getting-started/ios-native.mdx
|
||||
pod 'FlipperKit', :path => '../../FlipperKit.podspec', :configuration => 'Debug'
|
||||
pod 'FlipperKit/FlipperKitLayoutComponentKitSupport', :path => '../../FlipperKit.podspec', :configuration => 'Debug'
|
||||
pod 'FlipperKit/SKIOSNetworkPlugin', :path => '../../FlipperKit.podspec', :configuration => 'Debug'
|
||||
pod 'FlipperKit/FlipperKitUserDefaultsPlugin', :path => '../../FlipperKit.podspec', :configuration => 'Debug'
|
||||
pod 'FlipperKit/FlipperKitExamplePlugin', :path => '../../FlipperKit.podspec', :configuration => 'Debug'
|
||||
pod 'Flipper', :path => '../../Flipper.podspec', :configuration => 'Debug'
|
||||
pod 'Flipper-DoubleConversion', :configuration => 'Debug'
|
||||
pod 'Flipper-Folly', :configuration => 'Debug'
|
||||
pod 'Flipper-Glog', :configuration => 'Debug'
|
||||
pod 'Flipper-PeerTalk', :configuration => 'Debug'
|
||||
pod 'CocoaLibEvent', :configuration => 'Debug'
|
||||
pod 'boost-for-react-native', :configuration => 'Debug'
|
||||
pod 'OpenSSL-Universal', :configuration => 'Debug'
|
||||
pod 'CocoaAsyncSocket', :configuration => 'Debug'
|
||||
pod 'ComponentKit', '~> 0.30'
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user