مختبرو التنبيه حول إصدارات تطبيقك الجديدة باستخدام Firebase App Distribution iOS SDK - Codelab

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

1. نظرة عامة

مرحبًا بك في Integration the Firebase App Distribution SDK في مختبر ترميز تطبيق iOS الخاص بك. في مختبر الرموز هذا ، ستضيف App Distribution SDK إلى تطبيقك من أجل عرض التنبيهات داخل التطبيق للمختبرين عند توفر إصدارات جديدة للتنزيل. ستتعلم كيفية استخدام كل من التكوين الأساسي والتكوين المخصص لتسجيل دخول المختبرين لتلقي التحديثات. بعد ذلك ستدفع إصدارًا جديدًا إلى App Distribution وتطلق تنبيهًا جديدًا للبناء مباشرة في التطبيق.

ماذا ستتعلم

  • كيفية استخدام توزيع التطبيقات لتوزيع تطبيق ما قبل الإصدار على المختبرين المباشرين
  • كيفية دمج تطبيق iOS SDK في تطبيقك
  • كيفية تنبيه أحد المختبرين عند وجود إصدار تجريبي جديد جاهز للتثبيت
  • كيفية تخصيص SDK لتلائم احتياجات الاختبار الفريدة الخاصة بك

ماذا ستحتاج

  • Xcode 12 (أو أعلى)
  • CocoaPods 1.9.1 (أو أعلى)
  • حساب مطور Apple للتوزيع المخصص
  • جهاز iOS المادي للاختبار. (سيعمل تطبيق iOS simulator مع معظم مختبر الرموز ، ولكن لا يمكن لأجهزة المحاكاة تنزيل الإصدارات.)

كيف ستستخدم هذا البرنامج التعليمي؟

اقرأها فقط اقرأها وأكمل التدريبات

كيف تقيم تجربتك مع إنشاء تطبيقات iOS؟

مبتدئ متوسط بارع

2. إنشاء مشروع وحدة تحكم Firebase

أضف مشروع Firebase جديدًا

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

لست بحاجة إلى تمكين Google Analytics لهذا المشروع.

  1. انقر فوق إنشاء مشروع .

أضف التطبيق إلى Firebase

اتبع الوثائق لتسجيل تطبيقك في Firebase. استخدم "com.google.firebase.codelab.AppDistribution. <your_name>" كمعرّف حزمة iOS.

عند المطالبة ، قم بتنزيل ملف GoogleService-Info.plist . سوف تحتاج هذا لاحقا.

3. احصل على عينة المشروع

قم بتنزيل الكود

ابدأ باستنساخ نموذج المشروع.

git clone git@github.com:googlecodelabs/firebase-appdistribution-ios.git

إذا لم يكن لديك git مثبتًا ، فيمكنك أيضًا تنزيل نموذج المشروع من صفحة GitHub الخاصة به أو بالنقر فوق هذا الارتباط .

قم بتنزيل التبعيات وافتح المشروع في Xcode

  1. افتح ملف Podfile في نفس الدليل
cd firebase-appdistribution-ios/start
Open Podfile
  1. أضف السطر التالي إلى ملفك:

بودفيلي

pod 'Firebase/AppDistribution'

قم بتشغيل pod update في دليل المشروع وافتح المشروع في Xcode.

pod install --repo-update
xed .

قم بتحديث معرّف الحزمة لمطابقة تطبيق Firebase الخاص بك

في القائمة اليسرى ، انقر نقرًا مزدوجًا فوق AppDistributionExample. بعد ذلك ، حدد علامة التبويب " عام " ، وقم بتغيير معرّف الحزمة لمطابقة معرّف الحزمة لتطبيق Firebase الخاص بك ، والذي يمكن العثور عليه في إعدادات المشروع . يجب أن يكون هذا هو "com.google.firebase.codelab.AppDistribution. <your_name>"

أضف Firebase إلى تطبيقك

حدد موقع ملف GoogleService-Info.plist الذي قمت بتنزيله مسبقًا في نظام الملفات ، واسحبه إلى جذر مشروع Xcode. يمكنك أيضًا تنزيل هذا الملف في أي وقت من صفحة إعدادات مشروعك.

3cf9290805e7fdab.png

في ملف AppDistributionExample/AppDelegate.swift أعلى الملف

AppDistributionExample / AppDelegate.swift

import Firebase

وفي طريقة didFinishLaunchingWithOptions ، أضف استدعاءًا لتكوين Firebase.

AppDistributionExample / AppDelegate.swift

FirebaseApp.configure()

4. قم بإعداد تنبيهات بناء جديدة داخل التطبيق باستخدام App Distribution SDK

في هذه الخطوة ، ستضيف Firebase App Distribution SDK إلى تطبيقك وستعرض التنبيهات داخل التطبيق للمختبرين عند توفر إصدارات جديدة من تطبيقك للتثبيت. للقيام بذلك ، تأكد من تمكين Firebase App Testers API لمشروع "Firebase Codelab" (في Google Cloud Console). ستحتاج إلى تسجيل الدخول بنفس الحساب واختيار المشروع الصحيح من القائمة المنسدلة في الأعلى.

تكوين التنبيهات داخل التطبيق

يوفر App Distribution SDK طريقتين لإعداد تنبيهات بناء داخل التطبيق للمختبرين: تكوين تنبيه أساسي ، والذي يأتي مع حوار تسجيل دخول مُدمج مسبقًا لعرضه على المختبرين ، وتكوين تنبيه متقدم ، مما يسمح لك تخصيص واجهة المستخدم الخاصة بك (UI).

سنبدأ بتكوين التنبيه الأساسي. يمكنك استخدام checkForUpdate لعرض مربع حوار تنبيهات التمكين المبني مسبقًا للمختبرين الذين لم يقوموا بتمكين التنبيهات بعد ، ثم التحقق من توفر بنية جديدة. يقوم المختبرين بتمكين التنبيهات عن طريق تسجيل الدخول إلى حساب لديه حق الوصول إلى التطبيق في توزيع التطبيقات. عندما يتم استدعاؤها ، تقوم الطريقة بسن التسلسل التالي:

  1. للتحقق مما إذا كان المختبر قد قام بتمكين التنبيهات. إذا لم يكن كذلك ، يعرض حوارًا تم إنشاؤه مسبقًا يطالبهم بتسجيل الدخول إلى توزيع التطبيقات باستخدام حساب Google الخاص بهم.

تمكين التنبيهات هو عملية لمرة واحدة على جهاز الاختبار وتستمر عبر تحديثات تطبيقك. تظل التنبيهات ممكّنة على جهاز الاختبار حتى يتم إلغاء تثبيت التطبيق ، أو حتى يتم استدعاء طريقة signOutTester . راجع الوثائق المرجعية للطريقة ( Swift أو Objective-C ) لمزيد من المعلومات.

  1. يتحقق من الإصدارات المتوفرة حديثًا ليتم تثبيتها من قِبل المُختبِر. إرجاع كائن تحرير أو خطأ .

يمكنك تضمين checkForUpdate في أي وقت في التطبيق الخاص بك. على سبيل المثال ، يمكنك مطالبة المختبرين بتثبيت الإصدارات المتوفرة حديثًا عند بدء التشغيل من خلال تضمين checkForUpdate في viewDidAppear من UIViewController .

في ملف AppDistributionViewController.swift الخاص بك ، قم باستيراد Firebase في الجزء العلوي من الملف

AppDistributionViewController.swift

import Firebase

افتح AppDistributionExample / AppDistributionViewController.swift ، وانسخ الأسطر في طريقة viewDidAppear مثل هذا:

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    checkForUpdate()
 }

لنقم الآن بتنفيذ طريقة checkForUpdate ().

AppDistributionViewController.swift

  private func checkForUpdate() {
    AppDistribution.appDistribution().checkForUpdate(completion: { [self] release, error in
      var uiAlert: UIAlertController

      if error != nil {
        uiAlert = UIAlertController(title: "Error", message: "Error Checking for update! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
      } else if release == nil {
        uiAlert = UIAlertController(title: "Check for Update", message: "No releases found!!", preferredStyle: .alert)
        uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default))
      } else {
        guard let release = release else { return }

        let title = "New Version Available"
        let message = "Version \(release.displayVersion)(\(release.buildVersion)) is available."
        uiAlert = UIAlertController(title: title, message: message, preferredStyle: .alert)

        uiAlert.addAction(UIAlertAction(title: "Update", style: UIAlertAction.Style.default) {
          _ in
          UIApplication.shared.open(release.downloadURL)
        })
        uiAlert.addAction(UIAlertAction(title: "Cancel", style: UIAlertAction.Style.cancel) {
          _ in
        })
      }
      self.present(uiAlert, animated: true, completion: nil)
    })
  }

5. قم ببناء ودعوة المختبرين لتنزيل تطبيقك

في هذه الخطوة ، ستنشئ تطبيقك وتختبر التنفيذ عن طريق توزيع الإصدار على المختبرين باستخدام وحدة تحكم Firebase.

بناء التطبيق الخاص بك

عندما تكون جاهزًا لتوزيع إصدار ما قبل الإصدار من تطبيقك على المختبرين ، حدد "أي جهاز iOS (arm64)" كوجهة للإصدار ، ثم حدد المنتج> أرشيف. بمجرد إنشاء الأرشيف ، قم بإنشاء توزيع موقّع باستخدام ملف تعريف توزيع التطوير.

98d8eb042c36a685.png

b2e9ccff91d761c1.png

8e815564f64d2d39.png

عند اكتمال البناء ، يحفظ ملف IPA وبعض ملفات السجل في المجلد الذي تحدده. تقوم بتوزيع ملف IPA على المختبرين في الخطوات التالية.

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

وزع تطبيقك على المختبرين

لتوزيع تطبيقك على المختبرين ، قم بتحميل ملف IPA باستخدام وحدة تحكم Firebase:

  1. افتح صفحة توزيع التطبيق لوحدة تحكم Firebase. حدد مشروع Firebase الخاص بك عندما يُطلب منك ذلك.
  2. اضغط على البدء

e4671bd304ecfe47.png

  1. في صفحة الإصدارات ، حدد التطبيق الذي تريد توزيعه من القائمة المنسدلة.

8a3da2939b9746f4.png

  1. اسحب ملف IPA الخاص بتطبيقك إلى وحدة التحكم لتحميله.
  2. عند اكتمال التحميل ، حدد مجموعات المختبرين والمختبرين الفرديين الذين تريدهم لتلقي الإصدار. (أضف بريدك الإلكتروني لتلقي الدعوة.) ثم أضف ملاحظات الإصدار للبناء. راجع إدارة المختبرين لمعرفة المزيد حول إنشاء مجموعات المختبرين.

de63e3c3c64f909e.png

  1. انقر فوق توزيع لإتاحة الإصدار للمختبرين.

b6e75dc216fc3731.png

أضف نفسك كمختبِر للإصدار

في وحدة تحكم Firebase ، يمكنك الآن رؤية المختبرين الذين أضفتهم ضمن إصدار تطبيقك.

eb61c6be96ff3a11.png

نظرًا لتضمين عنوان بريدك الإلكتروني ، ستتلقى بريدًا إلكترونيًا من Firebase App Distribution يدعوك لاختبار التطبيق. أنت الآن المختبِر الأول! تابع القسم أدناه للحصول على الإعداد كمختبِر على جهاز الاختبار الخاص بك.

سجل جهاز الاختبار الخاص بك

ستحتاج أولاً إلى تسجيل جهاز الاختبار الخاص بك لتنزيل واختبار إصدار Ad Hoc.

  1. على جهاز اختبار iOS الخاص بك ، افتح البريد الإلكتروني المرسل من Firebase App Distribution وانقر على رابط البدء. تأكد من فتح الرابط في Safari.
  2. في تطبيق الويب الخاص باختبار Firebase App Distribution الذي يظهر ، قم بتسجيل الدخول باستخدام حساب Google الخاص بك وانقر فوق قبول الدعوة.

4d1af345ef944620.png

الآن ، سترى الإصدار الذي تمت دعوتك إليه.

  1. انقر فوق " تسجيل الجهاز " لمشاركة UDID الخاص بك مع Firebase حتى تتمكن من تحديث ملف تعريف توفير التطبيق الخاص بك لاحقًا.

fd141215e54a938d.png

  1. اتبع التعليمات وانتقل إلى الإعدادات لتنزيل ملف التعريف ومشاركة UDID الخاص بك.

الآن ، عندما تعود إلى توزيع التطبيقات ، يتم وضع علامة على الإصدار الآن على أنه "مسجل الجهاز":

fe93d649dfa25877.png

تمت الآن مشاركة UDID الخاص بالاختبار مع المطور. يعود الأمر الآن للمطور لبناء نسخة جديدة من التطبيق المختبِر.

عرض معلومات المختبرين في وحدة التحكم

مرة أخرى في عرض المطور في وحدة تحكم Firebase ، سيظهر المختبِر كـ "مقبول" ضمن الإصدار:

1bef6f182c1c58f9.png

ستحصل بعد ذلك أيضًا على بريد إلكتروني كمطور إذا لم يكن الجهاز الذي يستخدمونه مدرجًا بالفعل في ملف تعريف التوفير. سيُعلمك هذا برقم UDID الجديد الذي تحتاج إلى إضافته. لديك أيضًا خيار تصدير جميع UDIDs كملف نصي.

  1. لتصدير جميع UDIDs ، افتح علامة التبويب المختبرون والمجموعات.

2745d49a6abc47fe.png

  1. انقر فوق "تصدير Apple UDIDs".

cb45477f8cc436ba.png

يجب أن يحتوي الملف على UDID لجهاز الاختبار الخاص بك.

Device ID            Device Name                            Device Platform
1234567890     tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen        ios

عندما تتلقى إحدى رسائل البريد الإلكتروني هذه ، قم بتحديث ملف التوفير الخاص بك باستخدام UDID وتوزيع تصميم جديد على المختبرين لديك باتباع الخطوات التالية:

  1. أضف الأجهزة إلى بوابة مطوري Apple الخاصة بك.
  • الخيار 1: استيراد معرّفات UDID للجهاز كملف CSV. في علامة التبويب المختبرون والمجموعات من لوحة معلومات توزيع التطبيق ، حدد كل المختبرين ، ثم انقر على تصدير Apple UDIDs لتنزيل ملف CSV. بعد ذلك ، قم باستيراد الملف إلى حساب مطور Apple الخاص بك باستخدام خيار تسجيل أجهزة متعددة. راجع وثائق Apple لمعرفة المزيد. لاحظ أن حساب مطور Apple الخاص بك قد يسمح لك فقط باستيراد عدد محدود من الأجهزة سنويًا.
  • الخيار 2: جمع وإدخال UDIDs عن طريق البريد الإلكتروني. في صفحة إضافة أجهزة في بوابة مطوري Apple ، قم بتسجيل UDID الجديد المحدد في البريد الإلكتروني الذي تلقيته.

ffb74294e68ee1c8.png

  1. أضف الأجهزة المسجلة إلى ملف تعريف التزويد الخاص بك.
  2. قم بتنزيل ملف التوفير واستخدمه لإعادة إنشاء تطبيقك. إذا كنت تقوم بإعادة البناء فقط لتحديث الأجهزة المسجلة ، فلا تقم بتحديث رقم الإصدار أو الإصدار.
  3. أعد توزيع تطبيقك من وحدة تحكم Firebase أو CLI. إذا كنت قد وزعت بالفعل بنية بنفس رقم الإصدار والإصدار ، فإن مستخدمي الأجهزة المسجلة حديثًا فقط هم الذين يتلقون رسائل إعلام بالبريد الإلكتروني.

قم بتنزيل الإصدار من جهاز الاختبار

يحتوي الإصدار الآن على UDID لجهاز الاختبار ، لذلك يمكن لجهاز الاختبار تنزيل التطبيق وتثبيته. يرسل App Distribution بريدًا إلكترونيًا إلى المختبرين عند إضافة UDID الخاص بهم إلى إصدار جديد.

a4049260bae2850b.png

  1. على جهاز الاختبار ، ارجع إلى تطبيق اختبار توزيع التطبيقات على الويب باستخدام الرابط الموجود في البريد الإلكتروني ، أو الرمز الموجود على الشاشة الرئيسية للجهاز.

عندما تنتقل إلى تطبيق codelab UDID ، يمكنك أن ترى أن الإصدار جاهز للتنزيل.

dad6d03b6ad78746.png

  1. إذا كنت تستخدم جهازًا ماديًا ، فاضغط على تنزيل ، ثم قم بتثبيت التطبيق وتشغيله!
  2. عند بدء تشغيل التطبيق ، سيطلب منك تمكين تنبيهات البناء الجديد. حدد "تشغيل"

6e3540a2900734e6.png

  1. ثم سيطلب منك تسجيل الدخول. انقر فوق "متابعة".

82d90d7935bfaea0.png

  1. تسجيل الدخول باستخدام حساب المختبر الخاص بك.

13bee1d03fa94ebf.png

  1. ستتم إعادتك إلى التطبيق. لن تضطر إلى تسجيل الدخول أو قبول التنبيهات في المرة القادمة التي تقوم فيها بتشغيل التطبيق.

815d6757eb5f6327.png

وزع تحديثًا على المختبرين

  1. قم بتحديث رقم الإصدار الخاص بك إلى "2".

861aa63ebbc6ec54.png

  1. حدد "أي جهاز iOS (arm64)" كوجهة بناء ، و Product-> Archive. بمجرد إنشاء الأرشيف ، قم بإنشاء توزيع موقع باستخدام ملف تعريف توزيع التطوير.
  2. عند اكتمال البناء ، يحفظ ملف IPA وبعض ملفات السجل في المجلد الذي تحدده. قم بتحميل IPA الجديد هذا في وحدة تحكم Firebase الخاصة بك ، وأضف بريدك الإلكتروني كمختبِر مرة أخرى وقم بالتوزيع.

b6e75dc216fc3731.png

اختبار تنبيهات البناء

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

3bd532992df458e6.png

  1. انقر فوق "تحديث" لتلقي أحدث إصدار.
  2. انقر فوق "تثبيت" في الشاشة التالية.

3a761d8fa4b79d33.png

  1. تهانينا! كنت قادرًا على تحديث تطبيقك باستخدام التنبيهات المدمجة.

6. تخصيص تسجيل دخول المختبر

تمنحك طريقتا signInTester / SignOutTester و isTesterSignedIn مزيدًا من المرونة في تخصيص تجربة تسجيل الدخول لدى المختبِر ، بحيث يمكن أن تتطابق بشكل أفضل مع شكل تطبيقك وأسلوبه.

يتحقق المثال التالي مما إذا كان المُختبِر قد قام بالفعل بتسجيل الدخول إلى حساب مختبري Firebase App Distribution الخاص به ، بحيث يمكنك اختيار عرض واجهة مستخدم تسجيل الدخول الخاصة بك فقط للمختبرين الذين لم يسجلوا الدخول بعد. بعد تسجيل المختبِر الدخول ، يمكنك حينئذٍ call checkForUpdate للتحقق مما إذا كان المختبِر لديه حق الوصول إلى إصدار جديد.

لنقم بتعطيل التحقق من التحديثات تلقائيًا في viewDidAppea r من خلال التعليق على استدعاء checkForUpdate () .

AppDistributionViewController.swift

 override func viewDidAppear(_ animated: Bool) {
    // checkForUpdate()
 }

بدلاً من ذلك ، دعنا نستدعي checkForUpdate () في checkForUpdateButtonClicked ( ).

 @objc func checkForUpdateButtonClicked() {
    checkForUpdate()
 }

الآن ، دعنا نطبق طريقة () signInOutButtonClicked الخاصة بنا والتي ستسجل دخول المستخدم إذا تم تسجيل خروجهم ، أو تسجيل خروج المستخدم إذا كان قد قام بتسجيل الدخول بالفعل.

AppDistributionViewController.swift

 @objc func signInOutButtonClicked() {
    if isTesterSignedIn() {
      AppDistribution.appDistribution().signOutTester()

      self.configureCheckForUpdateButton()
      self.configureSignInSignOutButton()
      self.configureSignInStatus()

    } else {
      AppDistribution.appDistribution().signInTester(completion: { error in
        if error == nil {
          self.configureCheckForUpdateButton()
          self.configureSignInSignOutButton()
          self.configureSignInStatus()
        } else {
          let uiAlert = UIAlertController(title: "Custom:Error", message: "Error during tester sign in! \(error?.localizedDescription ?? "")", preferredStyle: .alert)
          uiAlert.addAction(UIAlertAction(title: "Ok", style: UIAlertAction.Style.default) {
            _ in
          })

          self.present(uiAlert, animated: true, completion: nil)
        }
      })
    }
  }

أخيرًا ، دعنا نطبق طريقة isTesterSignedI n.

AppDistributionViewController.swift

 private func isTesterSignedIn() -> Bool {
    return AppDistribution.appDistribution().isTesterSignedIn
 }

بناء واختبار التنفيذ الخاص بك

7. مبروك!

لقد قمت بتضمين ميزة "عرض التنبيهات داخل التطبيق" في أحد التطبيقات باستخدام Firebase App Distribution iOS SDK.

ما غطينا

  • توزيع تطبيق Firebase
  • توزيع تطبيقات Firebase تنبيهات جديدة iOS SDK

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

يتعلم أكثر

لدي سؤال؟

الإبلاغ عن المشكلات