- Requires Xcode 15.2 or above
- Analytics requires clients to add
-ObjC
linker option. - See Package.swift for supported platform versions.
- Product availability varies by platform. See the chart on this page for information on product availability for each platform.
If you've previously used CocoaPods, remove them from the project with
pod deintegrate
.
Add a package by selecting File
→ Add Packages…
in Xcode’s menu bar.
Search for the Firebase Apple SDK using the repo's URL:
https://github.com/firebase/firebase-ios-sdk.git
Next, set the Dependency Rule to be Up to Next Major Version
.
Then, select Add Package.
Choose the Firebase products that you want installed in your app.
If you've installed FirebaseAnalytics, add the -ObjC
option to Other Linker Flags
in the Build Settings
tab.
If you're using FirebaseCrashlytics, you can use
${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run
as the run script that allows Xcode to upload your project's dSYM files.
Another option is to use the
upload-symbols
script. Place it in the directory where your .xcodeproj
file lives,
eg. scripts/upload-symbols
, and make sure that the file is executable:
chmod +x scripts/upload-symbols
.
This script can be used to manually upload dSYM files (for usage notes and
additional instructions, run with the --help
parameter).
If you're getting error: Could not get GOOGLE_APP_ID in Google Services file from build environment
on the Crashlytics run script step and you're using Xcode 15 and specifically User Script Sandboxing = YES
, make sure to include all input files referenced here in the Crashlytics run script.
To integrate via a Package.swift
manifest instead of Xcode, you can add
Firebase to the dependencies array of your package:
dependencies: [
.package(
name: "Firebase",
url: "https://github.com/firebase/firebase-ios-sdk.git",
.upToNextMajor(from: "10.4.0")
),
// Any other dependencies you have...
],
Then, in any target that depends on a Firebase product, add it to the dependencies
array of that target:
.target(
name: "MyTargetName",
dependencies: [
// The product(s) you want (e.g. FirebaseAuth).
.product(name: "FirebaseAuth", package: "Firebase"),
]
),
Please provide any feedback via a GitHub Issue.
See current open Swift Package Manager issues here.