A small mirror for https://github.com/firebase/firebase-ios-sdk, to add support for using their binary dependencies (xcframeworks) with swift package manager.
This repo contains a Package.swift file, which uses a binaryTarget
for all Firebase libraries (xcframework files are hosted in github releases).
Firebase currently supports SPM integration, see the official SDK integration instructions. This repo is an alternative for integrating with their pre-built xcframeworks for faster build times. See in depth discussion for official SPM support for xcframeworks here.
Add the package:
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "MyLibrary",
platforms: [.iOS(.v11)],
products: [
.library(name: "MyLibrary", targets: ["MyLibraryTarget"])
],
dependencies: [
.package(
name: "Firebase",
url: "https://github.com/akaffenberger/firebase-ios-sdk-xcframeworks.git",
.exact("8.10.0")
),
],
targets: [
.target(
name: "MyLibraryTarget",
dependencies: [
.product(name: "Google-Mobile-Ads-SDK", package: "Firebase"),
.product(name: "FirebaseAnalytics", package: "Firebase")
]
)
]
)
Add -ObjC
to Build Settings -> Other Linker Flags
Some Firebase frameworks require resource bundles. To include those, there are two options:
Use the provided script to automatically include all Firebase resources. Copy the following into a Run Script Phase:
sh "${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sdk-xcframeworks/.scripts/resources.sh"
Or, manually drag and drop specific resource bundles into your target's Copy Bundle Resources Phase:
The Package.swift
and Sources
files are automatically generated via a script, which is set to run in a scheduled cron job via Github Actions.
The script performs the following actions:
$ brew install gh
$ cd .scripts && sh package.sh debug skip-release
link |
Stars: 82 |
Last commit: 3 weeks ago |
Full Changelog: https://github.com/akaffenberger/firebase-ios-sdk-xcframeworks/compare/10.2.0...10.3.0
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics