[KMP] 02 - 如何引用 Firebase SDK
KMP SDK 種類
在 KMP 中專案要引入 SDK,有兩種方式
- 官方針對 Kotlin Multiplatform 有出對應的 SDK
- SDK 只有針對各個平台出對應的 SDK
本文要介紹的是第二種,例如 Firebase 只有針對 Android 與 iOS 出對應的原生 SDK,這種方式需要在 Android 與 iOS 專案中分別引入 SDK。
如何引用 SDK
Android Platform
在 Android 上相對簡單,因為與原本開發 Android 的流程極為類似。
SDK Version
首先我們要先決定要安裝哪一個版本的 Firebase SDK,我們可以到 Firebase 的官網來查;文章內有說到,如果要安裝 Firebase SDK,需要先安裝 Google Gradle Plugin,所以最後一共會有兩個 SDK 版本:
- Google Gradle Plugin - 用來協助存取
google-services.json - Firebase Bom SDK - 用來管理 Firebase SDK 的版本
沒有特殊需求就選擇當下的最新版本就好。
Gradle Version Catalog
新版本的 Gradle 建議在一份 toml 的檔案內管理所有 SDK 的版本,這樣可以避免版本不一致的問題。 找到 KMP 專案下的 gradle/libs.versions.toml,新增 Firebase SDK 的版本。
[versions]
...
google-services = "4.4.4"
firebase-bom = "34.7.0"
[libraries]
...
# Firebase SDK,自行添加需要使用到的 lib
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebase-bom" }
firebase-analytics = { module = "com.google.firebase:firebase-analytics" }
firebase-remote-config = { module = "com.google.firebase:firebase-config" }
[plugins]
...
google-services = { id = "com.google.gms.google-services", version.ref = "google-services" }
# 如果覺得到時候要加入的 lib 有點多,可以先在這邊綁定為 bundle 日後擴充只要改這邊就好
[bundles]
...
firebase-bundle = [
"firebase-analytics",
"firebase-remote-config"
]定義好版本後,記得先按下一次 Gradle Sync Changes,這樣 Gradle 才會重新解析版本。 
Gradle 設定
開啟專案底下的 build.gradle.kts,在 plugins 區塊下加入 Google Gradle Plugin。
plugins {
...
alias(libs.plugins.google.services) apply false
}開啟 composeApp module 的 build.gradle.kts 在 plugins 區塊下加入 Google Gradle Plugin。
plugins {
...
alias(libs.plugins.google.services)
}開啟 shared module 的 build.gradle.kts 在 sourceSets 區塊下,新增 androidMain
sourceSets {
...
androidMain.dependencies {
implementation(project.dependencies.platform(libs.firebase.bom))
implementation(libs.bundles.firebase.bundle)
}
}iOS Platform
開啟 Xcode,打開專案底下這個路徑的專案檔:iosApp/iosApp.xcodeproj,在專案按下右鍵選擇 Add Package Dependencies。 
透過輸入 firebase github 的位置,這樣可以快速找到 firebase sdk,然後直接按下 Add Package。
NOTE

Xcode 會 Checkout SDK 並且驗證 
完全 Checkout 後,會詢問你需要加入的 product 有哪些,要加入的就在 Add to Target 欄位選擇 ios App,完成選擇後就按 Add Package。 
全部加入後,可以先關閉 Xcode,回到 IntelliJ IDEA,應該會發現有錯誤。
Swift Package dependencies resolution failed with exit code 74:
2025-12-16 14:41:58.260 xcodebuild[32582:1401171] Writing error result bundle to /var/folders/3_/g4pw0jys2dd8w_h7n6bqbsxc0000gq/T/ResultBundle_2025-16-12_14-41-0058.xcresult
xcodebuild: error: Could not resolve package dependencies:
Couldn’t get revision ‘12.7.0^{commit}’:只要透過 IDE 右上的 Sync Gradle With Swift Package Manager 就可以解決,完成後左邊的 iosApp 底下就能看到 Swift Package Manager 安裝的 SDK。

驗證
相較於 Android,iOS 在 SDK 安裝上為了確保真的有安裝完成,我們來測試 Firebase 是否能正確的初始化成功。 我預設大家已經完成 Firebase 在 iOS 平台上的基本設定。
我們直接在 JetBrains IntelliJ IDEA 中打開 iosApp 的 iOSApp.swift,沒錯我們可以直接在這寫 Swift。 調整 Code 為以下:
import SwiftUI
import FirebaseCore
@main
struct iOSApp: App {
init() {
FirebaseApp.configure()
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}完成後,我們直接選擇 iosAPP 讓他編譯,不管有沒有錯誤都代表 Firebase SDK 已經安裝完成。 
像我的出現以下錯誤:
*** Terminating app due to uncaught exception 'com.firebase.core', reason: '`FirebaseApp.configure()` could not find a valid GoogleService-Info.plist in your project. Please download one from https://console.firebase.google.com/.'這樣代表 Firebase SDK 已經安裝完成,只是還沒有設定 GoogleService-Info.plist。