شروع به استفاده از «بررسی برنامه» با ارائه‌دهنده سفارشی در پلاتفرم‌های Apple

این صفحه نحوه فعال کردن App Check در برنامه Apple را بااستفاده از ارائه‌دهنده سفارشی App Check نشان می‌دهد. وقتی App Check را فعال می‌کنید، به اطمینان از اینکه فقط برنامه شما می‌تواند به منابع Firebase پروژه شما دسترسی داشته باشد کمک می‌کنید.

اگر می‌خواهید از App Check با ارائه‌دهندگان داخلی استفاده کنید، اسناد مربوط به App Check با «گواهی برنامه» و App Check با DeviceCheck را ببینید.

قبل از شروع

۱. افزودن کتابخانه App Check به برنامه

  1. از مدیر بسته Swift برای نصب و مدیریت وابستگی‌های Firebase استفاده کنید.

    در Xcode، با باز بودن پروژه برنامه، به File (فایل) > Add Packages (افزودن بسته‌ها) بروید، مخزن «کیت توسعه نرم‌افزار پلاتفرم‌های Apple در Firebase» را اضافه کنید (https://github.com/firebase/firebase-ios-sdk)، و کتابخانه FirebaseAppCheck را انتخاب کنید.

۲. پروتکل‌های App Check را پیاده‌سازی کنید

ابتدا باید کلاس‌هایی ایجاد کنید که پروتکل‌های AppCheckProvider و AppCheckProviderFactory را پیاده‌سازی کنند.

کلاس AppCheckProvider شما باید روش getToken(completion:) داشته باشد که هر اطلاعاتی را که ارائه‌دهنده سفارشی App Check شما به‌عنوان اثبات اصالت نیاز دارد جمع‌آوری کند و آن را در ازای دریافت کد App Check به سرویس دریافت کد شما ارسال کند. «کیت توسعه نرم‌افزار» App Check ذخیره کردن نشانه را مدیریت می‌کند، بنابراین همیشه در پیاده‌سازی getToken(completion:) نشانه جدیدی دریافت کنید.

Swift

class YourCustomAppCheckProvider: NSObject, AppCheckProvider {
  var app: FirebaseApp

  init(withFirebaseApp app: FirebaseApp) {
    self.app = app
    super.init()
  }

  func getToken() async throws -> AppCheckToken {
    let getTokenTask = Task { () -> AppCheckToken in
      // ...

      // Create AppCheckToken object.
      let exp = Date(timeIntervalSince1970: expirationFromServer)
      let token = AppCheckToken(
        token: tokenFromServer,
        expirationDate: exp
      )

      if Date() > exp {
        throw NSError(domain: "ExampleError", code: 1, userInfo: nil)
      }

      return token
    }

    return try await getTokenTask.value
  }

}

Objective-C

@interface YourCustomAppCheckProvider : NSObject <FIRAppCheckProvider>

@property FIRApp *app;

- (id)initWithApp:(FIRApp *)app;

@end

@implementation YourCustomAppCheckProvider

- (id)initWithApp:app {
    self = [super init];
    if (self) {
        self.app = app;
    }
    return self;
}

- (void)getTokenWithCompletion:(nonnull void (^)(FIRAppCheckToken * _Nullable,
                                                 NSError * _Nullable))handler {
    dispatch_async(dispatch_get_main_queue(), ^{
        // Logic to exchange proof of authenticity for an App Check token.
        // ...

        // Create FIRAppCheckToken object.
        NSTimeInterval exp = expirationFromServer;
        FIRAppCheckToken *token
            = [[FIRAppCheckToken alloc] initWithToken:tokenFromServer
                                       expirationDate:[NSDate dateWithTimeIntervalSince1970:exp]];

        // Pass the token or error to the completion handler.
        handler(token, nil);
    });
}

@end

همچنین، کلاس AppCheckProviderFactory را پیاده‌سازی کنید که نمونه‌هایی از پیاده‌سازی AppCheckProvider شما ایجاد می‌کند:

Swift

class YourCustomAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
    return YourCustomAppCheckProvider(withFirebaseApp: app)
  }
}

Objective-C

@interface YourCustomAppCheckProviderFactory : NSObject <FIRAppCheckProviderFactory>
@end

@implementation YourCustomAppCheckProviderFactory

- (nullable id<FIRAppCheckProvider>)createProviderWithApp:(FIRApp *)app {
    return [[YourCustomAppCheckProvider alloc] initWithApp:app];
}

@end

۳. مقداردهی اولیه App Check

کد مقداردهی اولیه زیر را به نماینده برنامه یا مقداردهنده اولیه برنامه اضافه کنید:

Swift

let providerFactory = YourAppCheckProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)

FirebaseApp.configure()

Objective-C

YourAppCheckProviderFactory *providerFactory =
        [[YourAppCheckProviderFactory alloc] init];
[FIRAppCheck setAppCheckProviderFactory:providerFactory];

[FIRApp configure];

مراحل بعدی

پس‌از نصب کتابخانه App Check در برنامه‌تان، توزیع برنامه به‌روزشده را برای کاربران شروع کنید.

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

پایش سنجه‌ها و فعال کردن اجرا

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

برای کمک به اتخاذ این تصمیم، می‌توانید به سنجه‌های App Check برای سرویس‌هایی که استفاده می‌کنید نگاه کنید:

فعال کردن اجرای App Check

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

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

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

استفاده از App Check با ارائه‌دهنده اشکال‌زدایی در پلاتفرم‌های Apple را ببینید.