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
Summary: The GitHub repo has been renamed from facebook-ios-sdk to facebook-objc-sdk
Reviewed By: jingping2015
Differential Revision: D17630050
fbshipit-source-id: 4fa7a3c4859af7fead71c4700a1151903d4734cc
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] describe the change (for example, what happens before the change, and after the change)
Pull Request resolved: https://github.com/facebook/facebook-objc-sdk/pull/1039
Test Plan:
Expect the following commands to be successful.
`pod lib lint FBSDKLoginKit.podspec --include-podspecs=FBSDKCoreKit.podspec --allow-warnings`
`pod lib lint FBSDKShareKit.podspec --include-podspecs=FBSDKCoreKit.podspec --allow-warnings`
Reviewed By: jingping2015
Differential Revision: D17234135
Pulled By: joesus
fbshipit-source-id: a9f4744925a49426faf44f52b13c471f1d5536f8
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] describe the change (for example, what happens before the change, and after the change)
This is a step towards aligning Swift and Objective-C into a single SDK.
Currently we cannot ship a single target that includes both Swift and Objective-C because some consumers of the SDK are tied to older versions of Xcode. Including Swift would increase their binary size or force them to upgrade before Apple mandates an upgrade.
What we can do is prepare for this inevitability by moving the Swift files into this repository.
Additionally this is easier to maintain and allows us to us to reference ObjC files from Swift directly instead of treating them as a third party dependency.
This work raises a few questions about distribution channels (what will the starting versions be for instance) but that is an acceptable cost for the benefits we get from having all of our related code in one place.
Pull Request resolved: https://github.com/facebook/facebook-objc-sdk/pull/1031
Test Plan:
Able to build is the primary concern. That the old targets are not impacted by the new targets and that the new targets build correctly.
Ensure the older targets can build on Xcode 10.1
* FBSDKCoreKit
* FBSDKShareKit
* FBSDKLoginKit
Ensure the older AND newer targets can build on Xcode 10.3
* FBSDKCoreKit
* FBSDKShareKit
* FBSDKLoginKit
* FBSDKCoreKitSwift
* FBSDKShareKitSwift
* FBSDKLoginKitSwift
Ensure the older AND newer targets can build on the latest Xcode (11 beta 6)
// Note: Will need to clean build if you want to build the non-Swift version after building the Swift version
* FBSDKCoreKit
* FBSDKShareKit
* FBSDKLoginKit
* FBSDKCoreKitSwift
* FBSDKShareKitSwift
* FBSDKLoginKitSwift
Reviewed By: dreamolight
Differential Revision: D17164409
Pulled By: joesus
fbshipit-source-id: dbda5036487a2e626e271651b38262e56dac17ce
Summary:
Thanks for proposing a pull request.
To help us review the request, please complete the following:
- [ ] sign [contributor license agreement](https://developers.facebook.com/opensource/cla)
- [ ] describe the change (for example, what happens before the change, and after the change)
Pull Request resolved: https://github.com/facebook/facebook-objc-sdk/pull/981
Reviewed By: jingping2015
Differential Revision: D14766112
Pulled By: codytwinton
fbshipit-source-id: 006aceb137881415f47eb1aa2ef2f2ef7879a3df
Summary: Bumped version for first 5.0 RC
Reviewed By: dreamolight
Differential Revision: D14718312
fbshipit-source-id: 91522df58a87efd015f3458f506ba052310e8a39
Summary: Retroactively bumped version to match 4.x-branch
Reviewed By: jingping2015
Differential Revision: D14718291
fbshipit-source-id: aeaec62a664c29f5c3004e421771f160a189b27c
Summary:
Thanks for proposing a pull request.
To help us review the request, please complete the following:
- [ ] sign [contributor license agreement](https://developers.facebook.com/opensource/cla)
- [ ] describe the change (for example, what happens before the change, and after the change)
Pull Request resolved: https://github.com/facebook/facebook-objc-sdk/pull/968
Reviewed By: joesus
Differential Revision: D14553051
Pulled By: codytwinton
fbshipit-source-id: a44efd422bbc785a6a5bbd8fd66700b5e707de16
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] describe the change (for example, what happens before the change, and after the change)
Pull Request resolved: https://github.com/facebook/facebook-objc-sdk/pull/965
Reviewed By: joesus
Differential Revision: D14514474
Pulled By: codytwinton
fbshipit-source-id: 0848c8bb63004c739b1734a04d20ed82371d2874
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] describe the change (for example, what happens before the change, and after the change)
Pull Request resolved: https://github.com/facebook/facebook-objc-sdk/pull/956
Differential Revision: D14465436
Pulled By: codytwinton
fbshipit-source-id: 6b8894e658f9c27ac6e56cf3ea4d347d01f597ca
Summary:
This diff modernizes the `FBSDKShareKit` to support modern Objective-C syntax to increase type safety with both ObjC and Swift.
**General Changes**
* Removed Deprecated Methods, Classes, Properties
* Typedefs for all Objective-C blocks
* Used `instancetype` for inits
* Updated Xcode Projects/Schemes via. "Validate Project" option in Xcode
* Made `init`/`new` unavailable where/when possible
* Confirm `NSError **` throws on Swift
* Used `NS_SWIFT_UNAVAILABLE` where makes sense
* Ensured `NS_DESIGNATED_INITIALIZER` is used
* Added `NS_TYPED_EXTENSIBLE_ENUM` where made sense
**Updated Properties**
* Changed getter methods to `readonly` properties
* Changed getter/setter methods to `readwrite` properties
* Changed singletons to class properties
* Used dot notation for access to properties
* Added `getter=` for certain properties (e.g. `BOOL`)
**Added Nullability Annotations**
* Used `NS_ASSUME_NONNULL_BEGIN` & `NS_ASSUME_NONNULL_END` for files
* Used `_Nullable` for typedef blocks
* Used `nullable` & `null_resettable`
* Collections/Dictionaries `nonnull` when at all possible
**Added Generics**
* `NSArray` & `NSMutableArray`
* `NSSet` & `NSMutableSet`
* `NSDictionary` & `NSMutableDictionary`
**Added `NS_SWIFT_NAME`**
* Removed prefixes in favor of Swift namespaces
* `FB` prefix for UI elements
* Added Dot notation where makes sense
* Swift init for class method creation methods
Differential Revision: D9843539
fbshipit-source-id: d15f5ccadbad1b3b07b482f068e799a112ec52d2
Summary:
The Bolts framework served a minor role in this SDK, but maintaining this dependency was a decent pain point.
This diff removes the dependency on this framework.
Reviewed By: jingping2015
Differential Revision: D10440950
fbshipit-source-id: 58d78f9989ff394b3b29bf39314699cd31ba4898
Summary: Changed release tag format from `sdk-version-0.0.0` to `v0.0.0`
Reviewed By: jingping2015
Differential Revision: D13524844
fbshipit-source-id: 323663ef5ec91c1c3c2682cd05de56d1dcd30254
Summary: The GitHub repo has been renamed from facebook-ios-sdk to facebook-objc-sdk
Reviewed By: kalendae
Differential Revision: D9833826
fbshipit-source-id: f3e45918656ed2e0b16e872c34717974bfbf64dd