Firebase iOS SDK 的 Carthage 集成指南
firebase-ios-sdk 适用于苹果应用开发的Firebase SDK。 项目地址: https://gitcode.com/gh_mirrors/fi/firebase-ios-sdk
前言
Firebase 是 Google 提供的一套移动开发平台,为 iOS 应用开发者提供了丰富的后端服务和工具。虽然 Firebase 官方主要支持 CocoaPods 和 Swift Package Manager 两种依赖管理方式,但社区中也有不少开发者希望通过 Carthage 来集成 Firebase SDK。
本文将详细介绍如何通过 Carthage 来集成 Firebase iOS SDK,帮助开发者理解这一实验性支持的实现方式和使用注意事项。
Carthage 简介
Carthage 是一个轻量级的 iOS/macOS 依赖管理工具,与 CocoaPods 不同,它不会修改项目文件或工作区,而是简单地下载并构建依赖项,让开发者自行集成到项目中。
安装 Carthage
推荐使用 Homebrew 安装 Carthage:
brew update
brew install carthage
安装完成后,可以通过 carthage version
命令验证安装是否成功。
Firebase 的 Carthage 集成步骤
1. 创建 Cartfile
在项目根目录下创建名为 Cartfile
的文件,添加需要集成的 Firebase 组件。必须包含 FirebaseAnalyticsBinary
,这是 Firebase 的核心分析组件。
示例 Cartfile 内容:
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAuthBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json"
2. 更新依赖
执行以下命令下载并构建依赖:
carthage update --platform iOS
3. 集成框架到项目
- 打开
Carthage/Build
目录 - 将需要的
.xcframework
文件拖拽到 Xcode 项目中 - 确保这些框架被添加到正确的构建目标中
注意事项:
- 如果不需要广告标识符支持,不要添加
GoogleAppMeasurementIdentitySupport.xcframework
- 如果不使用 Firebase 的 Swift API,可以忽略名称中包含 "Swift" 的 xcframeworks
4. 项目配置
- 在 Build Settings 中添加链接器标志:
$(OTHER_LDFLAGS) -ObjC
- 确保项目中包含正确的
GoogleService-Info.plist
配置文件 - 从 "Link Binary With Libraries" 构建阶段移除
Firebase.framework
5. 资源文件处理
某些 Firebase 组件包含资源文件(如 .bundle
),需要:
- 将这些资源文件复制到项目中
- 添加到 "Copy Bundle Resources" 构建阶段
特殊组件配置
Crashlytics 配置
为了自动上传符号文件以便崩溃日志能够正确符号化:
- 下载
upload-symbols
和run
脚本 - 将脚本放在项目根目录的
scripts
文件夹中 - 确保脚本有可执行权限:
chmod +x scripts/*
- 在 Xcode 中添加 Run Script 构建阶段,内容为:
"${PROJECT_DIR}/scripts/run"
- 添加以下输入文件:
${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}
版本管理
所有 Firebase 组件共享相同的版本号。混合使用不同版本的组件可能会导致链接错误。建议始终使用相同版本的 Firebase 组件。
技术细节
Firebase 的 Carthage 分发包含静态库框架。虽然可以正常链接到应用程序中,但不建议在动态框架中依赖这些静态框架。
常见问题解决
- Swift 符号链接错误:尝试在项目中添加一个空的
.swift
文件 - 缺少依赖库:根据使用的 Firebase 组件,可能需要额外添加系统库,如:
- libc++.tbd
- sqlite3.tbd
- StoreKit.framework
注意事项
目前 Firebase 对 Carthage 的支持仍处于实验阶段,可能会发生变化。建议关注官方更新,并在生产环境中谨慎使用。
通过以上步骤,开发者可以成功地将 Firebase SDK 集成到使用 Carthage 管理的 iOS 项目中。这种集成方式虽然比 CocoaPods 稍显复杂,但为偏好 Carthage 的开发者提供了更多选择。
firebase-ios-sdk 适用于苹果应用开发的Firebase SDK。 项目地址: https://gitcode.com/gh_mirrors/fi/firebase-ios-sdk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考