如何在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
相关产品推荐
相关产品推荐

