aboutsummaryrefslogtreecommitdiffhomepage
path: root/Carthage.md
diff options
context:
space:
mode:
authorGravatar Paul Beusterien <paulbeusterien@google.com>2018-02-22 16:32:45 -0800
committerGravatar GitHub <noreply@github.com>2018-02-22 16:32:45 -0800
commitdb1cf7488ac3ee4bf803b4abb78de8cd638fe453 (patch)
tree3e62571985b0026306db4661e75dc9a35a67a7b5 /Carthage.md
parentf75267bfd6225605d246d7ebca3eed939d43bc48 (diff)
Initial Carthage distribution instructions (#821)
I couldn't find a way to get the Carthage installer to install Resources, so withdrawing Firestore and Invites. The other 11 components passed testing.
Diffstat (limited to 'Carthage.md')
-rw-r--r--Carthage.md72
1 files changed, 72 insertions, 0 deletions
diff --git a/Carthage.md b/Carthage.md
new file mode 100644
index 0000000..e111205
--- /dev/null
+++ b/Carthage.md
@@ -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.