Carthage.md 3.0 KB

Firebase Carthage

Context

This page introduces and provides instructions for an experimental Firebase 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 if you have suggestions about how best to distribute Carthage binaries that include resource bundles.

Carthage Installation

Homebrew is one way to install Carthage.

$ brew update
$ brew install carthage

See the Carthage page 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 issue.

Thanks also to those who have already done Firebase Carthage implementations, such as https://github.com/soheilbm/Firebase.