فحص التطبيقات من خلال Firebase لأنظمة أساسية من Apple

1- مقدمة

تساعد ميزة "التحقّق من التطبيقات من Firebase" في حماية موارد الخلفية من إساءة الاستخدام، مثل الاحتيال في الفوترة والتصيّد الاحتيالي، عن طريق التأكّد من أنّ الطلبات واردة من التطبيقات والأجهزة الشرعية. تعمل هذه الأداة مع خدمات Firebase وخدماتك الخلفية الخاصة بك للحفاظ على أمان مواردك.

يمكنك الاطّلاع على المزيد من المعلومات عن ميزة فحص التطبيقات من Firebase في مستندات Firebase.

تستخدم ميزة "التحقّق من التطبيقات" خدمات خاصة بالنظام الأساسي للتحقّق من سلامة تطبيق و/أو جهاز. ويُطلق على هذه الخدمات اسم مقدّمي خدمات المصادقة. وأحد مقدّمي هذه الخدمات هو خدمة App Attest من Apple، التي يمكن لميزة "التحقّق من التطبيقات" استخدامها للتحقّق من صحة تطبيقات وأجهزة Apple.

ما الذي ستنشئه

في هذا الدرس التطبيقي حول الترميز، ستضيف ميزة "فحص التطبيقات" وتفرضها في نموذج تطبيق حالي حتى تتم حماية قاعدة بيانات المشروع في الوقت الفعلي من الوصول إليها بواسطة تطبيقات وأجهزة غير شرعية.

المعلومات التي ستطّلع عليها

  • كيفية إضافة ميزة "التحقّق من التطبيقات في Firebase" إلى تطبيق حالي
  • كيفية تثبيت موفّرين مختلفين لتصديق خدمة "التحقق من التطبيقات من Firebase"
  • كيفية ضبط App Attest لتطبيقك
  • كيفية ضبط موفِّر مصادقة تصحيح الأخطاء لاختبار تطبيقك على أدوات المحاكاة أثناء تطوير التطبيق.

المتطلبات

  • Xcode 13.3.1 أو إصدار أحدث
  • حساب مطوِّر على Apple يسمح لك بإنشاء معرّفات جديدة للتطبيقات
  • جهاز iOS/iPadOS متوافق مع App Attest (مزيد من المعلومات حول مدى توفّر واجهة App Attest API)

2- الحصول على مشروع المبتدئين

يحتوي مستودع البدء السريع في Firebase على نظام التشغيل iOS على نماذج تطبيقات لعرض منتجات مختلفة من Firebase. ستستخدم تطبيق Quickstart لقاعدة بيانات Firebase لـ SwiftUI كأساس لهذا التمرين التطبيقي حول الترميز.

استنسِخ خطوات البدء السريع من Firebase لمستودع iOS من سطر الأوامر:

git clone https://github.com/firebase/quickstart-ios.git
cd quickstart-ios

افتح مشروع تطبيق Realtime Database SwiftUI Quickstart في Xcode:

cd database/DatabaseExampleSwiftUI/DatabaseExample
xed .

3- إضافة ميزة "التحقّق من التطبيقات" إلى تطبيقك

  1. انتظر حتى يقوم مدير حزم Swift بحل تبعيات المشروع.
  2. افتح علامة التبويب الإعدادات العامة الخاصة باستهداف تطبيق DatabaseExample (iOS). وبعد ذلك، في قسم أعمال الإطارات والمكتبات والمحتوى المضمَّن، انقر على الزر +.
  3. انقر لإضافة "FirebaseAppCheck".

4. إنشاء وتثبيت المصنع الخاص بموفِّر خدمة "التحقّق من التطبيقات"

  1. في مجموعة ملفات Shared، أضِف مجموعة جديدة باسم AppCheck.
  2. وداخل هذه المجموعة، يمكنك إنشاء فئة المصنع في ملف منفصل، على سبيل المثال: MyAppCheckProviderFactory.swift، مع الحرص على إضافته إلى استهداف DatabaseExample (iOS):
    import Firebase
    
    class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
      func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
        #if targetEnvironment(simulator)
          // App Attest is not available on simulators.
          // Use a debug provider.
          return AppCheckDebugProvider(app: app)
        #else
          // Use App Attest provider on real devices.
          return AppAttestProvider(app: app)
        #endif
      }
    }
    
  3. بعد ذلك، في DatabaseExampleApp.swift، تأكَّد من استيراد FirebaseAppCheck وضبط مثيل لفئة MyAppCheckProviderFactory كمصنِّع موفِّر خدمة "التحقّق من التطبيقات".
    import SwiftUI
    import FirebaseCore
    import FirebaseAppCheck
    
    @main
    struct DatabaseExampleApp: App {
      init() {
        // Set an instance of MyAppCheckProviderFactory as an App Check
        // provider factory before configuring Firebase.
        AppCheck.setAppCheckProviderFactory(MyAppCheckProviderFactory())
        FirebaseApp.configure()
      }
      ...
    }
    

5- إنشاء مشروع على Firebase وإعداده

لاستخدام ميزة "التحقّق من التطبيقات" في مشروع iOS، عليك اتّباع الخطوات التالية في وحدة تحكُّم Firebase:

  • ابدأ إعداد مشروع على Firebase.
  • أضِف تطبيق iOS إلى مشروع Firebase.
  • إعداد مصادقة Firebase.
  • قم بتهيئة مثيل قاعدة بيانات الوقت الفعلي التي تريد حمايتها.
  • ضبط فحص التطبيقات.

إنشاء مشروع

عليك أولاً إنشاء مشروع على Firebase.

  1. في وحدة تحكُّم Firebase، اختَر إضافة مشروع.
  2. أدخِل اسمًا لمشروعك "App Check Codelab"
  3. انقر على متابعة.
  4. عطِّل "إحصاءات Google" لهذا المشروع، ثم انقر على إنشاء مشروع.

إنشاء مثيل قاعدة بيانات في الوقت الفعلي

انتقِل الآن إلى قسم Realtime Database (قاعدة بيانات الوقت الفعلي) في وحدة تحكُّم Firebase.

  1. انقر على الزر إنشاء قاعدة بيانات لبدء سير عمل إنشاء قاعدة البيانات.
  2. اترك الموقع التلقائي (us-central1) لقاعدة البيانات بدون تغيير، وانقر على التالي.
  3. تأكد من اختيار وضع القفل وانقر على الزر تفعيل لتفعيل قواعد الأمان لقاعدة البيانات.
  4. انتقِل إلى علامة التبويب القواعد في متصفِّح قاعدة البيانات في الوقت الفعلي، واستبدِل القواعد التلقائية بما يلي:
    {
        "rules": {
            // User profiles are only readable/writable by the user who owns it
            "users": {
                "$UID": {
                    ".read": "auth.uid == $UID",
                    ".write": "auth.uid == $UID"
                }
            },
            // Posts can be read by anyone but only written by logged-in users.
            "posts": {
                ".read": true,
                ".write": "auth.uid != null",
                "$POSTID": {
                    // UID must match logged in user and is fixed once set
                    "uid": {
                        ".validate": "(data.exists() && data.val() == newData.val()) || newData.val() == auth.uid"
                    },
                    // User can only update own stars
                    "stars": {
                        "$UID": {
                            ".validate": "auth.uid == $UID"
                        }
                    }
                }
            },
            // User posts can be read by anyone but only written by the user that owns it,
            // and with a matching UID
            "user-posts": {
                ".read": true,
                "$UID": {
                    "$POSTID": {
                        ".write": "auth.uid == $UID",
                        ".validate": "data.exists() || newData.child('uid').val() == auth.uid"
                    }
                }
            },
            // Comments can be read by anyone but only written by a logged in user
            "post-comments": {
                ".read": true,
                ".write": "auth.uid != null",
                "$POSTID": {
                    "$COMMENTID": {
                        // UID must match logged in user and is fixed once set
                        "uid": {
                            ".validate": "(data.exists() && data.val() == newData.val()) || newData.val() == auth.uid"
                        }
                    }
                }
            }
        }
    }
    
  5. انقر على الزر نشر لتفعيل "قواعد الأمان" المعدّلة.

إعداد تطبيق iOS لربطه بمنصّة Firebase

وكي تتمكّن من تشغيل نموذج التطبيق على جهاز فعلي، تحتاج إلى إضافة المشروع إلى فريق التطوير لديك حتى يتمكن Xcode من إدارة الملف الشخصي المطلوب لتوفير المتطلبات اللازمة لك. اتّبِع الخطوات التالية لإضافة نموذج التطبيق إلى حساب المطوِّر الخاص بك:

  1. في Xcode، اختَر مشروع "DatabaseExample" في أداة التنقّل في المشروع.
  2. حدد الهدف "DatabaseExample (iOS)" وافتح التوقيع & الإمكانات.
  3. من المفترض أن تظهر لك رسالة خطأ مفادها "يتطلب توقيع قاعدة البيانات (iOS) استخدام فريق تطوير".
  4. عدِّل معرّف الحزمة إلى معرّف فريد. وتتمثل أسهل طريقة لتحقيق ذلك في استخدام اسم النطاق العكسي لموقعك الإلكتروني، على سبيل المثال com.acme.samples.firebase.quickstart.DatabaseExample (يُرجى عدم استخدام هذا المعرّف، واختيار معرّف فريد خاص بك بدلاً من ذلك).
  5. اختَر فريق التطوير.
  6. ستتأكد من سير الأمور على ما يرام عندما يعرض Xcode "الملف الشخصي لإدارة الحسابات: ملف Xcode المُدار" ورمز المعلومات الصغير بجوار هذه التسمية. وسيؤدي النقر على هذا الرمز إلى عرض مزيد من التفاصيل عن الملف الشخصي لتوفير المتطلبات اللازمة.

ربط تطبيق iOS

للحصول على شرح تفصيلي لربط تطبيقك، يمكنك الاطّلاع على المستندات حول إضافة Firebase إلى مشروع iOS. للبدء، اتّبِع الخطوات الرئيسية التالية في وحدة تحكُّم Firebase:

  1. من شاشة نظرة عامة على المشروع في مشروعك الجديد، انقر على الزر + إضافة تطبيق، ثم انقر على الرمز +iOS لإضافة تطبيق iOS جديد إلى مشروعك في Firebase.
  2. أدخِل معرِّف حزمة تطبيقك (استخدِم المعرِّف الذي حدّدته في القسم السابق، مثل com.acme.samples.firebase.quickstart.DatabaseExample، مع العلم أنّ هذا يجب أن يكون معرِّفًا فريدًا).
  3. انقر على تسجيل التطبيق.
  4. يُنشئ Firebase ملف GoogleService-Info.plist يحتوي على جميع بيانات Firebase الوصفية اللازمة لتطبيقك.
  5. انقر على تنزيل GoogleService-Info.plist لتنزيل الملف.
  6. في Xcode، ستلاحظ أنّ المشروع يحتوي على ملف باسم "GoogleService-Info.plist". احذف هذا الملف أولاً، وستستبدله بملف مشروعك على Firebase في الخطوة التالية.
  7. انسخ ملف GoogleService-Info.plist الذي نزّلته في الخطوة السابقة إلى المجلد الجذر في مشروع Xcode وأضِفه إلى الهدف DatabaseExample (iOS)، مع الحرص على أن يكون اسمه GoogleService-Info.plist.
  8. انقر على الخطوات المتبقية من مسار التسجيل. نظرًا لأن نموذج المشروع قد تم إعداده بالفعل بشكل صحيح، فلا تحتاج إلى إجراء أي تغييرات على الرمز.

إعداد مصادقة Firebase

أخيرًا! ما زالت هذه الخطوات في مرحلة الإعداد، ولكن يُرجى الانتظار. إذا كنت مستخدمًا جديدًا لمنصة Firebase، فقد تكون قد اطّلعت على أجزاء أساسية من سير العمل ستصبح على دراية بها قريبًا.

ستقوم الآن بتهيئة مصادقة Firebase لهذا التطبيق.

تفعيل موفِّر خدمة تسجيل الدخول باستخدام عنوان البريد الإلكتروني أو كلمة المرور

  1. في وحدة تحكُّم Firebase، افتح قسم المصادقة في وحدة التحكّم.
  2. انقر على البدء لإعداد مصادقة Firebase لمشروعك.
  3. اختَر علامة التبويب طريقة تسجيل الدخول.
  4. اختَر البريد الإلكتروني/كلمة المرور في قسم مزوّدي خدمات الإنترنت.
  5. فعِّل البريد الإلكتروني/كلمة المرور وانقر على حفظ.

إضافة مستخدم تجريبي

  1. افتح علامة التبويب المستخدمون ضمن قسم المصادقة.
  2. انقر على إضافة مستخدم.
  3. حدِّد عنوان بريد إلكتروني وكلمة مرور للمستخدم التجريبي، ثم انقر على إضافة مستخدم.

تجربة التطبيق

ارجع إلى Xcode وشغِّل التطبيق على iOS Simulator. سجِّل الدخول باستخدام عنوان البريد الإلكتروني وكلمة المرور للمستخدم التجريبي الذي أنشأته للتو. بعد تسجيل الدخول، يمكنك إنشاء مشاركة ونشر تعليق على مشاركة حالية وتمييز المشاركات بنجمة أو إلغاء تمييزها.

6- إعداد موفِّر خدمة مصادقة التطبيق

في هذه الخطوة، سيتم ضبط ميزة "فحص التطبيق" لاستخدام موفِّر خدمة App Attest في وحدة تحكُّم Firebase.

  1. في "وحدة تحكُّم Firebase"، انتقِل إلى قسم التحقّق من التطبيقات في وحدة التحكّم.
  2. انقر على البدء.
  3. في علامة التبويب التطبيقات، انقر على تطبيقك لتوسيع تفاصيله.
  4. انقر على App Attest (شهادة التطبيق) لإعداد App Attest، ثم أدخِل رقم تعريف الفريق لحساب المطوّر الخاص بك على Apple (يمكنك العثور على هذا الرقم التعريفي في قسم العضوية على بوابة مطوّري برامج Apple): 1645f7a369b678c2.png
  5. انقر على حفظ.

بهذا الإجراء، سيكون لديك مشروع قيد التشغيل في Firebase مرتبط بتطبيقنا الجديد، وتم تفعيل "فحص التطبيقات".

أنت الآن جاهز لضبط خدمة المصادقة المحدّدة. لمزيد من المعلومات عن سير العمل هذا، اطّلِع على تفعيل ميزة "التحقّق من التطبيقات" باستخدام App Attest على نظام التشغيل iOS.

7- ضبط App Attest لتطبيقك

حان الوقت الآن لتجربة حزمة تطوير البرامج (SDK) لفحص التطبيقات من Firebase وتنفيذ بعض رموز العميل.

أولاً، عليك إعداد مشروع Xcode كي تتمكّن حزمة تطوير البرامج (SDK) من استخدام واجهة App Attest API من Apple لضمان أنّ الطلبات المُرسَلة من تطبيقك واردة من مثيلات مشروعة لتطبيقك.

  1. أضِف ميزة App Attest لهدف تطبيقك في مشروع Xcode:
  2. افتح نموذج التوقيع علامة التبويب "الإمكانات" في إعدادات استهداف التطبيقات
  3. النقر على "+" زر
  4. في مربّع الحوار، ابحث عن ميزة إثبات ملكية التطبيق ae84cd988a5fab31.png واختَرها.
  5. سيظهر ملف DatabaseExample (iOS).entitlements في المجلد الجذر لمشروع Xcode بعد تنفيذ الخطوة السابقة.
  6. في ملف DatabaseExample (iOS).entitlements، غيِّر قيمة المفتاح App Attest Environment إلى production.

بعد الانتهاء من هذه الخطوات وتشغيل التطبيق على جهاز iOS فعلي (iPhone/iPad)، سيظل التطبيق قادرًا على الوصول إلى قاعدة البيانات في الوقت الفعلي. في خطوة لاحقة، سيتم فرض ميزة "التحقّق من التطبيقات"، ما سيؤدي إلى حظر الطلبات التي يتم إرسالها من التطبيقات والأجهزة غير المشروعة.

لمزيد من المعلومات عن سير العمل هذا، اطّلِع على تفعيل فحص التطبيقات باستخدام App Attest على نظام التشغيل iOS.

8- تهيئة موفِّر مصادقة تصحيح الأخطاء لمحاكي iOS

يتيح موفِّر تصحيح أخطاء فحص التطبيقات من Firebase إمكانية اختبار التطبيقات باستخدام فرض "التحقّق من التطبيقات من Firebase" في بيئات غير موثوق بها، بما في ذلك محاكي iOS، أثناء عملية التطوير. بعد ذلك، عليك ضبط موفِّر تصحيح الأخطاء معًا.

تثبيت موفِّر تصحيح أخطاء Firebase في تطبيقك

الخيار 1: إنشاء مثيل موفِّر تصحيح الأخطاء في المصنع بشروط

لقد فعلت معظم هذا عند إنشاء الشركة المصنعة لمزود ميزة "التحقق من التطبيقات". في هذه الخطوة، ستضيف تسجيلاً لسر تصحيح الأخطاء المحلي الذي أنشأه موفِّر تصحيح الأخطاء، حتى تتمكّن من تسجيل هذا المثيل من التطبيق في وحدة تحكُّم Firebase لأغراض تصحيح الأخطاء.

عدِّل MyAppCheckProviderFactory.swift باستخدام الرمز التالي:

import Firebase

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
#if targetEnvironment(simulator)
    // App Attest is not available on simulators.
    // Use a debug provider.
    let provider = AppCheckDebugProvider(app: app)

    // Print only locally generated token to avoid a valid token leak on CI.
    print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

    return provider
#else
    // Use App Attest provider on real devices.
    return AppAttestProvider(app: app)
#endif
  }
}

يمنحنا هذا الأسلوب المزيد من المرونة في ضبط ميزة "فحص التطبيقات" استنادًا إلى البيئة. على سبيل المثال، يمكنك الاستعانة بموفّري مصادقة آخرين، مثل DeviceCheck أو موفّر تصديق مخصَّص على إصدارات نظام التشغيل التي لا تتوفّر فيها ميزة App Attest. انظر المثال أدناه:

import Firebase

class MyAppCheckProviderFactory: NSObject, AppCheckProviderFactory {
  func createProvider(with app: FirebaseApp) -> AppCheckProvider? {
      #if targetEnvironment(simulator)
      // App Attest is not available on simulators.
      // Use a debug provider.
      let provider = AppCheckDebugProvider(app: app)

      // Print only locally generated token to avoid a valid token leak on CI.
      print("Firebase App Check debug token: \(provider?.localDebugToken() ?? "" )")

      return provider
      #else
      if #available(iOS 14.0, *) {
        // Use App Attest provider on real devices.
        return AppAttestProvider(app: app)
      } else {
        return DeviceCheckProvider(app: app)
      }
      #endif
  }
}

الخيار 2: تثبيت AppCheckDebugProviderFactory

بالنسبة إلى الحالات الأبسط، يمكنك تثبيت AppCheckDebugProviderFactory مؤقتًا أو بشروط قبل ضبط مثيل تطبيق Firebase:

init() {
#if targetEnvironment(simulator)
  let providerFactory = AppCheckDebugProviderFactory()
#else
  let providerFactory = MyAppCheckProviderFactory()
#endif

  AppCheck.setAppCheckProviderFactory(providerFactory)

  FirebaseApp.configure()
}

سيؤدي هذا إلى توفير بضعة أسطر من الرموز عند إنشاء مصنع مزوّد بخدمة "التحقّق من التطبيقات".

سجِّل سر تصحيح الأخطاء في وحدة تحكُّم Firebase.

الحصول على سر تصحيح الأخطاء من محاكي iOS

  1. إذا اخترت تثبيت AppCheckDebugProviderFactory (الخيار 2 أعلاه)، عليك تفعيل ميزة تسجيل تصحيح الأخطاء لتطبيقك من خلال إضافة -FIRDebugEnabled إلى وسيطات تشغيل التطبيق: f1c6b477a373e144.png.
  2. تشغيل تطبيقك على محاكي
  3. ابحث عن سر تصحيح الأخطاء في وحدة تحكّم Xcode. يمكنك استخدام فلتر وحدة التحكّم للعثور على البيانات بشكل أسرع: d4c65af93e369c55.png

ملاحظة: يتم إنشاء سر تصحيح الأخطاء للمحاكي عند إطلاق التطبيق الأول ويتم تخزينه في الإعدادات التلقائية للمستخدم. في حال إزالة التطبيق أو إعادة ضبط المحاكي أو استخدام محاكي آخر، سيتم إنشاء سر جديد لتصحيح الأخطاء. تأكَّد من تسجيل الرمز السرّي الجديد لتصحيح الأخطاء.

تسجيل المفتاح السرّي لتصحيح الأخطاء

  1. ارجع إلى وحدة تحكُّم Firevbase، ثم انتقِل إلى قسم التحقّق من التطبيقات.
  2. في علامة التبويب التطبيقات، انقر على تطبيقك لتوسيع تفاصيله.
  3. في القائمة الكاملة، اختَر إدارة الرموز المميّزة لتصحيح الأخطاء: d77c8ff768a00b4b.png
  4. أضِف المفتاح السرّي الذي نسخته من وحدة تحكّم Xcode، ثم انقر على حفظ f845c97b86f694d0.png.

بعد هذه الخطوات، يمكنك استخدام التطبيق على المحاكي حتى مع فرض "فحص التطبيقات".

ملاحظة: تم تصميم موفِّر خدمة تصحيح الأخطاء خصيصًا للمساعدة في منع تسريب المعلومات السرية لتصحيح الأخطاء. باستخدام الطريقة الحالية، لا تحتاج إلى تخزين الرمز السرّي لتصحيح الأخطاء في رمز المصدر.

يمكن الاطّلاع على مزيد من التفاصيل حول هذا الإجراء في المستندات. اطّلِع على استخدام ميزة "فحص التطبيقات" مع موفِّر خدمة تصحيح الأخطاء على نظام التشغيل iOS.

9- تفعيل فرض "فحص التطبيقات" لقاعدة بيانات Firebase في الوقت الفعلي

في الوقت الحالي، يفصح تطبيقنا عن AppCheckProviderFactory تعرض رمز الاستجابة AppAttestProvider للأجهزة الحقيقية. عند تشغيل التطبيق على جهاز فعلي، سيجري تطبيقك المصادقة ويرسل النتائج إلى الواجهة الخلفية لمنصة Firebase. ومع ذلك، تظل الواجهة الخلفية لمنصة Firebase تقبل الطلبات من أي جهاز أو محاكي iOS أو نص برمجي أو غير ذلك. ويكون هذا الوضع مفيدًا في حال كان لديك مستخدمون لديهم إصدار قديم من تطبيقك بدون فحص التطبيقات، ولا تريد فرض عمليات التحقُّق من الوصول بعد.

عليك الآن تفعيل تنفيذ ميزة "التحقّق من التطبيقات" لضمان إمكانية الوصول إلى تطبيق Firebase من الأجهزة الشرعية فقط. ستتوقف إصدارات التطبيق القديمة التي لم يتم دمجها مع ميزة "التحقّق من التطبيقات" عن العمل بعد تفعيل التنفيذ لمشروع Firebase.

  1. في وحدة تحكُّم Firebase في قسم فحص التطبيق، انقر على قاعدة البيانات في الوقت الفعلي لتوسيع تفاصيلها.
  2. انقر على فرض.

64e6a81fa979b635.png

  1. اقرأ المعلومات في مربّع حوار التأكيد، ثم انقر على فرض.

بعد إكمال هذه الخطوات، ستتمكّن التطبيقات الشرعية فقط من الوصول إلى قاعدة البيانات. وسيتم حظر جميع التطبيقات الأخرى.

محاولة الوصول إلى قاعدة بيانات الوقت الفعلي باستخدام تطبيق غير قانوني

للاطّلاع على تنفيذ "التحقّق من التطبيقات" بشكل عملي، يُرجى اتّباع الخطوات التالية:

  1. يمكنك إيقاف التسجيل في فحص التطبيقات من خلال التعليق على رمز تسجيل فحص التطبيق في طريقة init لنقطة دخول تطبيقك في DatabaseExampleApp.
  2. إعادة ضبط المحاكي عن طريق اختيار الجهاز > محو بيانات كل المحتوى والإعدادات سيؤدي هذا إلى حجب بيانات المحاكي (وإبطال الرمز المميز للجهاز).
  3. شغِّل التطبيق مرة أخرى على المحاكي.
  4. من المفترض أن تظهر لك رسالة الخطأ التالية:
    [FirebaseDatabase][I-RDB034005] Firebase Database connection was forcefully killed by the server.  Will not attempt reconnect. Reason: Invalid appcheck token.
    

لإعادة تفعيل ميزة "فحص التطبيقات"، اتّبِع الخطوات التالية:

  1. إلغاء التعليق على رمز تسجيل App Check في DatabaseExampleApp.
  2. أعِد تشغيل التطبيق.
  3. دوِّن الرمز المميّز الجديد لفحص التطبيقات في وحدة تحكُّم Xcode.
  4. سجِّل الرمز المميّز لتصحيح الأخطاء في إعدادات "التحقّق من التطبيقات" لتطبيقك في وحدة تحكُّم Firebase.
  5. إعادة تشغيل التطبيق
  6. من المفترض ألا تظهر رسالة خطأ بعد ذلك، ومن المفترض أن يصبح بإمكانك إضافة مشاركات وتعليقات جديدة في التطبيق.

10- تهانينا

9785d32f18b995d2.gif

أنت الآن تعرف كيفية:

  • إضافة ميزة "فحص التطبيقات" إلى مشروع حالي
  • ضبط موفِّر خدمة مصادقة التطبيق لإصدار الإنتاج من تطبيقك
  • يمكنك ضبط موفِّر مصادقة تصحيح الأخطاء لاختبار تطبيقك على محاكي.
  • يمكنك تتبُّع عملية طرح إصدار التطبيق لمعرفة وقت فرض ميزة "فحص التطبيق" على مشروعك على Firebase.
  • تفعيل فرض فحص التطبيقات

الخطوات التالية

تعرَّف على كيفية استخدام ميزة "الإعداد عن بُعد" لطرح ميزة "التحقّق من التطبيقات" تدريجيًا للمستخدمين في الدرس التطبيقي حول الترميز في "الإعداد عن بُعد في Firebase" والذي سيتم طرحه تدريجيًا.

في ما يلي مراجع أخرى قد تكون مفيدة:

سينجح الإعداد الموضّح في هذا الدرس التطبيقي حول الترميز في معظم الحالات، ولكن تتيح لك ميزة "التحقّق من التطبيقات" المزيد من المرونة إذا لزم الأمر. اطّلِع على الروابط التالية لمزيد من التفاصيل: