1. بررسی اجمالی
به ادغام SDK توزیع برنامه Firebase در لبه کد برنامه iOS خود خوش آمدید. در این لبه کد، شما SDK توزیع برنامه را به برنامه خود اضافه میکنید تا هشدارهای درونبرنامهای را به آزمایشکنندگان خود در زمانی که ساختهای جدید برای دانلود در دسترس هستند، نمایش دهید. یاد خواهید گرفت که چگونه از پیکربندی اولیه و پیکربندی سفارشی استفاده کنید تا آزمایشکنندگان خود را برای دریافت بهروزرسانیها به سیستم وارد کنند. سپس یک نسخه جدید را به App Distribution فشار می دهید و یک هشدار ساخت جدید را درست در برنامه راه اندازی می کنید.
چیزی که یاد خواهید گرفت
- نحوه استفاده از App Distribution برای توزیع یک برنامه پیش از انتشار بین آزمایش کنندگان زنده
- چگونه App Distribution iOS SDK را در برنامه خود ادغام کنید
- نحوه هشدار دادن به تستر هنگامی که یک بیلد پیش از انتشار جدید آماده نصب است
- چگونه می توان SDK را مطابق با نیازهای آزمایشی منحصر به فرد خود سفارشی کرد
آنچه شما نیاز دارید
- Xcode 12 (یا بالاتر)
- CocoaPods 1.9.1 (یا بالاتر)
- یک حساب توسعه دهنده اپل برای توزیع Ad Hoc
- یک دستگاه iOS فیزیکی برای آزمایش. ( برنامه شبیه ساز iOS برای بسیاری از نرم افزارهای کد کار می کند، اما شبیه سازها نمی توانند نسخه های منتشر شده را دانلود کنند.)
چگونه از این آموزش استفاده خواهید کرد؟
تجربه خود را از ساخت اپلیکیشن های iOS چگونه ارزیابی می کنید؟
2. پروژه کنسول Firebase را ایجاد کنید
پروژه Firebase جدید اضافه کنید
- وارد Firebase شوید.
- در کنسول Firebase، روی Add Project کلیک کنید و سپس نام پروژه خود را "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 آن یا با کلیک بر روی این لینک دانلود کنید.
Dependencies را دانلود کنید و پروژه را در Xcode باز کنید
- Podfile را در همان دایرکتوری باز کنید
cd firebase-appdistribution-ios/start Open Podfile
- خط زیر را به پادفایل خود اضافه کنید:
پادفایل
pod 'Firebase/AppDistribution'
pod update
در فهرست پروژه اجرا کنید و پروژه را در Xcode باز کنید.
pod install --repo-update xed .
Bundle Identifier را برای مطابقت با برنامه Firebase خود بهروزرسانی کنید
در منوی سمت چپ، روی AppDistributionExample دوبار کلیک کنید. سپس، برگه General را پیدا کنید و شناسه بسته را برای مطابقت با شناسه بسته برنامه 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 خود وارد App Distribution شوند.
فعال کردن هشدارها یک فرآیند یکبار مصرف در دستگاه آزمایشی است و در بهروزرسانیهای برنامه شما ادامه دارد. هشدارها تا زمانی که برنامه حذف نصب نشود یا تا زمانی که متد 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 آزمایش میکنید.
اپلیکیشن خود را بسازید
هنگامی که آماده توزیع نسخه پیش از انتشار برنامه خود برای آزمایش کنندگان هستید، "Any iOS Device (arm64)" را به عنوان مقصد ساخت و Product->Archive را انتخاب کنید. پس از ایجاد بایگانی، یک توزیع امضا شده با نمایه توزیع توسعه بسازید.
هنگامی که ساخت به پایان رسید، یک فایل IPA و برخی فایل های گزارش را در پوشه ای که شما مشخص کرده اید ذخیره می کند. شما فایل IPA را در مراحل زیر بین آزمایش کنندگان خود توزیع می کنید.
اگر در ساخت برنامه خود با مشکل مواجه شدید، برای مراحل عیب یابی به اسناد کدنویسی اپل مراجعه کنید.
برنامه خود را بین آزمایش کنندگان توزیع کنید
برای توزیع برنامهتان بین آزمایشکنندگان، فایل IPA را با استفاده از کنسول Firebase آپلود کنید:
- صفحه توزیع برنامه کنسول Firebase را باز کنید. وقتی از شما خواسته شد پروژه Firebase خود را انتخاب کنید.
- Get Started را فشار دهید
- در صفحه Releases، برنامه مورد نظر برای توزیع را از منوی کشویی انتخاب کنید.
- فایل IPA برنامه خود را به کنسول بکشید تا آپلود شود.
- هنگامی که آپلود کامل شد، گروه های آزمایش کننده و آزمایش کننده های فردی را که می خواهید ساخت را دریافت کنید، مشخص کنید. (برای دریافت دعوت نامه، ایمیل خود را اضافه کنید.) سپس، یادداشت های انتشار را برای ساخت اضافه کنید. برای اطلاعات بیشتر درباره ایجاد گروههای آزمایشکننده ، مدیریت آزمایشکنندگان را ببینید.
- برای در دسترس قرار دادن ساخت در دسترس آزمایش کنندگان، روی توزیع کلیک کنید.
خود را به عنوان آزمایش کننده به نسخه اضافه کنید
در کنسول Firebase، اکنون میتوانید آزمایشکنندههایی را که در نسخه برنامه خود اضافه کردهاید ببینید.
از آنجایی که آدرس ایمیل خود را وارد کرده اید، ایمیلی از Firebase App Distribution دریافت خواهید کرد که از شما دعوت می کند برنامه را آزمایش کنید. اکنون شما اولین آزمایش کننده هستید! بخش زیر را ادامه دهید تا به عنوان آزمایش کننده در دستگاه آزمایشی خود راه اندازی شوید.
دستگاه تست خود را ثبت کنید
برای دانلود و آزمایش نسخه Ad Hoc ابتدا باید دستگاه آزمایشی خود را ثبت کنید.
- در دستگاه تست iOS خود، ایمیل ارسال شده از Firebase App Distribution را باز کنید و روی پیوند Get Started ضربه بزنید. حتما لینک را در سافاری باز کنید.
- در برنامه وب آزمایش کننده توزیع برنامه Firebase که ظاهر می شود، با حساب Google خود وارد شوید و روی پذیرش دعوت ضربه بزنید.
اکنون نسخه ای را که به آن دعوت شده اید می بینید.
- روی ثبت دستگاه ضربه بزنید تا UDID خود را با Firebase به اشتراک بگذارید تا بتوانید بعداً نمایه تهیه برنامه خود را بهروزرسانی کنید.
- دستورالعمل ها را دنبال کنید و برای دانلود نمایه و اشتراک گذاری UDID خود به تنظیمات بروید.
اکنون، وقتی به App Distribution باز میگردید، نسخه بهعنوان «دستگاه ثبتشده» علامتگذاری میشود:
UDID آزمایشگر اکنون با توسعه دهنده به اشتراک گذاشته شده است. اکنون بر عهده توسعه دهنده است که تستر نسخه جدیدی از برنامه را بسازد.
اطلاعات تستر را در کنسول مشاهده کنید
در نمای توسعهدهنده در کنسول Firebase، آزمایشکننده بهعنوان «پذیرفتهشده» در زیر نسخه نمایش داده میشود:
اگر دستگاهی که از آن استفاده میکنید قبلاً در نمایه تهیهکننده گنجانده نشده باشد، سپس به عنوان برنامهنویس ایمیلی دریافت خواهید کرد. با این کار UDID جدیدی که باید اضافه کنید به شما اطلاع می دهد. شما همچنین می توانید تمام UDID ها را به عنوان یک فایل متنی صادر کنید.
- برای صادر کردن همه UDID ها، تب Testers & Groups را باز کنید.
- روی «Export Apple UDIDs» کلیک کنید.
فایل باید حاوی UDID دستگاه آزمایشی شما باشد.
Device ID Device Name Device Platform
1234567890 tester.app.distribtuion@gmail.com - iPhone SE 2nd Gen ios
هنگامی که یکی از این ایمیلها را دریافت میکنید، نمایه تدارکات خود را با UDID بهروزرسانی کنید و با دنبال کردن این مراحل، ساخت جدیدی را بین آزمایشکنندگان خود توزیع کنید:
- دستگاه ها را به پورتال توسعه دهنده اپل خود اضافه کنید.
- گزینه 1: UDID های دستگاه را به عنوان فایل CSV وارد کنید. در برگه آزمایشکنندگان و گروههای داشبورد توزیع برنامه، همه آزمایشکنندگان را انتخاب کنید، سپس روی Export Apple UDIDs کلیک کنید تا یک فایل CSV دانلود شود. سپس، فایل را با استفاده از گزینه Register Multiple Devices به حساب توسعه دهنده اپل خود وارد کنید. برای کسب اطلاعات بیشتر به مستندات اپل مراجعه کنید. توجه داشته باشید که حساب توسعه دهنده اپل شما ممکن است تنها به شما اجازه دهد تعداد محدودی دستگاه را در سال وارد کنید.
- گزینه 2: UDID ها را از طریق ایمیل جمع آوری و وارد کنید. در صفحه Add Devices پورتال توسعه دهندگان اپل، UDID جدید مشخص شده در ایمیل دریافتی خود را ثبت کنید.
- دستگاه های ثبت شده را به نمایه تامین کننده خود اضافه کنید.
- نمایه ارائه را دانلود کنید و از آن برای بازسازی برنامه خود استفاده کنید. اگر فقط برای بهروزرسانی دستگاههای ثبتشده بازسازی میکنید، شماره ساخت یا نسخه را بهروزرسانی نکنید.
- برنامه خود را از کنسول Firebase یا CLI دوباره توزیع کنید . اگر قبلاً ساختنی را با همان شماره ساخت و نسخه توزیع کردهاید، فقط کاربران دستگاههای تازه ثبتنام شده ایمیلهای اعلان دریافت میکنند.
نسخه را از دستگاه تست دانلود کنید
اکنون نسخه دارای UDID دستگاه آزمایشی است، بنابراین دستگاه آزمایشی میتواند برنامه را دانلود و نصب کند. هنگامی که UDID آنها به نسخه جدید اضافه می شود، توزیع برنامه یک ایمیل برای آزمایش کنندگان ارسال می کند.
- در دستگاه آزمایشی، با استفاده از پیوند موجود در ایمیل یا نماد موجود در صفحه اصلی دستگاه، به برنامه وب آزمایش کننده توزیع برنامه بازگردید.
وقتی به برنامه UDID codelab هدایت میشوید، میبینید که نسخه آماده دانلود است.
- اگر در یک دستگاه فیزیکی هستید، دانلود را فشار دهید، سپس برنامه را نصب و اجرا کنید!
- وقتی برنامه شروع به کار کرد، از شما می خواهد که هشدارهای ساخت جدید را فعال کنید. "روشن کردن" را انتخاب کنید
- سپس از شما میخواهد وارد سیستم شوید. روی «ادامه» کلیک کنید.
- با حساب آزمایشی خود وارد شوید.
- شما به برنامه بازگردانده می شوید. دفعه بعد که برنامه را اجرا می کنید مجبور نخواهید بود وارد شوید یا هشدارها را بپذیرید.
یک بهروزرسانی را بین آزمایشکنندگان خود توزیع کنید
- شماره ساخت خود را به "2" به روز کنید.
- "Any iOS Device (arm64)" را به عنوان مقصد ساخت و Product->Archive را انتخاب کنید. پس از ایجاد آرشیو، یک توزیع امضا شده با نمایه توزیع توسعه بسازید.
- هنگامی که ساخت به پایان رسید، یک فایل IPA و برخی فایل های گزارش را در پوشه ای که شما مشخص کرده اید ذخیره می کند. این IPA جدید را در کنسول Firebase خود آپلود کنید، ایمیل خود را دوباره به عنوان آزمایش کننده اضافه کنید و توزیع کنید.
هشدارهای ساخت را آزمایش کنید
- اگر برنامه باز بود، مطمئن شوید که آن را بسته اید. برنامه را مجددا راه اندازی کنید.
- هنگامی که برنامه راه اندازی مجدد می شود، باید یک هشدار "نسخه جدید موجود" دریافت کنید.
- برای دریافت آخرین نسخه روی "به روز رسانی" کلیک کنید.
- در صفحه بعدی روی "نصب" کلیک کنید.
- تبریک می گویم! شما توانستید برنامه خود را با هشدارهای داخلی به روز کنید.
6. ثبت نام تستر را سفارشی کنید
روشهای signInTester/signOutTester و isTesterSignedIn به شما انعطافپذیری بیشتری میدهد تا تجربه ورود به سیستم آزمایشکننده خود را سفارشی کنید، بنابراین بهتر میتواند با ظاهر و احساس برنامه شما مطابقت داشته باشد.
مثال زیر بررسی میکند که آیا آزمایشکننده قبلاً به حساب آزمایشکننده توزیع برنامه Firebase خود وارد شده است، بنابراین میتوانید رابط کاربری ورود به سیستم خود را فقط برای آزمایشکنندگانی که هنوز وارد سیستم نشدهاند نمایش داده شود. پس از اینکه آزمایشکننده وارد سیستم شد، میتوانید سپس با checkForUpdate تماس بگیرید تا بررسی کنید آیا تستر به یک ساخت جدید دسترسی دارد یا خیر.
بیایید بررسی خودکار بهروزرسانیها را در viewDidAppea r با نظر گذاشتن روی تماس checkForUpdate() غیرفعال کنیم.
AppDistributionViewController.swift
override func viewDidAppear(_ animated: Bool) {
// checkForUpdate()
}
در عوض، بیایید checkForUpdate() را در checkForUpdateButtonClicked( ) فراخوانی کنیم.
@objc func checkForUpdateButtonClicked() {
checkForUpdate()
}
اکنون، بیایید متد signInOutButtonClicked() خود را پیاده سازی کنیم که اگر کاربر از سیستم خارج شده باشد، signIn می کند یا اگر قبلاً وارد سیستم شده باشد، از سیستم خارج می شود.
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 App Distribution هشدارهای جدید iOS SDK
مراحل بعدی
بیشتر بدانید
سوالی دارید؟
گزارش مسائل