شروع به استفاده از App Check for Google Sign-in در iOS کنید

این صفحه به شما نشان می‌دهد که چگونه App Check را در یک برنامه iOS فعال کنید. وقتی App Check را فعال می‌کنید، اطمینان حاصل می‌کنید که فقط برنامه شما می‌تواند از طرف پروژه شما به نقاط انتهایی OAuth 2.0 گوگل دسترسی داشته باشد. نمای کلی این ویژگی را ببینید.

App Check از App Attest برای تأیید اینکه درخواست‌های OAuth 2.0 از برنامه معتبر شما می‌آیند، استفاده می‌کند. App Check از App Attest برای تحلیل ریسک کلاهبرداری استفاده نمی‌کند.

قبل از اینکه شروع کنی

  1. مطمئن شوید که Xcode نسخه ۱۲.۵ یا جدیدتر را دارید.

  2. با استفاده از کتابخانه Google Sign-in، قابلیت ورود به سیستم گوگل (Google Sign-in) را در برنامه iOS خود ادغام کنید.

۱. پروژه خود را تنظیم کنید

بررسی برنامه را می‌توان در کنسول API گوگل یا کنسول Firebase فعال کرد. لازم نیست آن را در هر دو جا فعال کنید، فقط یکی کافی است.

کنسول API گوگل

برای فعال‌سازی موفقیت‌آمیز App Check برای کلاینت iOS شما، باید شرایط زیر رعایت شود:
  • شما باید یک شناسه تیم برای کلاینت iOS خود مشخص کنید.
  • شما نباید از کاراکترهای عمومی (wildcard) در شناسه بسته خود استفاده کنید زیرا می‌تواند به بیش از یک برنامه اشاره کند. این بدان معناست که شناسه بسته نباید شامل نماد ستاره (*) باشد.
برای فعال کردن App Check، دکمه‌ی «محافظت از کلاینت OAuth خود در برابر سوءاستفاده با Firebase App Check» را در نمای ویرایش کلاینت iOS خود فعال کنید.

پس از فعال کردن App Check، معیارهای مربوط به درخواست‌های OAuth از کلاینت خود را در نمای ویرایش کلاینت OAuth مشاهده خواهید کرد. درخواست‌های ارسالی از منابع تأیید نشده تا زمانی که App Check را اجرا نکنید، مسدود نخواهند شد. اطلاعات موجود در صفحه نظارت بر معیارها می‌تواند به شما در تعیین زمان شروع اجرا کمک کند.

ممکن است هنگام فعال کردن App Check برای برنامه iOS خود، خطاهایی مربوط به ویژگی App Check مشاهده کنید. برای رفع این خطاها، موارد زیر را امتحان کنید:

  • تأیید کنید که شناسه بسته و شناسه تیم که مشخص کرده‌اید معتبر هستند.
  • تأیید کنید که از wildcard برای شناسه بسته استفاده نمی‌کنید.

کنسول فایربیس

  1. برای استفاده از App Check with Google Sign-in باید یک پروژه Firebase داشته باشید.

    • اگر برنامه شما از قبل از Firebase استفاده می‌کند، از همان پروژه استفاده کنید.

    • اگر برنامه شما از ورود به سیستم گوگل استفاده می‌کند، اما از فایربیس استفاده نمی‌کند، شما از قبل یک پروژه گوگل کلود دارید. هنگام ایجاد یک پروژه جدید در کنسول فایربیس، فایربیس را با انتخاب آن به پروژه گوگل کلود خود اضافه کنید.

      همچنین ببینید: رابطه بین پروژه‌های فایربیس و گوگل کلود

  2. اگر هنوز این کار را انجام نداده‌اید، برنامه‌های iOS خود را با استفاده از صفحه تنظیمات پروژه کنسول Firebase به پروژه Firebase خود اضافه کنید.

  3. برنامه‌های خود را برای استفاده از App Check با ارائه‌دهنده App Attest در بخش App Check کنسول Firebase ثبت کنید.

  4. مطمئن شوید که همه کلاینت‌های OAuth پروژه شما به یک برنامه متصل هستند.

    اگر کلاینت‌هایتان لینک نشده باشند، در بخش Google Identity for iOS در صفحه App Check پیامی با این مضمون خواهید دید: «شما n کلاینت OAuth لینک نشده دارید که نیاز به تنظیمات اضافی دارند.»

    علاوه بر این، اگر پس از تنظیم برخی از کلاینت‌های OAuth در App Check، آنها را حذف کرده باشید، پیامی با این مضمون خواهید دید: «شما n override بدون هیچ کلاینت OAuth منطبقی دارید». می‌توانید با حذف این overrideها، با خیال راحت آنها را پاک کنید.

    شما می‌توانید کلاینت‌های غیرمرتبط را به یک برنامه موجود یا جدید در صفحه کلاینت‌های OAuth کنسول Firebase لینک کنید.

۲. کتابخانه ورود به سیستم گوگل را به برنامه خود اضافه کنید

  1. در پروژه Xcode خود، وابستگی Google Sign-in را روی نسخه 8.0.0 یا بالاتر تنظیم کنید:

    اس پی ام

    قانون وابستگی googlesignin-ios را روی نسخه 8.0.0 یا بالاتر تنظیم کنید.

    کوکوپادز

    Podfile خود را به‌روزرسانی کنید:

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

    سپس، pod install اجرا کنید و فایل .xcworkspace ایجاد شده را باز کنید.

  2. در Xcode، قابلیت App Attest را به برنامه خود اضافه کنید.

  3. در فایل .entitlements پروژه خود، محیط App Attest را روی production تنظیم کنید.

۳. بررسی اولیه برنامه

در متد 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 می‌کند، اما تا زمانی که شما در بخش App Check کنسول Firebase، اجرای آن را فعال نکنید، نقاط پایانی نیازی به اعتبار توکن‌ها نخواهند داشت.

نظارت بر معیارها

با این حال، قبل از فعال کردن اجرای قانون، باید مطمئن شوید که انجام این کار، کاربران قانونی فعلی شما را مختل نمی‌کند. از طرف دیگر، اگر استفاده مشکوکی از منابع برنامه خود مشاهده می‌کنید، بهتر است زودتر اجرای قانون را فعال کنید.

برای کمک به تصمیم‌گیری در این مورد، می‌توانید به معیارهای App Check برای Google Sign-in نگاهی بیندازید.

فعال کردن اجرای بررسی برنامه

وقتی فهمیدید که App Check چگونه بر کاربران شما تأثیر می‌گذارد و آماده ادامه کار بودید، می‌توانید App Check enforcement را فعال کنید .

استفاده از App Check در محیط‌های اشکال‌زدایی

اگر پس از ثبت برنامه خود برای App Check، می‌خواهید برنامه خود را در محیطی اجرا کنید که App Check معمولاً آن را معتبر نمی‌داند، مانند یک شبیه‌ساز در حین توسعه، یا از یک محیط ادغام مداوم (CI)، می‌توانید یک نسخه اشکال‌زدایی از برنامه خود ایجاد کنید که از ارائه‌دهنده اشکال‌زدایی App Check به جای App Attest استفاده می‌کند.

به بخش «استفاده از برنامه، بررسی با ارائه‌دهنده اشکال‌زدایی» مراجعه کنید.