Files
flipper/iOS/Tutorial/Podfile
Pritesh Nandgaonkar a2c43653cf Update podfile for Cocoapods 1.9 (#892)
Summary:
Updates the instructions to integrate iOS pods for the case with the usage of `use_frameworks!` for cocoapods 1.9. Also changed our podfile for Tutorial app and add travis test for the same, so that in future if there are any further changes with the API in new releases of cocoapods, we can catch it.
## Changelog

- Added travis test for iOS Tutorial app
- Updated the getting started guide for iOS
Pull Request resolved: https://github.com/facebook/flipper/pull/892

Test Plan: Travis test passed and also tested that tutorial app builds with cocoapods 1.9

Reviewed By: mweststrate

Differential Revision: D20587989

Pulled By: priteshrnandgaonkar

fbshipit-source-id: b297e6b1298a20a9279ad6414e9d099917876fb1
2020-03-23 04:55:52 -07:00

62 lines
2.5 KiB
Ruby

project 'Tutorial.xcodeproj'
swift_version = "4.1"
flipperkit_version = '0.34.0'
use_frameworks!
target 'Tutorial' do
platform :ios, '10.0'
pod 'FlipperKit', '~>' + flipperkit_version
# Layout and network plugins are not yet supported for swift projects
pod 'FlipperKit/FlipperKitLayoutComponentKitSupport', '~>' + flipperkit_version
pod 'FlipperKit/SKIOSNetworkPlugin', '~>' + flipperkit_version
pod 'FlipperKit/FlipperKitUserDefaultsPlugin', '~>' + flipperkit_version
# 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 static and all other pods to
# be dynamic.
$static_framework = ['FlipperKit', 'Flipper', 'Flipper-Folly',
'CocoaAsyncSocket', 'ComponentKit', 'Flipper-DoubleConversion',
'Flipper-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::BuildType.static_library
end
end
end
end
# This post_install hook adds the -DFB_SONARKIT_ENABLED flag to OTHER_SWIFT_FLAGS, necessary to build swift target
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
end