This repository has been archived on 2026-05-31. You can view files and clone it, but cannot push or open issues or pull requests.
2021-01-04 16:44:35 +01:00

360 lines
12 KiB
Markdown

# Firebase iOS SDKs
This directory contains the full Firebase distribution, packaged as static
frameworks that can be integrated into your app.
# Integration Instructions
Each Firebase component requires several frameworks in order to function
properly. Each section below lists the frameworks you'll need to include
in your project in order to use that Firebase SDK in your application.
To integrate a Firebase SDK with your app:
1. Find the desired SDK in the list below.
2. Make sure you have an Xcode project open in Xcode.
3. In Xcode, hit `⌘-1` to open the Project Navigator pane. It will open on
left side of the Xcode window if it wasn't already open.
4. Drag each framework from the "FirebaseAnalytics" directory into the Project
Navigator pane. In the dialog box that appears, make sure the target you
want the framework to be added to has a checkmark next to it, and that
you've selected "Copy items if needed". If you already have Firebase
frameworks in your project, make sure that you replace them with the new
versions.
5. 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."
*Do not add the Firebase frameworks to the "Embed Frameworks" Xcode build
phase. The Firebase frameworks are not embedded dynamic frameworks, but are
[static frameworks](https://www.raywenderlich.com/65964/create-a-framework-for-ios)
which cannot be embedded into your application's bundle.*
6. If the SDK has resources, go into the Resources folders, which will be in
the SDK folder. Drag all of those resources into the Project Navigator, just
like the frameworks, again making sure that the target you want to add these
resources to has a checkmark next to it, and that you've selected "Copy items
if needed".
7. Add the -ObjC flag to "Other Linker Settings":
a. In your project settings, open the Settings panel for your target
b. Go to the Build Settings tab and find the "Other Linker Flags" setting
in the Linking section.
c. Double-click the setting, click the '+' button, and add "-ObjC" (without
quotes)
8. Drag the `Firebase.h` header in this directory into your project. This will
allow you to `#import "Firebase.h"` and start using any Firebase SDK that you
have.
9. If you're using Swift, or you want to use modules, drag module.modulemap into
your project and update your User Header Search Paths to contain the
directory that contains your module map.
10. You're done! Compile your target and start using Firebase.
If you want to add another SDK, repeat the steps above with the frameworks for
the new SDK. You only need to add each framework once, so if you've already
added a framework for one SDK, you don't need to add it again. Note that some
frameworks are required by multiple SDKs, and so appear in multiple folders.
The Firebase frameworks list the system libraries and frameworks they depend on
in their modulemaps. If you have disabled the "Link Frameworks Automatically"
option in your Xcode project/workspace, you will need to add the system
frameworks and libraries listed in each Firebase framework's
<Name>.framework/Modules/module.modulemap file to your target's or targets'
"Link Binary With Libraries" build phase.
"(~> 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.
## FirebaseAnalytics
- FIRAnalyticsConnector.framework
- FirebaseAnalytics.framework
- FirebaseCore.framework
- FirebaseCoreDiagnostics.framework
- FirebaseInstallations.framework
- GoogleAppMeasurement.framework
- GoogleDataTransport.framework
- GoogleDataTransportCCTSupport.framework
- GoogleUtilities.framework
- PromisesObjC.framework
- nanopb.framework
## FirebaseABTesting (~> FirebaseAnalytics)
- FirebaseABTesting.framework
- Protobuf.framework
## FirebaseAuth (~> FirebaseAnalytics)
- FirebaseAuth.framework
- GTMSessionFetcher.framework
## FirebaseCrashlytics (~> FirebaseAnalytics)
- FirebaseCrashlytics.framework
## FirebaseDatabase (~> FirebaseAnalytics)
- FirebaseDatabase.framework
- leveldb-library.framework
## FirebaseDynamicLinks (~> FirebaseAnalytics)
- FirebaseDynamicLinks.framework
## FirebaseFirestore (~> FirebaseAnalytics)
- BoringSSL-GRPC.framework
- FirebaseFirestore.framework
- abseil.framework
- gRPC-C++.framework
- gRPC-Core.framework
- leveldb-library.framework
You'll also need to add the resources in the Resources
directory into your target's main bundle.
## FirebaseFunctions (~> FirebaseAnalytics)
- FirebaseFunctions.framework
- GTMSessionFetcher.framework
## FirebaseInAppMessaging (~> FirebaseAnalytics)
- FirebaseABTesting.framework
- FirebaseInAppMessaging.framework
- FirebaseInstanceID.framework
- Protobuf.framework
You'll also need to add the resources in the Resources
directory into your target's main bundle.
## FirebaseMLModelInterpreter (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLModelInterpreter.framework
- GTMSessionFetcher.framework
- GoogleToolboxForMac.framework
- Protobuf.framework
- TensorFlowLiteC.framework
- TensorFlowLiteObjC.framework
## FirebaseMLNLLanguageID (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLNLLanguageID.framework
- FirebaseMLNaturalLanguage.framework
- GTMSessionFetcher.framework
- GoogleToolboxForMac.framework
- Protobuf.framework
## FirebaseMLNLSmartReply (~> FirebaseAnalytics)
- FirebaseABTesting.framework
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLNLLanguageID.framework
- FirebaseMLNLSmartReply.framework
- FirebaseMLNaturalLanguage.framework
- FirebaseRemoteConfig.framework
- GTMSessionFetcher.framework
- GoogleToolboxForMac.framework
- Protobuf.framework
You'll also need to add the resources in the Resources
directory into your target's main bundle.
## FirebaseMLNLTranslate (~> FirebaseAnalytics)
- FirebaseABTesting.framework
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLNLTranslate.framework
- FirebaseMLNaturalLanguage.framework
- FirebaseRemoteConfig.framework
- GTMSessionFetcher.framework
- GoogleToolboxForMac.framework
- Protobuf.framework
You'll also need to add the resources in the Resources
directory into your target's main bundle.
## FirebaseMLNaturalLanguage (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLNaturalLanguage.framework
- GTMSessionFetcher.framework
- GoogleToolboxForMac.framework
- Protobuf.framework
## FirebaseMLVision (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLVision.framework
- GTMSessionFetcher.framework
- GoogleAPIClientForREST.framework
- GoogleToolboxForMac.framework
- Protobuf.framework
## FirebaseMLVisionAutoML (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLVision.framework
- FirebaseMLVisionAutoML.framework
- GTMSessionFetcher.framework
- GoogleAPIClientForREST.framework
- GoogleToolboxForMac.framework
- Protobuf.framework
- TensorFlowLiteC.framework
- TensorFlowLiteObjC.framework
## FirebaseMLVisionBarcodeModel (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLVision.framework
- FirebaseMLVisionBarcodeModel.framework
- GoogleAPIClientForREST.framework
- GoogleToolboxForMac.framework
## FirebaseMLVisionFaceModel (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLVision.framework
- FirebaseMLVisionFaceModel.framework
- GoogleAPIClientForREST.framework
- GoogleToolboxForMac.framework
You'll also need to add the resources in the Resources
directory into your target's main bundle.
## FirebaseMLVisionLabelModel (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLVision.framework
- FirebaseMLVisionLabelModel.framework
- GoogleAPIClientForREST.framework
- GoogleToolboxForMac.framework
## FirebaseMLVisionObjectDetection (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLVision.framework
- FirebaseMLVisionObjectDetection.framework
- GTMSessionFetcher.framework
- GoogleAPIClientForREST.framework
- GoogleToolboxForMac.framework
- Protobuf.framework
## FirebaseMLVisionTextModel (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMLCommon.framework
- FirebaseMLVision.framework
- FirebaseMLVisionTextModel.framework
- GoogleAPIClientForREST.framework
- GoogleToolboxForMac.framework
You'll also need to add the resources in the Resources
directory into your target's main bundle.
## FirebaseMessaging (~> FirebaseAnalytics)
- FirebaseInstanceID.framework
- FirebaseMessaging.framework
- Protobuf.framework
## FirebasePerformance (~> FirebaseAnalytics)
- FirebaseABTesting.framework
- FirebaseInstanceID.framework
- FirebasePerformance.framework
- FirebaseRemoteConfig.framework
- GTMSessionFetcher.framework
- GoogleToolboxForMac.framework
- Protobuf.framework
## FirebaseRemoteConfig (~> FirebaseAnalytics)
- FirebaseABTesting.framework
- FirebaseInstanceID.framework
- FirebaseRemoteConfig.framework
- Protobuf.framework
## FirebaseStorage (~> FirebaseAnalytics)
- FirebaseStorage.framework
- GTMSessionFetcher.framework
## Google-Mobile-Ads-SDK (~> FirebaseAnalytics)
- GoogleMobileAds.framework
## GoogleSignIn
- AppAuth.framework
- GTMAppAuth.framework
- GTMSessionFetcher.framework
- GoogleSignIn.framework
You'll also need to add the resources in the Resources
directory into your target's main bundle.
# Samples
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.
# Versions
The frameworks in this directory map to these versions of the Firebase SDKs in
CocoaPods.
CocoaPod | Version
--------------------------------|---------
AppAuth | 1.3.0
BoringSSL-GRPC | 0.0.3
Firebase | 6.19.0
FirebaseABTesting | 3.2.0
FirebaseAnalytics | 6.3.1
FirebaseAnalyticsInterop | 1.5.0
FirebaseAuth | 6.4.3
FirebaseAuthInterop | 1.1.0
FirebaseCore | 6.6.4
FirebaseCoreDiagnostics | 1.2.2
FirebaseCoreDiagnosticsInterop | 1.2.0
FirebaseCrashlytics | 4.0.0-beta.5
FirebaseDatabase | 6.1.4
FirebaseDynamicLinks | 4.0.7
FirebaseFirestore | 1.11.1
FirebaseFunctions | 2.5.1
FirebaseInAppMessaging | 0.19.0
FirebaseInstallations | 1.1.0
FirebaseInstanceID | 4.3.2
FirebaseMLCommon | 0.19.0
FirebaseMLModelInterpreter | 0.19.0
FirebaseMLNLLanguageID | 0.17.0
FirebaseMLNLSmartReply | 0.17.0
FirebaseMLNLTranslate | 0.17.0
FirebaseMLNaturalLanguage | 0.17.0
FirebaseMLVision | 0.19.0
FirebaseMLVisionAutoML | 0.19.0
FirebaseMLVisionBarcodeModel | 0.19.0
FirebaseMLVisionFaceModel | 0.19.0
FirebaseMLVisionLabelModel | 0.19.0
FirebaseMLVisionObjectDetection | 0.19.0
FirebaseMLVisionTextModel | 0.19.0
FirebaseMessaging | 4.3.0
FirebasePerformance | 3.1.10
FirebaseRemoteConfig | 4.4.9
FirebaseStorage | 3.6.0
GTMAppAuth | 1.0.0
GTMSessionFetcher | 1.3.1
Google-Mobile-Ads-SDK | 7.56.0
GoogleAPIClientForREST | 1.3.11
GoogleAppMeasurement | 6.3.1
GoogleDataTransport | 5.0.0
GoogleDataTransportCCTSupport | 2.0.0
GoogleSignIn | 5.0.2
GoogleToolboxForMac | 2.2.2
GoogleUtilities | 6.5.1
PromisesObjC | 1.2.8
Protobuf | 3.11.4
TensorFlowLiteC | 1.14.0
TensorFlowLiteObjC | 1.14.0
abseil | 0.20190808
gRPC-C++ | 0.0.9
gRPC-Core | 1.21.0
leveldb-library | 1.22
nanopb | 0.3.9011