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
62 lines
2.5 KiB
Ruby
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
|