Skip to content

Latest commit

 

History

History
102 lines (69 loc) · 2.96 KB

SwiftPackageManager.md

File metadata and controls

102 lines (69 loc) · 2.96 KB

Swift Package Manager for Firebase

Requirements

  • Requires Xcode 14.1 or above
  • Analytics requires clients to add -ObjC linker option.
  • See Package.swift for supported platform versions.

Limitations

  • Product availability varies by platform. See the chart on this page for information on product availabilty for each platform.

Installation

If you've previously used CocoaPods, remove them from the project with pod deintegrate.

Installing from Xcode

Add a package by selecting FileAdd 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).


Alternatively, add Firebase to a Package.swift manifest

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"),
  ]
),

Questions and Issues

Please provide any feedback via a GitHub Issue.

See current open Swift Package Manager issues here.