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 جديدًا
- سجّل الدخول إلى Firebase.
- في وحدة تحكم Firebase ، انقر على إضافة مشروع ، ثم قم بتسمية مشروعك "Firebase Codelab."
لست بحاجة إلى تمكين Google Analytics لهذا المشروع.
- انقر فوق إنشاء مشروع .
أضف التطبيق إلى 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
- افتح ملف Podfile في نفس الدليل
cd firebase-appdistribution-ios/start Open Podfile
- أضف السطر التالي إلى ملفك الشخصي:
بودفيلي
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. يمكنك أيضًا تنزيل هذا الملف في أي وقت من صفحة إعدادات مشروعك.
في ملف AppDistributionExample/AppDelegate.swift
استورد Firebase أعلى الملف
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
لعرض حوار تنبيهات تمكين مُبنى مسبقًا للمختبرين الذين لم يقوموا بعد بتمكين التنبيهات ، ثم التحقق من توفر بنية جديدة. يقوم المختبرين بتمكين التنبيهات عن طريق تسجيل الدخول إلى حساب لديه حق الوصول إلى التطبيق في توزيع التطبيقات. عندما يتم استدعاؤها ، تقوم الطريقة بتفعيل التسلسل التالي:
- للتحقق مما إذا كان المختبِر قد قام بتمكين التنبيهات. إذا لم يكن كذلك ، يعرض حوارًا تم إنشاؤه مسبقًا يطالبهم بتسجيل الدخول إلى توزيع التطبيقات باستخدام حساب Google الخاص بهم.
تمكين التنبيهات هو عملية لمرة واحدة على جهاز الاختبار وتستمر عبر تحديثات تطبيقك. تظل التنبيهات ممكّنة على جهاز الاختبار حتى يتم إلغاء تثبيت التطبيق ، أو حتى يتم استدعاء طريقة signOutTester
. راجع الوثائق المرجعية للطريقة ( Swift أو Objective-C ) لمزيد من المعلومات.
يمكنك تضمين 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)" كوجهة للإصدار ، ثم حدد المنتج> أرشيف. بمجرد إنشاء الأرشيف ، قم بإنشاء توزيع موقع باستخدام ملف تعريف توزيع التطوير.
عند اكتمال البناء ، يحفظ ملف IPA وبعض ملفات السجل في المجلد الذي تحدده. تقوم بتوزيع ملف IPA على المختبرين في الخطوات التالية.
إذا واجهت مشكلات في إنشاء تطبيقك ، فراجع مستندات توقيع الرموز من Apple للتعرف على خطوات استكشاف الأخطاء وإصلاحها.
وزع تطبيقك على المختبرين
لتوزيع تطبيقك على المختبرين ، قم بتحميل ملف IPA باستخدام وحدة تحكم Firebase:
- افتح صفحة توزيع التطبيق لوحدة تحكم Firebase. حدد مشروع Firebase الخاص بك عندما يُطلب منك ذلك.
- اضغط على البدء
- في صفحة الإصدارات ، حدد التطبيق الذي تريد توزيعه من القائمة المنسدلة.
- اسحب ملف IPA الخاص بتطبيقك إلى وحدة التحكم لتحميله.
- عند اكتمال التحميل ، حدد مجموعات المختبرين والمختبرين الفرديين الذين ترغب في تلقي الإصدار. (أضف بريدك الإلكتروني لتلقي الدعوة.) ثم أضف ملاحظات الإصدار للبنية. راجع إدارة المختبرين لمعرفة المزيد حول إنشاء مجموعات المختبرين.
- انقر فوق توزيع لإتاحة الإصدار للمختبرين.
أضف نفسك كمختبِر للإصدار
في وحدة تحكم Firebase ، يمكنك الآن رؤية المختبرين الذين أضفتهم ضمن إصدار تطبيقك.
نظرًا لتضمين عنوان بريدك الإلكتروني ، ستتلقى بريدًا إلكترونيًا من Firebase App Distribution يدعوك لاختبار التطبيق. أنت الآن المختبِر الأول! تابع القسم أدناه للحصول على الإعداد كمختبِر على جهاز الاختبار الخاص بك.
سجل جهاز الاختبار الخاص بك
ستحتاج أولاً إلى تسجيل جهاز الاختبار الخاص بك لتنزيل واختبار إصدار Ad Hoc.
- على جهاز اختبار iOS الخاص بك ، افتح البريد الإلكتروني المرسل من Firebase App Distribution وانقر على رابط البدء. تأكد من فتح الرابط في Safari.
- في تطبيق الويب الخاص باختبار Firebase App Distribution الذي يظهر ، سجّل الدخول باستخدام حساب Google الخاص بك وانقر فوق قبول الدعوة.
الآن ، سترى الإصدار الذي تمت دعوتك إليه.
- انقر فوق Register device (تسجيل الجهاز) لمشاركة UDID الخاص بك مع Firebase حتى تتمكن من تحديث ملف تعريف توفير التطبيق الخاص بك لاحقًا.
- اتبع التعليمات وانتقل إلى الإعدادات لتنزيل ملف التعريف ومشاركة UDID الخاص بك.
الآن ، عندما تعود إلى توزيع التطبيقات ، يتم وضع علامة على الإصدار الآن على أنه "مسجل الجهاز":
تمت الآن مشاركة UDID الخاص بالاختبار مع المطور. يعود الأمر الآن للمطور لبناء نسخة جديدة من التطبيق المختبِر.
عرض معلومات المختبرين في وحدة التحكم
مرة أخرى في عرض المطور في وحدة تحكم Firebase ، سيظهر المختبِر كـ "مقبول" ضمن الإصدار:
ستحصل بعد ذلك أيضًا على بريد إلكتروني كمطور إذا لم يكن الجهاز الذي يستخدمه مدرجًا بالفعل في ملف تعريف التوفير. سيُعلمك هذا برقم UDID الجديد الذي تحتاج إلى إضافته. لديك أيضًا خيار تصدير جميع UDIDs كملف نصي.
- لتصدير جميع UDIDs ، افتح علامة التبويب المختبرون والمجموعات.
- انقر على "تصدير Apple UDIDs".
يجب أن يحتوي الملف على UDID لجهاز الاختبار الخاص بك.
Device ID Device Name Device Platform
1234567890 tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen ios
عندما تتلقى إحدى رسائل البريد الإلكتروني هذه ، قم بتحديث ملف التوفير الخاص بك باستخدام UDID ووزع تصميمًا جديدًا على المختبرين لديك باتباع الخطوات التالية:
- أضف الأجهزة إلى بوابة مطوري Apple الخاصة بك.
- الخيار 1: استيراد معرفات UDID للجهاز كملف CSV. في علامة التبويب المختبرون والمجموعات في لوحة معلومات توزيع التطبيق ، حدد جميع المختبرين ، ثم انقر على تصدير معرفات Apple UDID لتنزيل ملف CSV. بعد ذلك ، قم باستيراد الملف إلى حساب مطور Apple الخاص بك باستخدام خيار تسجيل أجهزة متعددة. راجع وثائق Apple لمعرفة المزيد. لاحظ أن حساب مطور Apple الخاص بك قد يسمح لك فقط باستيراد عدد محدود من الأجهزة سنويًا.
- الخيار 2: جمع وإدخال UDIDs عن طريق البريد الإلكتروني. في صفحة إضافة أجهزة في بوابة مطوري Apple ، قم بتسجيل UDID الجديد المحدد في البريد الإلكتروني الذي تلقيته.
- أضف الأجهزة المسجلة إلى ملف تعريف التزويد الخاص بك.
- قم بتنزيل ملف التوفير واستخدمه لإعادة إنشاء تطبيقك. إذا كنت تقوم بإعادة البناء فقط لتحديث الأجهزة المسجلة ، فلا تقم بتحديث رقم الإصدار أو الإصدار.
- أعد توزيع تطبيقك من وحدة تحكم Firebase أو CLI. إذا كنت قد وزعت بالفعل بنية بنفس رقم الإصدار والإصدار ، فإن مستخدمي الأجهزة المسجلة حديثًا فقط هم الذين يتلقون رسائل إعلام بالبريد الإلكتروني.
قم بتنزيل الإصدار من جهاز الاختبار
يحتوي الإصدار الآن على UDID لجهاز الاختبار ، لذلك يمكن لجهاز الاختبار تنزيل التطبيق وتثبيته. يرسل App Distribution بريدًا إلكترونيًا إلى المختبرين عند إضافة UDID الخاص بهم إلى إصدار جديد.
- على جهاز الاختبار ، ارجع إلى تطبيق اختبار توزيع التطبيقات على الويب باستخدام الرابط الموجود في البريد الإلكتروني ، أو الرمز الموجود على الشاشة الرئيسية للجهاز.
عندما تنتقل إلى تطبيق codelab UDID ، يمكنك أن ترى أن الإصدار جاهز للتنزيل.
- إذا كنت تستخدم جهازًا ماديًا ، فاضغط على تنزيل ، ثم قم بتثبيت التطبيق وتشغيله!
- عند بدء تشغيل التطبيق ، سيطلب منك تمكين تنبيهات البناء الجديد. حدد "تشغيل"
- ثم سيطلب منك تسجيل الدخول. انقر فوق "متابعة".
- تسجيل الدخول باستخدام حساب المختبر الخاص بك.
- ستتم إعادتك إلى التطبيق. لن تضطر إلى تسجيل الدخول أو قبول التنبيهات في المرة القادمة التي تقوم فيها بتشغيل التطبيق.
وزع تحديثًا على المختبرين
- قم بتحديث رقم الإصدار الخاص بك إلى "2".
- حدد "أي جهاز iOS (arm64)" كوجهة بناء ، و Product-> Archive. بمجرد إنشاء الأرشيف ، قم بإنشاء توزيع موقع باستخدام ملف تعريف توزيع التطوير.
- عند اكتمال البناء ، يحفظ ملف IPA وبعض ملفات السجل في المجلد الذي تحدده. قم بتحميل IPA الجديد هذا في وحدة تحكم Firebase ، وأضف بريدك الإلكتروني كمختبِر مرة أخرى وقم بالتوزيع.
اختبار تنبيهات البناء
- تأكد من إغلاق التطبيق إذا كان مفتوحًا. أعد تشغيل التطبيق.
- عند إعادة تشغيل التطبيق ، يجب أن تتلقى تنبيهًا "يتوفر إصدار جديد".
- انقر فوق "تحديث" لتلقي أحدث إصدار.
- انقر فوق "تثبيت" في الشاشة التالية.
- تهانينا! كنت قادرًا على تحديث تطبيقك باستخدام التنبيهات المدمجة.
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
الخطوات التالية
يتعلم أكثر
لدي سؤال؟
الإبلاغ عن المشكلات