開始使用 App Check 搭配 iOS 裝置使用 Google 登入功能

本頁面說明如何在 iOS 應用程式中啟用 App Check。啟用應用程式時 檢查可讓您確保只有應用程式才能存取 Google 的 OAuth 2.0 管理端點請參閱這項功能的總覽

App Check 會使用 App Attest 驗證 OAuth 2.0 以及來自您的正版應用程式 App Check 不會使用 App Attest 分析詐欺風險

事前準備

  1. 確認裝置有 Xcode 12.5 以上版本。

  2. 使用 Google 登入資料庫

1. 設定專案

  1. 您必須擁有 Firebase 專案,才能搭配 App Check 。

    • 如果您的應用程式已經在使用 Firebase,請使用同一個專案。

    • 如果您的應用程式使用 Google 登入功能,而非 Firebase,您已經擁有 存取 Google Cloud 專案將 Firebase 新增至 Google Cloud 專案,方法如下: 當您在 Compute Engine 中建立新專案時 Firebase 控制台

    另請參閱: Firebase 專案與 Google Cloud 之間的關係

  2. 如果您尚未將 iOS 應用程式新增至 Firebase 專案,請先完成這項操作 查看 Firebase 控制台的「專案設定」頁面。

  3. 在以下位置註冊應用程式,以便搭配 App Attest 供應商使用 App Check: Firebase 控制台的「App Check」區段。

  4. 請確認專案的所有 OAuth 用戶端都已連結至應用程式。

    若您已取消連結用戶端,您會在 Google Identity 中看到訊息 「App Check」適用於 iOSApp Check,並顯示 n 個未連結的 OAuth 用戶端需要額外進行設定。

    此外,如果您在設定 OAuth 用戶端後刪除了某些 OAuth 用戶端 且 App Check 中會顯示以下訊息:「你有 n 的設定」 沒有相符 OAuth 用戶端的覆寫值。您可以安全清理儲存空間,方法是: 刪除這些覆寫值

    您可以將已取消連結的用戶端連結至 Firebase 控制台的「OAuth 用戶端」頁面。

2. 將 Beta 版 Google 登入程式庫新增至應用程式

  1. 在 Xcode 專案中,將 Google 登入依附元件設為「版本」 7.1.0-fac-beta-1.1.0:

    策略合作夥伴經理

    googlesignin-ios 的依附元件規則設為確切版本: 7.1.0-fac-beta-1.1.0

    CocoaPods

    更新您的 Podfile

    source 'https://github.com/CocoaPods/Specs.git'
    source 'https://github.com/firebase/SpecsDev.git'
    
    target 'YourAppName' do
      use_frameworks!
    
      pod 'GoogleSignIn',
          :git => 'https://github.com/google/GoogleSignIn-iOS.git',
          :tag => '7.1.0-fac-beta-1.1.0'
      pod 'GoogleSignInSwiftSupport'  # If you use SwiftUI.
    end
    

    接著,執行 pod install 並開啟建立的 .xcworkspace 檔案。

  2. 在 Xcode 中,將 App Attest 功能新增至應用程式。

  3. 在專案的 .entitlements 檔案中,將 App Attest 環境設為 production

3. 初始化 App Check

在應用程式委派的 didFinishLaunchingWithOptions 方法中,呼叫 GIDSignIn.sharedInstance.configure(completion:)。您應該呼叫這個方法 及早在應用程式的生命週期中著手,以盡可能縮短使用者感知延遲時間。

import SwiftUI
import GoogleSignIn

class AppDelegate: NSObject, UIApplicationDelegate {
  func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
  ) -> Bool {
    #if targetEnvironment(simulator)
    // Configure for debugging.
    // See: https://developers.google.com/identity/sign-in/ios/appcheck/debug-provider
    #else
    GIDSignIn.sharedInstance.configure { error in
      if let error {
        print("Error configuring `GIDSignIn` for Firebase App Check: \(error)")
      }
    }
    #endif

    return true
  }
}

@main
struct YourAppNameApp: App {
  @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

  // ...
}

後續步驟

在應用程式中安裝 App Check 程式庫後,即可開始發布 為使用者提供了最新的應用程式

更新後的用戶端應用程式會開始傳送 App Check 權杖和 要求會向 Google 的驗證端點發出要求,但端點不會 權杖必須有效,直到您在 App Check 中啟用強制執行功能為止 專區。

監控指標

不過,啟用強制執行功能之前,請先確認這項操作不會 幹擾現有的合法使用者另一方面,如果您發現 如果您對應用程式資源都很可疑,不妨啟用強制執行功能

為做出決定 Google 登入的 App Check 指標

啟用強制執行 App Check

瞭解 App Check 對使用者的影響後,您就能做好準備 如要繼續,您可以啟用 App Check 強制執行功能

在偵錯環境中使用 App Check

在您將應用程式註冊 App Check 之後,您希望執行應用程式 App Check 通常不會被歸類為有效環境 模擬工具,可在開發期間或持續整合 (CI) 環境中 您可以建立使用 App Check 偵錯供應商的應用程式偵錯版本 而不是 App Attest

請參閱「搭配偵錯供應商使用 App Check」一文。