From f656be6020910fa122364f7499ea52856af82215 Mon Sep 17 00:00:00 2001 From: Paul Beusterien Date: Tue, 20 Feb 2018 15:10:52 -0800 Subject: [PATCH 1/7] Initial Carthage distribution instructions --- Carthage.md | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 5 +++++ 2 files changed, 67 insertions(+) create mode 100644 Carthage.md diff --git a/Carthage.md b/Carthage.md new file mode 100644 index 00000000000..bf010f67829 --- /dev/null +++ b/Carthage.md @@ -0,0 +1,62 @@ +# 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 to make the Carthage +distribution official. + +## 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/FirebaseFirestoreBinary.json" + - binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseInvitesBinary.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 the 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 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. + +## 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) +and other places. + +Thanks also to those who have already done Firebase Carthage implementations, +such as https://github.com/soheilbm/Firebase. diff --git a/README.md b/README.md index 499d1364938..2d44c9a8ae9 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,11 @@ actively developed primarily for iOS. While we can catch basic unit test issues may be some changes where the SDK no longer works as expected on macOS or tvOS. If you encounter this, please [file an issue](https://github.com/firebase/firebase-ios-sdk/issues). +## Carthage + +An experimental Carthage distribution is now available. See +[Carthage](Carthage.md). + ## Roadmap See [Roadmap](ROADMAP.md) for more about the Firebase iOS SDK Open Source From b7f94cf434e353eab296d1372648c122d6303913 Mon Sep 17 00:00:00 2001 From: Paul Beusterien Date: Tue, 20 Feb 2018 15:13:23 -0800 Subject: [PATCH 2/7] minor wording fix --- Carthage.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Carthage.md b/Carthage.md index bf010f67829..f190ed21024 100644 --- a/Carthage.md +++ b/Carthage.md @@ -55,8 +55,7 @@ components with different versions may cause linker errors. 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) -and other places. +[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. From 50166d028ff665fe1c23dd079bce5efc15fdb808 Mon Sep 17 00:00:00 2001 From: Paul Beusterien Date: Tue, 20 Feb 2018 15:35:18 -0800 Subject: [PATCH 3/7] Address morganchen12 code review --- Carthage.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Carthage.md b/Carthage.md index f190ed21024..27e9467203d 100644 --- a/Carthage.md +++ b/Carthage.md @@ -38,7 +38,7 @@ more details and additional installation methods. - 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 the Finder to open `Carthage/Build/iOS`. +- 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". @@ -46,9 +46,15 @@ more details and additional installation methods. ## Versioning -Unlike the CocoaPods distribution, the Carthage 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. +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 From 48ea6bd16c8b30c6c3e92edcfdc543004368b02d Mon Sep 17 00:00:00 2001 From: Paul Beusterien Date: Wed, 21 Feb 2018 08:05:03 -0800 Subject: [PATCH 4/7] fix typo --- Carthage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Carthage.md b/Carthage.md index 27e9467203d..43669b4bdcd 100644 --- a/Carthage.md +++ b/Carthage.md @@ -4,7 +4,7 @@ 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 to make the Carthage +feedback and usage, the Firebase team may decide to make the Carthage distribution official. ## Carthage Installation From bcab4ce3238ab7e1d6f22b258ef7329f5a356fc7 Mon Sep 17 00:00:00 2001 From: Paul Beusterien Date: Wed, 21 Feb 2018 09:28:36 -0800 Subject: [PATCH 5/7] Cartfile to code block --- Carthage.md | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/Carthage.md b/Carthage.md index 43669b4bdcd..dc641e06d03 100644 --- a/Carthage.md +++ b/Carthage.md @@ -24,19 +24,21 @@ more details and additional installation methods. - 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/FirebaseFirestoreBinary.json" - - binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseInvitesBinary.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" +``` +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/FirebaseFirestoreBinary.json" +binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseInvitesBinary.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 From 6282a9a9a780370c3c81fc9d51ab03e464fa31ca Mon Sep 17 00:00:00 2001 From: Paul Beusterien Date: Wed, 21 Feb 2018 18:18:26 -0800 Subject: [PATCH 6/7] Document that Invites is not supported in the initial release --- Carthage.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Carthage.md b/Carthage.md index dc641e06d03..1f1d25c38ad 100644 --- a/Carthage.md +++ b/Carthage.md @@ -23,7 +23,8 @@ 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. + **FirebaseAnalytics** must always be included. FirebaseInvites is not yet + supported from Carthage. ``` binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseABTestingBinary.json" binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAdMobBinary.json" @@ -33,7 +34,6 @@ 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/FirebaseFirestoreBinary.json" -binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseInvitesBinary.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" From c47aef83dac701c09be316c95cf0c0327020f63a Mon Sep 17 00:00:00 2001 From: Paul Beusterien Date: Thu, 22 Feb 2018 15:54:51 -0800 Subject: [PATCH 7/7] Remove Firestore from docs since it depends on unimplemented resource bundles --- Carthage.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Carthage.md b/Carthage.md index 1f1d25c38ad..e111205314c 100644 --- a/Carthage.md +++ b/Carthage.md @@ -7,6 +7,11 @@ This page introduces and provides instructions for an **experimental** Firebase 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. @@ -22,9 +27,8 @@ 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. FirebaseInvites is not yet - supported from Carthage. +- 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" @@ -33,7 +37,6 @@ 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/FirebaseFirestoreBinary.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"