开发对接Firestore的内部NPM,SPM集成Firebase SDK后无法使用
解决SPM引入Firebase SDK后无法调用的问题
你的问题出在两个核心配置错误:主Target未关联具体Firebase子模块,以及测试Target的依赖指向错误,按以下步骤修正即可:
1. 给主Target绑定Firebase模块
仅在Package层面添加Firebase SDK依赖是不够的,需要在具体Target的dependencies里明确指定要用到的Firebase子模块(比如你需要的Firestore)。
2. 修正测试Target的依赖
测试Target应该依赖你的主模块FCM,而不是自身FCMTest,否则无法调用主模块的代码。
修改后的完整Package.swift代码
import PackageDescription let package = Package( name: "FCM", platforms: [.iOS(.v16)], products: [ .library( name: "FCM", targets: ["FCM"]), ], dependencies: [ .package(url: "https://github.com/firebase/firebase-ios-sdk", .upToNextMinor(from: "9.6.0")), ], targets: [ .target( name: "FCM", dependencies: [ // 绑定Firestore子模块 .product(name: "FirebaseFirestore", package: "firebase-ios-sdk") ]), .testTarget( name: "FCMTest", // 修正测试依赖为你的主模块 dependencies: ["FCM"]), ] )
验证使用
修改完成后,在FCM模块的代码里就可以正常导入并使用Firestore了:
import FirebaseFirestore // 示例调用 let db = Firestore.firestore()
内容的提问来源于stack exchange,提问作者Roman Gorbatko
相关产品推荐
相关产品推荐

