使用入门:通过 Apple 的基础模型框架访问 Gemini API


在 WWDC 2026 上,Apple 向第三方 模型适配器开放了 Foundation Models 框架,这意味着您可以使用与访问设备端模型相同的 API ,通过 Foundation Models 框架访问云端托管模型(例如 Gemini

在应用中,您可以交换模型实例,以将请求路由到设备端或云端推理,从而满足您的使用场景:

  • 设备端模型可提供最大限度的隐私保护、零成本和离线支持。
  • 云端托管 Gemini 模型可提供大型上下文窗口、高级 功能和更强的推理能力。

您可以通过使用 Firebase SDK for Apple 平台(具体来说是 Firebase AI Logic 库),通过 Apple's Foundation Models 框架访问云端托管 Gemini 模型 。本指南将向您展示如何开始使用。

为了保护对 Gemini 模型的访问,本指南还将向您展示如何 设置 Firebase App Check,即使在开发期间,此设置也 至关重要

前提条件

  • 安装最新的 Xcode 27 Beta 版

  • Apple 平台模拟器或实体设备,两者都运行相应的 Beta 版操作系统版本(例如 iOS 27 Beta 版)。

  • 使用 SwiftUI 界面的 Apple 平台应用的新 Xcode 项目。

支持的 Gemini 模型

与 Apple 的 Foundation Models 框架的集成支持以下 Gemini 模型。

  • 通用模型

    • gemini-3.1-pro-preview
    • gemini-3.5-flash
    • gemini-3.1-flash-lite
  • 图片生成模型

    • gemini-3-pro-image(又名“Nano Banana Pro”)
    • gemini-3.1-flash-image(又名“Nano Banana 2”)

Gemini Live API 模型和 Imagen 模型 不受 支持。 请注意,从技术上讲,Gemini 2.5 模型是受支持的,但不 建议用于新项目,并且需要特殊配置,这些配置不在 本指南的涵盖范围内。

第 1 步:创建 Firebase 项目

我们建议您先创建一个新的 Firebase 项目,以探索此集成。

  1. 登录 Firebase 控制台

  2. 点击创建新的 Firebase 项目

  3. 按照屏幕上的说明操作。您无需 启用 Google Analytics。

第 2 步:将应用连接到 Firebase

如需将应用连接到 Firebase,您必须向 Firebase 项目注册该应用,并将配置文件添加到代码库。

  1. 项目概览 页面的中心位置,点击 iOS+ 图标,启动设置工作流。

  2. 注册您的应用:

    1. 输入应用的软件包 ID 。请确保它与您在 Xcode 中构建的项目的软件包 ID 一致。

    2. 点击注册应用

  3. 添加 Firebase 配置文件。 此文件包含 Firebase SDK 连接到 Firebase 项目的设置。

    1. 点击下载 GoogleService-Info.plist 以获取配置文件 。

    2. GoogleService-Info.plist 移到 Xcode 项目的根目录中,并将其添加到所有目标。

    3. Firebase 控制台中,点击 下一步

  4. 控制台中的工作流提供了将 Firebase SDK 添加到应用的通用说明 ,因此请跳到本指南的下一步,以获取 Firebase AI Logic的具体说明。

第 3 步:在应用中添加 Firebase 库并初始化 Firebase

  1. 使用 Swift Package Manager 添加所需的 Firebase 库:

    1. 在 Xcode 中打开您的应用项目,依次选择文件 > 添加软件包

    2. 输入 Firebase Apple SDK 代码库网址:

      https://github.com/firebase/firebase-ios-sdk
      
    3. 选择依赖项规则作为分支 ,然后输入 wwdc26-preview

    4. 点击添加软件包 。Xcode 将解析并下载依赖项。

    5. 看到提示时,将 FirebaseAILogicFirebaseAppCheck 库添加到应用目标。

  2. 在应用启动时初始化 Firebase,方法是将以下代码添加到应用的主入口点:

    import SwiftUI
    import FirebaseCore
    
    @main
    struct YourApp: App {
      init() {
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    

第 4 步:启用 Firebase 服务并确保其安全

现在,您的应用已配置为使用 Firebase,您需要启用 Firebase AI Logic服务,并使用 Firebase App Check保护对其关联 API 的访问。

第 4a 步:在 Firebase 项目中设置 Firebase AI Logic

  1. Firebase 控制台中,依次前往 AI 服务 > AI Logic

  2. 点击开始使用 以启动设置工作流。

  3. 我们建议您选择 Gemini Developer API 提供方,以便快速免费开始使用。

第 4b 步:在 Firebase 项目中设置 Firebase App Check

强制执行后,Firebase App Check 仅允许来自 实际应用和未被篡改的设备的传入请求。Firebase App Check 支持 许多证明提供方,包括 Apple 的 App Attest

以下步骤适用于 App Check 的基准默认设置。详细了解 App Check 的App Check 其他配置选项(例如调整令牌的 TTL 和启用限用令牌)。

以下是在 Firebase 控制台中注册 App Attest 提供方的步骤:

  1. Firebase 控制台中,依次前往 安全性 > App Check

  2. 点击开始使用

  3. 应用 标签页中, 注册您的应用以将 App CheckApp Attest 提供方搭配使用。

  4. API 标签页中, 选择 Firebase AI Logic ,然后点击 强制执行

第 4c 步:为本地开发配置 App Check 调试提供方

对于本地开发,请配置 App Check 调试提供方。设置此提供方会在开发期间绕过证明,以便您验证应用的逻辑,而无需修改您在上面设置的生产环境安全配置。

  1. 在 Xcode 项目中,在配置 Firebase 之前,导入 FirebaseAppCheck 并使用调试提供方工厂初始化 App Check __。

    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct YourApp: App {
      init() {
        let providerFactory = AppCheckDebugProviderFactory()
        AppCheck.setAppCheckProviderFactory(providerFactory)
        FirebaseApp.configure()
      }
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
    
  2. 获取调试令牌:

    1. 在模拟器中或在测试设备上启动应用。

    2. 打开 Xcode 控制台,查找 App Check 调试令牌。 该令牌是在应用启动时生成的,因此应该是您看到的前几个日志之一。类似于以下内容:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. 复制令牌(例如 123a4567-b89c-12d3-e456-789012345678)。

  3. Firebase 控制台中向 App Check 提供调试令牌:

    1. Firebase 控制台中,依次前往 安全性 > App Check > 应用

    2. 找到您的应用,点击溢出菜单 (),然后选择 管理调试令牌

    3. 点击添加调试令牌,输入名称(例如My Simulator), 粘贴令牌,然后点击保存

如需详细了解调试提供方(包括如何获取新的调试令牌), 请参阅官方App Check文档

第 5 步:在应用中初始化 AI Logic 服务

点击您的 Gemini API 提供方,以查看此页面上特定于提供商的内容 和代码。

配置 Firebase 和 App Check 后,您现在可以在应用中初始化 Firebase AI Logic 服务。

import FoundationModels
import FirebaseCore
import FirebaseAILogic

// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.5-flash")

第 6 步:向 Gemini 模型发送请求

在应用中设置、保护和初始化 Firebase AI Logic 后, 您就可以向 Gemini 模型发送请求了。

以下示例展示了最基本的请求类型,即从纯文本提示生成文本:

import FoundationModels
import FirebaseCore
import FirebaseAILogic

// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.5-flash")


// Create a session by injecting the model into Apple's `LanguageModelSession`.
let session = LanguageModelSession(model: model)

// Generate a text response to a prompt.
let response = try await session.respond(to: "Write a story about a magic backpack.")
print(response.content)

Gemini 模型还支持其他类型的请求,例如 分析图片和 PDF生成结构化 JSON 输出 ,以及 生成图片 (使用“Nano Banana”模型)。如需查看这些类型的请求的示例,请参阅文档或示例应用。

流式传输响应

您可以不等待模型生成整个结果,而是使用流式传输 来处理部分结果,从而实现更快的互动。如需流式传输响应,请使用 streamResponse(to:) 而不是 respond(to:)

import FoundationModels
import FirebaseCore
import FirebaseAILogic

// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(name: "gemini-3.5-flash")


// Create a session by injecting the model into Apple's `LanguageModelSession`.
let session = LanguageModelSession(model: model)

// Generate a streamed text response to a prompt.
// To stream the response, use `streamResponse(to:)` instead of `respond(to:)`
let stream = session.streamResponse(to: "Write a story about a magic backpack.")
var response = ""
for try await snapshot in stream {
  // The snapshot contains *all* content generated so far.
  response = snapshot.content
}

后续步骤


提供反馈 ,说明通过 Apple 的 Foundation Models 框架访问 Gemini API 的体验