Files
facebook-ios-sdk/FBSDKCoreKit.podspec
joesusnick f3be0dab4c SPM Support (#1073)
Summary:
Thanks for proposing a pull request!

To help us review the request, please complete the following:

- [x] sign [contributor license agreement](https://developers.facebook.com/opensource/cla)
- [x] I've ensured that all existing tests pass and added tests (when/where necessary)
- [x] I've updated the documentation (when/where necessary) and [Changelog](CHANGELOG.md) (when/where necessary)
- [x] I've added the proper label to this pull request (e.g. `bug` for bug fixes)

## Pull Request Details

Added a `Package.swift` manifest.
Updated imports to be non-modular for non-cocoapod setups.
Updated dynamic framework loader to compile with arc. - This should be checked. Not 100% sure I did not cause a regression.
Added a directory of symlinks to public header files - this was to get around a limitation in the SPM api where they will only accepts a path to header files (forces them to be located in the same directory) and not a list of header files.
Pull Request resolved: https://github.com/facebook/facebook-ios-sdk/pull/1073

Test Plan:
**SPM:**

`cd fbsource/fbobjc/ios-sdk`

Initialize a new repository, add all the files and create a new commit on master.
`git init`
`git add .`
`git commit -m "new commit"`

Open the package itself with >= Xcode 11 by opening `Package.swift` instead of the usual project and verify that it builds

Open a new project with >= Xcode 11 and add a new swift package. For the Package Repository field put the path to the sdk.
`file:///Users/$whoami/fbsource/fbobjc/ios-sdk`

then specify the branch as `master`. This sample project should build and you should be able to consume the kits with `import FBSDKCoreKit` or `FacebookCore` (for the Swift variant), `import FBSDKLoginKit` or `import FacebookLogin` and `import FBSDKShareKit` or `import FacebookShare`.

Make sure that LoginKit and ShareKit also expose CoreKit symbols.

**Xcode:**

Can build all schemes as expected
`BuildAllKits`
`FBSDKTVOSKit-Universal`
`FBSDKTVOSKit-Dynamic`
`SwiftKits`

**CocoaPods:**

`cd fbsource/fbojbc/ios-sdk`

`bundle exec pod lib lint FBSDKCoreKit.podspec`

`bundle exec pod lib lint FBSDKLoginKit.podspec --include-podspecs=FBSDKCoreKit.podspec --allow-warnings`

`bundle exec pod lib lint FBSDKShareKit.podspec --include-podspecs=FBSDKCoreKit.podspec --allow-warnings`

**BUCK:**

`cd fbsource/fbobjc/ios-sdk`
`buck build ios-sdk:FBSDKCoreKit`
`buck build ios-sdk:FBSDKLoginKit`
`buck build ios-sdk:FBSDKShareKit`

Also all of the other BUCK targets (will be covered by sandcastle)

Reviewed By: dreamolight

Differential Revision: D17879652

Pulled By: joesus

fbshipit-source-id: d931140d0fb3b554f1e29e5c2af7e2173316670d
2019-10-29 09:14:15 -07:00

103 lines
5.8 KiB
Ruby

# Use the --use-libraries switch when pushing or linting this podspec
Pod::Spec.new do |s|
s.name = 'FBSDKCoreKit'
s.version = '5.8.0'
s.summary = 'Official Facebook SDK for iOS to access Facebook Platform core features'
s.description = <<-DESC
The Facebook SDK for iOS CoreKit framework provides:
* App Events (for App Analytics)
* Graph API Access and Error Recovery
* Working with Access Tokens and User Profiles
DESC
s.homepage = 'https://developers.facebook.com/docs/ios/'
s.license = { :type => 'Facebook Platform License', :file => 'LICENSE' }
s.author = 'Facebook'
s.platform = :ios, :tvos
s.ios.deployment_target = '8.0'
s.tvos.deployment_target = '10.0'
s.source = { :git => 'https://github.com/facebook/facebook-ios-sdk.git',
:tag => "v#{s.version}"
}
s.ios.weak_frameworks = 'Accounts', 'CoreLocation', 'Social', 'Security', 'QuartzCore', 'CoreGraphics', 'UIKit', 'Foundation', 'AudioToolbox'
s.tvos.weak_frameworks = 'CoreLocation', 'Security', 'QuartzCore', 'CoreGraphics', 'UIKit', 'Foundation', 'AudioToolbox'
# This excludes `FBSDKCoreKit/FBSDKCoreKit/Internal_NoARC/` folder, as that folder includes only `no-arc` files.
s.requires_arc = ['FBSDKCoreKit/FBSDKCoreKit/*',
'FBSDKCoreKit/FBSDKCoreKit/AppEvents/**/*',
'FBSDKCoreKit/FBSDKCoreKit/AppLink/**/*',
'FBSDKCoreKit/FBSDKCoreKit/Basics/**/*',
'FBSDKCoreKit/FBSDKCoreKit/Internal/**/*']
s.default_subspecs = 'Core', 'Basics'
s.swift_version = '5.0'
s.subspec 'Basics' do |ss|
ss.source_files = 'FBSDKCoreKit/FBSDKCoreKit/Basics/*.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Basics/**/*.{h,m}'
ss.public_header_files = 'FBSDKCoreKit/FBSDKCoreKit/Basics/Internal/**/*.h',
'FBSDKCoreKit/FBSDKCoreKit/Basics/Instrument/**/*.h',
'FBSDKCoreKit/FBSDKCoreKit/Basics/*.h'
ss.private_header_files = 'FBSDKCoreKit/FBSDKCoreKit/Basics/Internal/**/*.h',
'FBSDKCoreKit/FBSDKCoreKit/Basics/Instrument/**/*.h'
ss.library = 'z'
end
s.subspec 'Core' do |ss|
ss.dependency 'FBSDKCoreKit/Basics'
ss.exclude_files = 'FBSDKCoreKit/FBSDKCoreKit/Basics/*',
'FBSDKCoreKit/FBSDKCoreKit/Basics/**/*.{h,m}'
ss.source_files = 'FBSDKCoreKit/FBSDKCoreKit/**/*.{h,m}'
ss.public_header_files = 'FBSDKCoreKit/FBSDKCoreKit/Internal/**/*.h',
'FBSDKCoreKit/FBSDKCoreKit/AppEvents/Internal/**/*.h',
'FBSDKCoreKit/FBSDKCoreKit/*.h',
'FBSDKCoreKit/FBSDKCoreKit/AppEvents/*.h',
'FBSDKCoreKit/FBSDKCoreKit/AppLink/*.h'
ss.private_header_files = 'FBSDKCoreKit/FBSDKCoreKit/Internal/**/*.h',
'FBSDKCoreKit/FBSDKCoreKit/AppEvents/Internal/**/*.h'
ss.resources = 'FacebookSDKStrings.bundle'
ss.ios.exclude_files = 'FBSDKCoreKit/FBSDKCoreKit/FBSDKDeviceButton.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/FBSDKDeviceViewControllerBase.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Internal/Device/**/*',
'FBSDKCoreKit/FBSDKCoreKit/Swift/**/*'
ss.tvos.exclude_files = 'FBSDKCoreKit/FBSDKCoreKit/AppEvents/Internal/AAM/*',
'FBSDKCoreKit/FBSDKCoreKit/AppEvents/Internal/Codeless/*',
'FBSDKCoreKit/FBSDKCoreKit/AppEvents/Internal/FBSDKHybridAppEventsScriptMessageHandler.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/AppLink/**/*',
'FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphErrorRecoveryProcessor.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/FBSDKMeasurementEvent.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/FBSDKMutableCopying.h',
'FBSDKCoreKit/FBSDKCoreKit/FBSDKProfile.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/FBSDKProfilePictureView.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/FBSDKURL.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/**/*',
'FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKAppLinkReturnToRefererView_Internal.h',
'FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKAppLink_Internal.h',
'FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKAudioResourceLoader.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKContainerViewController.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMeasurementEvent_Internal.h',
'FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMonotonicTime.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKProfile+Internal.h',
'FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKSystemAccountStoreAdapter.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKTriStateBOOL.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKURL_Internal.h',
'FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKCloseIcon.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKColor.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKMaleSilhouetteIcon.{h,m}',
'FBSDKCoreKit/FBSDKCoreKit/Internal/WebDialog/**/*'
end
s.subspec 'Swift' do |ss|
ss.dependency 'FBSDKCoreKit/Core'
ss.platform = :ios
ss.source_files = 'FBSDKCoreKit/FBSDKCoreKit/Swift/*.{h,m,swift}'
ss.exclude_files = 'FBSDKCoreKit/FBSDKCoreKit/Swift/Exports.swift'
end
end