-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Initial Carthage distribution instructions #821
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
f656be6
Initial Carthage distribution instructions
paulb777 b7f94cf
minor wording fix
paulb777 50166d0
Address morganchen12 code review
paulb777 48ea6bd
fix typo
paulb777 bcab4ce
Cartfile to code block
paulb777 6282a9a
Document that Invites is not supported in the initial release
paulb777 c47aef8
Remove Firestore from docs since it depends on unimplemented resource…
paulb777 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
# Firebase Carthage | ||
|
||
## Context | ||
|
||
This page introduces and provides instructions for an **experimental** Firebase | ||
[Carthage](https://github.com/Carthage/Carthage) implementation. Based on | ||
feedback and usage, the Firebase team may decide to make the Carthage | ||
distribution official. | ||
|
||
FirebaseFirestore and FirebaseInvites are not yet supported from Carthage. | ||
Please [let us know](https://github.com/firebase/firebase-ios-sdk/issues) if you | ||
have suggestions about how best to distribute Carthage binaries that include | ||
resource bundles. | ||
|
||
## Carthage Installation | ||
|
||
[Homebrew](http://brew.sh/) is one way to install Carthage. | ||
|
||
```bash | ||
$ brew update | ||
$ brew install carthage | ||
``` | ||
|
||
See the | ||
[Carthage page](https://github.com/Carthage/Carthage#installing-carthage) for | ||
more details and additional installation methods. | ||
|
||
## Carthage Usage | ||
|
||
- Create a Cartfile with a **subset** of the following components. Note that | ||
**FirebaseAnalytics** must always be included. | ||
``` | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseABTestingBinary.json" | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAdMobBinary.json" | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAuthBinary.json" | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseCrashBinary.json" | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseDatabaseBinary.json" | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseDynamicLinksBinary.json" | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json" | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebasePerformanceBinary.json" | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseRemoteConfigBinary.json" | ||
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json" | ||
``` | ||
- Run `carthage update` | ||
- Use Finder to open `Carthage/Build/iOS`. | ||
- Copy the contents into the top level of your Xcode project and make sure | ||
they're added to the right build target(s). | ||
- Add the -ObjC flag to "Other Linker Flags". | ||
- Make sure that the build target(s) includes your project's `GoogleService-Info.plist`. | ||
|
||
## Versioning | ||
|
||
Unlike the CocoaPods distribution, the Carthage distribution is like the | ||
Firebase zip release in that all the Firebase components share the same version. | ||
Mixing and matching components with different versions may cause linker errors. | ||
|
||
## Static Frameworks | ||
|
||
Note that the Firebase frameworks in the distribution include static libraries. | ||
While it is fine to link these into apps, it will generally not work to depend | ||
on them from wrapper dynamic frameworks. | ||
|
||
## Acknowledgements | ||
|
||
Thanks to the Firebase community for encouraging this implementation including | ||
those who have made this the most updated | ||
[firebase-ios-sdk](https://github.com/firebase/firebase-ios-sdk) | ||
[issue](https://github.com/firebase/firebase-ios-sdk/issues/9). | ||
|
||
Thanks also to those who have already done Firebase Carthage implementations, | ||
such as https://github.com/soheilbm/Firebase. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe worth adding a note (here or somewhere else) that these distributions are still static binaries, and people should be wary of building wrapper frameworks with Carthage on top of them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added a Static Frameworks section to communicate this ...