This was an experimental project. Firebase team has already started to work on carthage support in their main repository. For more information please refer to Firebase-iOS-Carthage.
If you are looking for open source Firebase repository you may refer to Firebase-iOS-SDK.
The iOS Example file is a sample of using core firebase (analytics).
You need to add GoogleService info plist to your main project. (iOS Example project also needs Googleservice info plist)
Carthage is a decentralized dependency manager that builds your dependencies and provides you with binary frameworks.
You can install Carthage with Homebrew using the following command:
$ brew update
$ brew install carthage
To integrate Firebase into your Xcode project using Carthage, specify it in your Cartfile
:
github "soheilbm/Firebase"
Run carthage update
to build the framework and drag the built Firebase.framework
into your Xcode project.
- Add the -ObjC flag to "Other Linker Settings"
- Turn on ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES in your build settings.
- Drag each framework from the directory named after the SDK into the Project Navigator pane. Note that there may be no additional frameworks, in which case this directory will be empty. For instance, if you want the Database SDK, look in the Database folder for the required frameworks. In the dialog box that appears, make sure the target you want this framework to be added to has a checkmark next to it, and that you've selected "Copy items if needed.
"(~> X)" below means that the SDK requires all of the frameworks from X. You should make sure to include all of the frameworks from X when including the SDK. Add the following Framework to your project with carthage copy-framework method.
- FirebaseAnalytics.framework
- FirebaseNanoPB.framework
- FirebaseCoreDiagnostics.framework
- FirebaseCore.framework
- FirebaseInstanceID.framework
- GoogleToolboxForMac.framework
- nanopb.framework
- FirebaseABTesting.framework
- Protobuf.framework
- GoogleMobileAds.framework
- FirebaseAuth.framework
- GTMSessionFetcher.framework
- FirebaseCrash.framework
- Protobuf.framework
- FirebaseDatabase.framework
- leveldb-library.framework
- FirebaseDynamicLinks.framework
- BoringSSL.framework
- FirebaseFirestore.framework
- Protobuf.framework
- gRPC.framework
- gRPC-Core.framework
- gRPC-ProtoRPC.framework
- gRPC-RxLibrary.framework
- leveldb-library.framework
You'll also need to add the resources in the Resources directory into your target's main bundle.
- FirebaseDynamicLinks.framework
- FirebaseInvites.framework
- GTMOAuth2.framework
- GTMSessionFetcher.framework
- GoogleAPIClientForREST.framework
- GoogleSignIn.framework
- Protobuf.framework
You'll also need to add the resources in the Resources directory into your target's main bundle.
- FirebaseMessaging.framework
- Protobuf.framework
- FirebasePerformance.framework
- FirebaseSwizzlingUtilities.framework
- GTMSessionFetcher.framework
- Protobuf.framework
- FirebaseABTesting.framework
- FirebaseRemoteConfig.framework
- Protobuf.framework
- FirebaseStorage.framework
- GTMSessionFetcher.framework
You can get samples for Firebase from https://github.com/firebase/quickstart-ios:
git clone https://github.com/firebase/quickstart-ios
Note that several of the samples depend on SDKs that are not included with this archive; for example, FirebaseUI. For the samples that depend on SDKs not included in this archive, you'll need to use CocoaPods.
The frameworks in this directory map to these versions of the Firebase SDKs in Carthage.
Carthage | Version |
---|---|
BoringSSL | 9.2 |
Firebase | 4.10.0 |
FirebaseABTesting | 1.0.0 |
FirebaseAnalytics | 4.1.0 |
FirebaseAuth | 4.4.4 |
FirebaseCore | 4.0.16 |
FirebaseCrash | 2.0.2 |
FirebaseDatabase | 4.1.5 |
FirebaseDynamicLinks | 2.3.2 |
FirebaseFirestore | 0.10.2 |
FirebaseInstanceID | 2.0.9 |
FirebaseInvites | 2.0.2 |
FirebaseMessaging | 2.1.1 |
FirebasePerformance | 1.1.2 |
FirebaseRemoteConfig | 2.1.2 |
FirebaseStorage | 2.1.3 |
FirebaseSwizzlingUtilities | 1.0.0 |
GTMOAuth2 | 1.1.6 |
GTMSessionFetcher | 1.1.14 |
Google-Mobile-Ads-SDK | 7.29.0 |
GoogleAPIClientForREST | 1.3.2 |
GoogleSignIn | 4.1.2 |
GoogleToolboxForMac | 2.1.3 |
Protobuf | 3.5.0 |
gRPC | 1.9.1 |
gRPC-Core | 1.9.1 |
gRPC-ProtoRPC | 1.9.1 |
gRPC-RxLibrary | 1.9.1 |
leveldb-library | 1.20 |
nanopb | 0.3.8 |
Soheil B.Marvasti
I do not own this project. This is just a simple repository to bring Carthage compatibility to Firebase.