Firebase iOS SDK 的 Carthage 集成指南

Firebase iOS SDK 的 Carthage 集成指南

firebase-ios-sdk 适用于苹果应用开发的Firebase SDK。 firebase-ios-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. 集成框架到项目

  1. 打开 Carthage/Build 目录
  2. 将需要的 .xcframework 文件拖拽到 Xcode 项目中
  3. 确保这些框架被添加到正确的构建目标中

注意事项

  • 如果不需要广告标识符支持,不要添加 GoogleAppMeasurementIdentitySupport.xcframework
  • 如果不使用 Firebase 的 Swift API,可以忽略名称中包含 "Swift" 的 xcframeworks

4. 项目配置

  1. 在 Build Settings 中添加链接器标志:$(OTHER_LDFLAGS) -ObjC
  2. 确保项目中包含正确的 GoogleService-Info.plist 配置文件
  3. 从 "Link Binary With Libraries" 构建阶段移除 Firebase.framework

5. 资源文件处理

某些 Firebase 组件包含资源文件(如 .bundle),需要:

  1. 将这些资源文件复制到项目中
  2. 添加到 "Copy Bundle Resources" 构建阶段

特殊组件配置

Crashlytics 配置

为了自动上传符号文件以便崩溃日志能够正确符号化:

  1. 下载 upload-symbolsrun 脚本
  2. 将脚本放在项目根目录的 scripts 文件夹中
  3. 确保脚本有可执行权限:chmod +x scripts/*
  4. 在 Xcode 中添加 Run Script 构建阶段,内容为:"${PROJECT_DIR}/scripts/run"
  5. 添加以下输入文件:
    • ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${TARGET_NAME}
    • ${BUILT_PRODUCTS_DIR}/${INFOPLIST_PATH}

版本管理

所有 Firebase 组件共享相同的版本号。混合使用不同版本的组件可能会导致链接错误。建议始终使用相同版本的 Firebase 组件。

技术细节

Firebase 的 Carthage 分发包含静态库框架。虽然可以正常链接到应用程序中,但不建议在动态框架中依赖这些静态框架。

常见问题解决

  1. Swift 符号链接错误:尝试在项目中添加一个空的 .swift 文件
  2. 缺少依赖库:根据使用的 Firebase 组件,可能需要额外添加系统库,如:
    • libc++.tbd
    • sqlite3.tbd
    • StoreKit.framework

注意事项

目前 Firebase 对 Carthage 的支持仍处于实验阶段,可能会发生变化。建议关注官方更新,并在生产环境中谨慎使用。

通过以上步骤,开发者可以成功地将 Firebase SDK 集成到使用 Carthage 管理的 iOS 项目中。这种集成方式虽然比 CocoaPods 稍显复杂,但为偏好 Carthage 的开发者提供了更多选择。

firebase-ios-sdk 适用于苹果应用开发的Firebase SDK。 firebase-ios-sdk 项目地址: https://gitcode.com/gh_mirrors/fi/firebase-ios-sdk

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黎纯俪Forest

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值