You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Swift Package中仅引入FirebaseMessaging而非全部firebase-ios-sdk依赖

如何在Swift Package中仅保留FirebaseMessaging依赖,排除不必要的Firebase子包

首先得明确:FirebaseMessaging本身依赖FirebaseCore这类基础组件,这些是运行必需的,没法完全移除所有相关包,但我们可以确保不会引入FirebaseAuth、FirebaseFirestore这类你不需要的非必要子包。

你只需要修改Package.swift里的依赖声明,给package添加products参数,明确指定只拉取FirebaseMessaging产品,这样Swift Package Manager就只会处理这个产品及其必要的依赖,不会把整个firebase-ios-sdk的所有子包都带进来。

修改后的完整代码如下:

// swift-tools-version: 5.7
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "PushNotificationDemoPackage",
    products: [
        // Products define the executables and libraries a package produces, and make them visible to other packages.
        .library(
            name: "PushNotificationDemoPackage",
            targets: ["PushNotificationDemoPackage"]),
    ],
    dependencies: [
        // 仅指定FirebaseMessaging产品,避免引入其他非必要子包
        .package(url: "https://github.com/firebase/firebase-ios-sdk.git", from: "8.0.0", products: [.product(name: "FirebaseMessaging")]),
    ],
    targets: [
        .target(
            name: "PushNotificationDemoPackage",
            dependencies: [.product(name: "FirebaseMessaging", package: "firebase-ios-sdk")]),
        .testTarget(
            name: "PushNotificationDemoPackageTests",
            dependencies: ["PushNotificationDemoPackage"]),
    ]
)

另外可以清理一下本地缓存确保依赖生效:

  • 执行rm -rf .build删除本地构建缓存
  • 执行swift package resolve重新解析依赖

内容的提问来源于stack exchange,提问作者Dipon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 06:30:11