نسخه جدید اپ iOS فایبرنت که تموم شد، برای تست گرفتن رو چندتا دیوایس مختلف و بچههایی که داخل تیم یا دوستایی که بیرون تیم بودن باید یه راه خوب پیدا میکردم.
وقتی که روی اندروید کار میکنید، راه حل مختلفی وجود داره! راحتترین راهش اینه که یه بیلد APK بگیری، بفرستیش واسه کسایی که میخوای، اونا هم اگه باگی پیدا کنن و یا بخوان نتیجه تست رو بهتون میگن به راحتی به اطلاعاتون میرسونن. البته میتونین از ابزارهای دیگههم استفاده کنین، مثل سرویس تست Firebase یا شرکتای دیگه که ازین خدمات میدن.
اما وقتی روی iOS کار میکنی، معمولا یه انتخاب بیشتر نداری؛ اونم سرویسیه که خود iTunes بهت میده و اسمشم هست TestFlight.
در این پست میخوام درمورد آماده کردن اپ و انجام فرآیند تستفلایت صحبت کنم. پس کمربندهاتون رو برای یه پرواز لذتبخش ببنیدن.
فهرست
- ابزار TestFlight چیست؟
- توجه پیش از شروع
- آماده سازی اپ برای TestFlight
- تعریف کاربران تست داخلی
- ایجاد یک Test Case
- تست Beta توسط کاربر
- لغو نسخه تست
- جمعبندی
ابزار TestFlight چیست؟
تستفلایت یا TestFlight ابزاریه که توسط Apple توسعه داده شده، تا شما بتونید نسخه تستی اپلیکیشنتون رو در اختیار کاربرانتون یا همون beta userها قرار بدین. توجه داشته باشین که این سرویس کاملا با انتشار اپ روی اپستور فرق میکنه و جداست. شما فقط یه نسخه رو برای یکسری از کاربران مشخصی که میشناسید منتشر میکنید تا براتون تست بگیرن، و درواقع بصورت پابلیک یا عمومی در دسترس کسی قرار نمیگیره.
وقتی که شما یه نسخه تستی از اپتون رو روی تستفلایت میفرستین، و اونها ۹۰ روز (قبلا ۶۰ روز بوده) فرصت دارن تا اپ شمارو تست کرده و بهتون فیدبک بدن.
کمتر حرف بزنیم و وارد بخش عملی بشیم.
توجه پیش از شروع
- برای استفاده از این سرویس نیازه که حتما اکانت توسعهدهنده Individual یا Enterprise داشته باشین.
- اگر از xcode غیر 9.3 استفاده میکنید، ممکنه برخی منوهایی که در این پست میبینید با چیزی که شما دارین فرق کنه. نگران نباشید، فرآیند کلی همیشه همینه.
آماده سازی اپ برای TestFlight
قبل از اینکه هرکاری بکنیم، لازمه که دو مشخصه Version و Build اپمون رو ست کنیم. از Navigator اپ رو انتخاب کرده و از لیست Targest اپ رو انتخاب کنید. در بخش Identity مشخصات اپ رو باید وارد کنیم. متاسفانه اپل اجازه نمیده که برای version هیچ نامی از نوع String بنویسیم بلکه فقط باید از متد Semantic Versioning پیروی کنیم. برای مثال نمیتونیم بنوسیم 2.0 beta
بلکه باید بنویسیم 2.0.0
یا هر ورژن دیگهای که مد نظرتون هست. اگه راجع به نوع شماره گذاری ورژن اطلاع ندارید بهتره داکیونت خود سیمنتک رو بخونید. نسخه build هم که احتمالا میدونید، به ازای هربار بیلد و انتشار باید اون رو increment کرده یا همون افزایش بدید.
در نهایت من برای اینکه نسخه بتا رو مشخص کنم در Display Name عبارت beta
رو استفاده کردم. (هواستون باشه بعدا برای ریلیز اصلی beta رو بردارید)
از منوی نوار ابزا توسعه، دیوایسی که میخوام اپ رو منتشر کنیم رو میگذاریم روی Generic iOS Device
.
بعد هم از نوار ابزار اصلی، منو Product گزینه Archive رو انتخاب کرده و صبر میکنیم تا اپمون رو پکیج کنه.
بعد از بیلد پنجره Orginizer باز میشه خودش. در صفحه اپمون که بیلد شده رو میبینید. نسخهای که تمایل به بیلد دارید رو انتخاب کرده و بعد باید روی دکمه Upload to App Store
کلیک کنید. (البته میتونید از نوار ابزار اصلی، منوی Window به پنجره Organizer دسترسی پیدا کنید)
بعدش هم دونه دونه پنجرههایی که باز میشه رو اکسپت کنید تا بره واسه ارسال به اپستور.
و درنهایت که اپتون با موفقیت ارسال شد این پیغام رو میبینید.
در مرحله بعد باید بریم سراغ آماده سازی خود iTunesConnect.
تعریف کاربران تست داخلی
در تست فلایت دو نوع کاربر تست داریم، Internal Tester (که در نسخه جدید itunes تبدیل شده به iTunes Users
) و External Users
.
- iTunes users: کاربرانی هستن، که معمولا در تیم شما قرار دارند یا افرادی هستن که متقابلا همدیگه رو میشناسین و بهم اعتماد دارین. شما میتونید حداکثر تا ۲۵ نفر رو برای تست بتا انتخاب کنید. این افراد بدون هیچ معطلی و Review، میتونن اپتون و دریافتو تست کرده و درنهایت feedback بدن.
- External Users: کسایی هستن که در تیم شما وجود ندارن، بلکه یکسری از کاربرانتون هستن که اعلام آمادگی کردن که تمایل دارن در تستهاتون شرکت کنن و البته الزاما در داخل تیم توسعه شما نیستن. شما در هربار تست میتونید تا ۱۰هزار کاربر انتخاب کنید (قبلا ۶۰۰۰ بود). اپ قبل از اینکه بدست این کاربران برسه باید توسط اپل Review و تست بشه تا مشکل امنیتی نداشته باشه، و بعد از اون در اختیار کاربران شما قرار میگیره. فرآیندی مثل انتشار اپ روی اپستور داره.
برای تعریف کاربران تست داخلی یا Internal اول وارد پنل itunesconnect.apple.com بشید و سپس از منوها به گزینه Users Role بروید.
در این صفحه لازمه که شما افرادی که میخواهید در تستهای Internal شرکت میکنند رو ثبت کنید. روی علامت +
کلید کنید.
در صفحه افزودن کاربر جدید مشخصات کاربر به همراه Apple IDشون رو ثبت کنید.
در صفحه بعد باید Role
یا نقش این کابر جدید رو تعریف کنید. حداقل Roleی که میتونه در تست مشارکت داشته باشه Marketer هست.
یادتون نره که حتما کاربر رو به اپ مورد نظرتون assign کنید، البته اگه چندتا اپ دارین و فرقی براتون نمیکنه و تمایل دارین به همشون دسترسی مشابه رو داشته باشه، بزارید همون گزینه All Apps بمونه.
و بعدش میزان دسترسی که مد نظرتون هست رو در براش ست کنید. (البته اگه گزینه Marketer رو انتخاب کردهبودید)
تواناییهای هرکدوم از نقشهارو میتونید در جدول زیر ببینید:
خب کاربر به لیست اضافه شد. بعد از اضافه شدن، کاربر مورد نظر باید ایمیلی که براش اومده رو تایید کنه تا به عنوان کاربر Role مورد نظر، ثبت نهایی شه. شما از همین صفحه میتونید Role و برخی مشخصات کاربر رو ویرایش کنید.
ایجاد یک Test Case
بعد از اینکه کاربر بطور کامل تایید و فعال شد، از پنل itunesconnect به بخش MyApps رفته و اپ خودتون رو انتخاب کنید. در این صفحه وارد تب Activty بشین و مطمئین بشید که اپتون در حالت Process
نباشه و فرآیند بررسی و پردازش اولیهش تموم شده باشه.
سپس وارد بخش TestFlight میشیم. از دسته Builds روی iOS کلیک میکنیم تا لیست اپهای قابل تست رو بیاره. همونطور که میبینید اپی رو که اضافه کردیم کنارش یه Warning داده و گفته Missing Compliance. روش کلیک میکنیم تا مواردی که ازمون میخواد رو تایید کنیم. این اطلاعات مربوط به این میشه که آیا اپلیکیشن شما Encryption و امنیت اطلاعات کاربر رو رعایت کرده؟ و آیا با قوانین ایالات متحده منافاتی نداره؟ و چیزای مثل این، که روی همهي nextها میزنیم بره پی کارش.
خب حالا اپمون آمادهست برای انتشار به افرادی که در گروههای تست ما قرار دارند.
کاربران Internal
برای اینکه افرادی که در اینترنال قرار دارند رو مشخص کنید، از دسته Tester & Groups گزینه iTunes Connect Users رو انتخاب میکنیم. با کلیک روی علات +
میتونید افرادی رو که میخواید اپ بتا برای تست رو دریافت کنند انتخاب کنید. این افراد همونهای هستند که در بخش User Roles قبلا تعریف و فعالشون کردیم.
کاربران External
مثل سری قبل، از دسته Tester & Groups گزینه Add External Tester رو انتخاب میکنیم، در پنجرهای که باز میشه، بهمون میگه که واسه گروهی که قراره اپ رو تست کنن یه اسم بنویسیم.
حالا باید تستر جدید اضافه کنیم، کافیه در گروه جدیدمون روی Add Tester
کلیک کنیم. در صفحه جدید بهمون این امکان رو میده که به ۳ روش کاربر تست اضافه کنیم.
- New Tester : که مثل حالت تعریف کردن internal tester هست.
- Existing Tester : میتونیم از بین کاربرای اینترنال به این گروه کاربر اضافه کنیم. فکر کنین تو شرکتتون ۵۰تا کارمند دارین، فقط ۲۰ نفرشون میتونن تو اینترنال شرکت کنن، الباقی رو باید به همین روش به عنوان کاربر اکسترنال اضافه کنید. (توجه کنید که کاربری که در حالت Internal انتخاب کردید، نمیتونه در گروه External هم حضور داشته باشه.)
- CVS List : و گزینه سوم که بهمون این امکان رو میده تا از طریق یا فایل CSV کاربرانمون رو ایمپورت کنین. فرض کنین یه فرم گذاشتین تو سایتتون تا کاربرای که تمایل دارن تو تست شرکت کنند رو بیارون تو تست فلایت، مثلا ۵هزار کاربر ثبتنام کردن، بجای اینکه دستی دونه دونه اضافه کنید، با این روش تا ۱۰ هزار کاربر رو میتونید اضافه کنید.
اگه خواستید با CSV کاربر اضافه کنید، ازین قالب CSV استفاده کنید تا فرمت فایلتون صحیح باشه.
بعد از کلیک روی Add New Tester به صفحهای رسیدم که بصورت دستی کاربران تست External رو باید وارد کنیم. برای مثال باز مشخصات خودم رو مینویسم:
و میبینید که من به لیست External اضافه شدم.
وارد تب Build شده و روی تب +
کلیک میکنیم. در پنجرهای که باز میشه، اون بیلد از اپمون رو که دوست داریم ازش تست اکسترنال بگیریم انتخاب میکنیم.
اگر اپ احتیاج به Sign in داشته باشه، مشخصات یه اکانت تست رو توش مینویسیم تا کابرا در sign-in مشکل نداشته باشن.
و همونطور هم که از اسکرینشات پایین برمیاد، یه توضیح باید واسه رویوو کننده و البته کاربر تست بنویسیم (اگه احتیاج به توضیحی بود البته).
تیک Automatically notify testers
رو هم بزارین باشه تا بعد از اینکه اپ آماده تست شد خود اپل به اونا خبر بده که برن برای تست. (معمولا بصورت ایمیلی یا نوتیفیکیشن بهشون خبر میده)
و در نهایت اپتون میره برای Reviewو در صورتی که (انشاالله) بدون مشکل تایید بشه، میرسه دست کاربرانتون برای تست. تقریبا بین ۱۲ تا ۲۴ ساعت (اگر مشکلی نباشه) اپتون برای تست بتا تایید شده و در اختیار کاربرا قرار میگیره.
به محض انتشار اپ برای تست، براشون ایمیل و نوتیفیکیشن میره (اگه اون تیک Automatically که گفتم رو زده باشین). کاربرا ۶۰ روز فرصت دارن تا کار تست رو انجام داده و در صورت لزوم feedback بدن.
هنگامی که داشتم این پست رو مینوشتم همزمان هم نسخه تست رو فرستادم بالا، در کمتر از ۶ ساعت تایید شد و در اختیار لیست کاربرای External قرار گرفت.
اطلاعات تست
اگر در حین تعریف تست (احتمالا اولینباری که دارید روند تست رو انجام میدید) به خطای نبود اطلاعات تست برخوردید، باید از بخش App Information گزینه Test Information رو انتخاب کنید و مشخصات خودتون رو وارد کنید. اطلاعاتی مثل ایمیل (برای دریافت feedback)، آدرس وبسایتتون، آدرس قوانین و حریم شخصی در وبسایتتون، مشخصات تماس شما از قبیل نام و شماره تلفن، مجددا همون اکانت تست و توضیحاتی که لازمه.
تست Beta توسط کاربر
اول از همه نیازه تا کاربر اپلیکیشن TestFlight رو از اپستور دریافت و روی دیوایس خودش نصب کنه. کاربر تمامی آپدیتها و نوتفیکیشنها برای تست رو از طریق این اپلیکیشن دریافت میکنه.
اگر احتیاج به لاگین داشت که باید با همون اپلایدی که بعنوان کاربر تست معرفی شده لاگین کنید. ایمیل جهت تایید دریافت نسخه تست به دست شما (کاربر) میرسه به ایمیل رفته و روی دکمه view in TestFlight
کلیک کنید.
اگر اپ تستفلایت روی آیفون نصب بوده، و اکانت اپل IDتون هم بدون مشکل لاگین باشه، این صفحه در اپلیکیشن TestFlight براتون ظاهر میشه که باید Accept کرده و سپس اپ رو نصب کنید.
در بعضی موارد بعد از کلیک روی اون دکمه آبی view in TestFlight، به سمت سایت اپل هدایت میشید، ازتون درخواست میکنه که لاگین کنید، قوانینش رو تایید کنید و بعد از تایید شمارو میفرسته به یه صفحه که یه کد (معمولا) ۸ حرفی داره، اون رو کپی کنید.
اگر اپ تستفلایت روی آیفون نصب بوده، و اکانت اپل IDتون هم بدون مشکل لاگین باشه، این صفحه در اپلیکیشن TestFlight براتون ظاهر میشه که باید Accept کرده و سپس اپ رو نصب کنید.
بعد از تایید و نصب، نسخه تست با نقطه قرمزی که کنارش مشخص شده، روی صفحه اپهاتون ظاهر میشه. اگه قبلا یه نسخه نصب کرده باشید و نسخه جدید روی اون نصب کنید، نقطه آبی کنارش ظاهر میشه.
در صورتی که در اپلیکیشن باگ یا مشکلی پیدا کردین، یا که پیشنهادی داشتین، از همون اپ TestFlight میتونید به توسعه دهنده FeedBack
رو ارسال کنید.
باقی چیزهایی هم که در Test Information ثبت کرده بودیم از داخل همین صفحه در اختیار کاربر تست هست و میتونه اونهارو مشاهده کنه.
لغو نسخه تست
درصورتی که بعد یه مدت زمان مشخص، مثلا چند هفته یا یکی دو ماه تشخیص دادین که دیگه کافیه و نیازی به ادامه تست نیست، و یا موردی در اپ وجود داشت که نیاز بود هرچه سریعتر نسخه تست رو از دست همه کاربران تستتون خارج کنید. فقط کافیه وارد بخش TestFlight شده. به دسته Builds و بخش iOS رفته، نسخه مورد نظرتون رو انتخاب کنید. در نهایت روی دکمه Expire Build
کلیک کرده و تاییدش کنید.
اینجوری اپتون از دسترس آپدیت خارج میشه و دیگه نمیتونن بهش دسترسی داشته باشه.
جمعبندی
میدونم خیلی طولانی و گیج کننده بود، ولی یکبار که فرآیندش رو طی کنید، همهچیز براتون روال میشه. این بهترین، سریعترین، امنترین و تمیزترین کاریه که شما میتونید برای تست بتا انجام بدین.
اگه تمایل داشتین راجع به تست فلایت بیشتر بدونید، بهترین منبع داکیومنت خودشه که میتونید از صفحه TestFlight Beta Testing Documentation اون رو مطالعه کنید. صفحه اپل هم خودش بطور خلاصه راجع به این سرویس در این صفحه صحبت کرده، و هرچی منبع و مقاله و ویدئو راجع به تستفلایت هست رو آورده، مثل ویدئوِ TestFlight Traning Process.
این پست حاصل تجربه شخصی من از تست فلایت و خوندن و دیدن چند مقاله و ویدئو بوده. امیدوارم تو این پست کامل و جامع راجع به سرویس TestFlight صحبت کرده و تمام گوشههای تاریکش رو براتون روشن کرده باشم.
تمامی فرآیند انتشار و آزمون تست رو در روند توسعه اپلیکیشن فایبرنت انجام دادیم. از تیم خوبم برای پشتیبانی و تست تمامی مراحل و نسخههای بتا تشکر میکنم. مرسی از مهسا بخاطر تستهای دقیقش، از مهدی بابت همراهی و راهنماییهاش و همچنین فرامرز (برای توسعه بکاند) و شایان (برای طراحی UI).
اگه سوال یا موردی بود، مثل همیشه در توییتر یا در تلگرام میتونیم باهم در ارتباط باشیم. 😉🍷