توضّح لك هذه الصفحة كيفية تفعيل ميزة "فحص التطبيقات" في تطبيق Apple، باستخدام موفِّر خدمة فحص التطبيقات المخصّص عند تفعيل ميزة "فحص التطبيقات" أنت تساعد على ضمان وصول تطبيقك فقط إلى موارد Firebase لمشروعك.
وإذا كنت تريد استخدام ميزة "فحص التطبيقات" مع مزوّدي الخدمة المضمَّنين، راجِع مستندات ميزة "فحص التطبيق" مع مصادقة التطبيق التحقّق من التطبيقات باستخدام DeviceCheck
قبل البدء
أضِف منصة Firebase إلى مشروع Apple إذا لم يسبق لك إجراء ذلك. قمت بذلك بالفعل.
تنفيذ منطق من جهة الخادم لموفِّر خدمة "التحقّق من التطبيقات"
1- إضافة مكتبة فحص التطبيقات إلى تطبيقك
أضِف تبعية ميزة "فحص التطبيقات" إلى
Podfile
في مشروعك:pod 'FirebaseAppCheck'
يمكنك بدلاً من ذلك استخدام حزمة Swift المدير بدلاً من ذلك.
احرص أيضًا على استخدام أحدث إصدار من أي خدمة من خدمات Firebase. مكتبات العملاء التي تعتمد عليها.
شغِّل تطبيق "
pod install
" وافتح ملف ".xcworkspace
" الذي تم إنشاؤه.
2- تنفيذ بروتوكولات فحص التطبيقات
عليك أولاً إنشاء صفوف تنفّذ AppCheckProvider
AppCheckProviderFactory
بروتوكول.
يجب أن يتضمّن الصف AppCheckProvider
طريقة getToken(completion:)
، وهي
جمع أي معلومات يحتاجها مقدم خدمة "فحص التطبيقات" المخصص
لإثبات الأصالة، ويُرسلها إلى خدمة الحصول على الرموز المميزة في
Exchange برمز مميز للتحقق من التطبيق. تعالج حزمة تطوير البرامج (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 الأساسية.