Summary: The issue is that we have a mismatch between how basics is consumed. In terms of BUCK, SPM, and Xcodebuild it's a true module. In the case of CocoaPods it's a "subspec" which is not actually a module. This means we have differences in import statements, and general inconsistencies between our build processes which slows development and is a general pain to manage.
Reviewed By: jawwad
Differential Revision: D28522118
fbshipit-source-id: 953629bd5f365af1fcc064e0f7b6fcf0a07ab48d
Summary:
FBSDKCoreKit_Basics is currently a module for Swift Package Manager and BUCK but not for CocoaPods or Xcodebuild.
This aims to bring the four in line by separating it into its own module for Xcode builds.
Reviewed By: dreamolight
Differential Revision: D28312787
fbshipit-source-id: b31136de9eb98b31d061d289cd0ea7116acf1c14
Summary: It makes sense to wait until we have more pressing breaking changes to release a major version.
Reviewed By: KylinChang
Differential Revision: D26796073
fbshipit-source-id: f01d622bb7f8451a67309d8c3f62284ceda9a678
Summary: Updating major version to match Graph API release.
Reviewed By: linmx0130
Differential Revision: D26711406
fbshipit-source-id: 2ba166ff86b0d97aececa630e6ee4585ff520aae
Summary:
Pull Request resolved: https://github.com/facebook/facebook-ios-sdk/pull/1367
Bumping version to 7.0
Bumping Graph API version to 7.0
Reviewed By: jingping2015
Differential Revision: D21405159
fbshipit-source-id: 7ee479aff3ed663210ae0adb13840280d373d9da
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
Updates for v7.0.
Main change is that the SDK can not be developed using Swift. Default will be to build and distribute with Xcode11 using Swift5.
**Migration Concerns**
* CocoaPods
If you were using the 'Swift' subspec of CocoaPods, ex:
`pod 'FBSDKCoreKit/Swift'`
you can now simply use:
`pod 'FBSDKCoreKit`
* Carthage
You will need to use Xcode 11 or later but no other changes should be necessary. The binaries will include the enhanced Swift interfaces by default.
* SPM
No changes
* xcodebuild
No real changes. The '-Swift' targets are deleted. ex:
target `FBSDKCoreKitSwift-Dynamic` is gone. You can simply use `FBSDKCoreKit-Dynamic` and it will include Swift files
* BUCK
Buck will continue to exclude Swift files for the moment. This is an ongoing effort.
Pull Request resolved: https://github.com/facebook/facebook-ios-sdk/pull/1355
Test Plan: CI and extensive manual testing to make sure we haven't broken any channels.
Reviewed By: dreamolight
Differential Revision: D21239951
Pulled By: joesus
fbshipit-source-id: 325e2049c5fb1b55769c066998dd4b50e0ccaccc
Summary:
Pull Request resolved: https://github.com/facebook/facebook-ios-sdk/pull/1268
Not sure why we were weak-linking core location. I am assuming this was related in some way to the deprecated PlacesKit but am not positive.
Reviewed By: Oliverccccct
Differential Revision: D20167000
fbshipit-source-id: 4b8e69d3e263667cb29ac6ecebb87c0da3ba93bb
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
Podspec dependencies were hardcoded to ~> 5.0. This fixes that.
Swift targets require headers to be declared public in Xcode. I removed some files and added them back without updating their visibility. This fixes that.
Pull Request resolved: https://github.com/facebook/facebook-ios-sdk/pull/1222
Test Plan: CI
Reviewed By: jingping2015
Differential Revision: D19737835
Pulled By: joesus
fbshipit-source-id: 13ec65f70c788ab78c535484aa5db96872fd5cc8
Summary:
Pull Request resolved: https://github.com/facebook/facebook-ios-sdk/pull/1220
Bumps sdk version to 6.0.0
Bumps api version to v6.0
Reviewed By: jingping2015, ZebingZong, KylinChang
Differential Revision: D19698716
fbshipit-source-id: 165ad3f3ac0f5c686e965f521e9d807f9f21d523
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
Updates Package file and Podspecs to rely on file-level platform checks.
Pull Request resolved: https://github.com/facebook/facebook-ios-sdk/pull/1186
Test Plan:
Sample project using this branch should build for iOS, tvOS, Mac Catalyst
Also checked size implications. This change causes a 16 byte increase in size which seems like more than a fair trade-off for the gains in simplicity.
Reviewed By: ZebingZong
Differential Revision: D19499591
Pulled By: joesus
fbshipit-source-id: 50122a6cbeca0e24f9813cde1907affd9dbfa8c4
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
Earlier naive implementation did not account for a setup where SPM was used for the Facebook iOS SDK and Cocoapods was used for other pods in the same project.
Fixed this by adding a more specific preprocessor macro `FBSDKCOCOAPODS` to the podspecs so that we can gate logic specifically on whether the Facebook iOS SDK is installed via CocoaPods.
Pull Request resolved: https://github.com/facebook/facebook-ios-sdk/pull/1106
Test Plan:
1. Create a sample project that includes CocoaPods and install an arbitrary pod that is not one of the iOS SDK Kits.
2. Install the iOS SDK using SPM pointed at this branch.
3. Confirm that it builds
4. Remove the Swift Package and add the iOS SDK Kits as CocoaPods pointed to a local checkout of this branch. ex:
```
pod 'FBSDKCoreKit', :path => '/Users/<you>/facebook-ios-sdk'
pod 'FBSDKLoginKit', :path => '/Users/<you>/facebook-ios-sdk'
pod 'FBSDKShareKit', :path => '/Users/<you>/facebook-ios-sdk'
```
5. Confirm that it builds.
Reviewed By: jingping2015
Differential Revision: D18420523
Pulled By: joesus
fbshipit-source-id: 376f1d134fcd0341ed6f9143d83793900f990675
Summary:
Cocoapods will pass allow directories full of symlinks during linting but not while pushing to trunk.
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
This is very strange. Cocoapods was able to lint these podspecs successfully but pushing them to trunk resulted in an error.
Pull Request resolved: https://github.com/facebook/facebook-ios-sdk/pull/1098
Test Plan: Ran manually and pods are now available in trunk.
Reviewed By: dreamolight
Differential Revision: D18383388
Pulled By: joesus
fbshipit-source-id: 3012c3a1128531464aedac1d17094116c1767a32
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