توضّح لك هذه الصفحة كيفية تفعيل ميزة "التحقق من التطبيقات" في أحد تطبيقات Apple، باستخدام موفّر خدمة "التحقق من التطبيقات" المخصص. عند تفعيل فحص التطبيقات، تسهم في ضمان وصول تطبيقك فقط إلى موارد Firebase لمشروعك.
إذا أردت استخدام ميزة "فحص التطبيق" مع موفّري الخدمات المدمجين، يُرجى الاطّلاع على مستندات فحص التطبيق مع مصادقة التطبيق وفحص التطبيق باستخدام أداة DeviceCheck.
قبل البدء
أضِف منصة Firebase إلى مشروع Apple إذا لم يسبق لك إجراء ذلك.
تنفيذ منطق من جهة الخادم لموفِّر خدمة "التحقّق من التطبيقات"
1- إضافة مكتبة فحص التطبيقات إلى تطبيقك
أضِف تبعية ميزة "فحص التطبيقات" إلى
Podfile
في مشروعك:pod 'FirebaseAppCheck'
بدلاً من ذلك، يمكنك استخدام Swift Package Manager بدلاً من ذلك.
تأكَّد أيضًا من استخدام أحدث إصدار من أي مكتبات برامج تعتمد عليها في Firebase.
شغِّل تطبيق "
pod install
" وافتح ملف ".xcworkspace
" الذي تم إنشاؤه.
2- تنفيذ بروتوكولات فحص التطبيقات
أولاً، يجب إنشاء فئات تستخدم البروتوكولَين AppCheckProvider
وAppCheckProviderFactory
.
يجب أن تتضمن فئة AppCheckProvider
طريقة getToken(completion:)
، التي تجمع أي معلومات يطلبها موفِّر خدمة "فحص التطبيقات" المخصَّص كإثبات مصادقتها، وترسلها إلى خدمة الحصول على الرموز المميّزة مقابل الحصول على رمز مميَّز خاص بميزة "فحص التطبيقات". تتعامل حزمة تطوير البرامج (SDK) لفحص التطبيقات مع التخزين المؤقت للرموز المميّزة، لذا ننصحك دائمًا بالحصول على رمز مميّز جديد عند تنفيذ 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
3- إعداد فحص التطبيقات
أضِف رمز الإعداد التالي إلى مفوِّض التطبيق أو أداة إعداد التطبيق:
Swift
let providerFactory = YourAppCheckProviderFactory() AppCheck.setAppCheckProviderFactory(providerFactory) FirebaseApp.configure()
Objective-C
YourAppCheckProviderFactory *providerFactory = [[YourAppCheckProviderFactory alloc] init]; [FIRAppCheck setAppCheckProviderFactory:providerFactory]; [FIRApp configure];
الخطوات اللاحقة
بعد تثبيت مكتبة "فحص التطبيقات" في تطبيقك، ابدأ في توزيع التطبيق المحدَّث على المستخدمين.
سيبدأ تطبيق العميل المحدّث في إرسال رموز "فحص التطبيق" مع كل طلب يتم تقديمه إلى Firebase، إلا أنّ منتجات Firebase لن تتطلب أن تكون الرموز المميزة صالحة إلى أن يتم تفعيل التنفيذ في قسم "فحص التطبيق" في وحدة تحكُّم Firebase.
مراقبة المقاييس وتفعيل التنفيذ
ومع ذلك، قبل تفعيل التنفيذ، يجب التأكّد من أنّ ذلك لن يعطّل المستخدمين الشرعيين الحاليين. من ناحية أخرى، إذا لاحظت استخدامًا مريبًا لموارد تطبيقك، ننصحك بتفعيل هذه الميزة في وقت أقرب.
للمساعدة في اتخاذ هذا القرار، يمكنك الاطّلاع على مقاييس "فحص التطبيق" للخدمات التي تستخدمها:
- مراقبة مقاييس طلب فحص التطبيق لقاعدة البيانات في الوقت الفعلي وCloud Firestore وCloud Storage والمصادقة (الإصدار التجريبي).
- مراقبة مقاييس طلب "فحص التطبيق" لوظائف السحابة الإلكترونية
تفعيل فرض فحص التطبيقات
بعد معرفة تأثير فحص التطبيقات على المستخدمين، وعند استعدادك للمتابعة، يمكنك تفعيل تنفيذ ميزة "فحص التطبيق":
- تفعيل فرض فحص التطبيقات لقاعدة البيانات في الوقت الفعلي، وCloud Firestore وCloud Storage والمصادقة (تجريبي).
- تفعيل فرض "التحقّق من التطبيقات" لوظائف السحابة الإلكترونية
استخدام ميزة "فحص التطبيقات" في بيئات تصحيح الأخطاء
بعد تسجيل تطبيقك في ميزة "فحص التطبيقات"، إذا أردت تشغيل تطبيقك في بيئة لا تصنّفها أداة "فحص التطبيقات" عادةً على أنّها صالحة، مثل المحاكي أثناء التطوير، أو من بيئة تكامل مستمر (CI)، يمكنك إنشاء إصدار لتصحيح أخطاء تطبيقك يستخدم موفِّر خدمة تصحيح أخطاء التطبيق بدلاً من موفّر تصديق حقيقي.
راجِع استخدام ميزة "فحص التطبيق" مع موفِّر تصحيح الأخطاء على أنظمة Apple الأساسية.