TestFlight — پلتفرم رسمی اپل برای توزیع بیلدهای پیشانتشار برنامهها بین تستکنندگان. به توسعهدهندگان اجازه میدهد نسخههای بتا را در App Store Connect آپلود کنند، دسترسی را مدیریت کنند و قبل از انتشار بازخورد جمعآوری کنند. طبق Apple Developer Documentation، TestFlight تا ۱۰٬۰۰۰ تستکننده خارجی از طریق لینک عمومی و تا ۱۰۰ تستکننده داخلی از طریق Apple ID پشتیبانی میکند.
نکات اصلی
TestFlight — پلتفرم تست بتا یکپارچه در App Store Connect برای توزیع بیلدهای پیشانتشار برنامهها قبل از انتشار در App Store. توسعهدهندگان بیلدهای بایگانی شده از طریق Xcode را آپلود کرده و بدون نیاز به توزیع دستی فایلهای IPA بین تستکنندگان پخش میکنند.
اپل TestFlight را در سال ۲۰۱۴ برای جایگزینی توزیع Ad Hoc از طریق Provisioning Profiles خریداری کرد. پیش از این، توسعهدهندگان UDID دستگاهها را جمعآوری میکردند، provisioning profile میساختند و IPA را از طریق سرویسهای شخص ثالث توزیع میکردند. TestFlight کل فرآیند را خودکار کرد: تستکننده برنامه بتا را از طریق TestFlight App نصب میکند و توسعهدهنده دسترسی را از طریق رابط وب مدیریت میکند.
طبق WWDC 2024، TestFlight ماهانه بیش از ۲ میلیون نصب آزمایشی را پردازش میکند. این پلتفرم از توزیع در تمام پلتفرمهای اپل از جمله iOS، iPadOS، macOS، tvOS، watchOS و visionOS پشتیبانی میکند و آن را به تنها ابزار یکپارچه تست بتا در اکوسیستم اپل تبدیل میکند.
TestFlight تست را به دو نوع تقسیم میکند: Internal Testing برای اعضای تیم (تا ۱۰۰ شرکتکننده، بیلد بلافاصله پس از آپلود در دسترس است) و External Testing برای کاربران خارجی (تا ۱۰٬۰۰۰ شرکتکننده، نیاز به بررسی Beta App Review). تست داخلی نیاز به نظارت ندارد و آن را برای بررسی سریع بیلدها در داخل تیم ایدهآل میکند.
External Testing امکان دعوت تستکنندگان از طریق ایمیل یا لینک عمومی را فراهم میکند. پس از گذراندن Beta App Review، بیلد برای همه دعوتشدگان قابل دانلود است. برای برنامههایی که برای اولین بار منتشر میشوند، External Testing طبق قوانین App Store Review Guidelines الزامی است.
فرآیند کار TestFlight با بایگانی برنامه در Xcode و آپلود در App Store Connect از طریق Organizer یا Transporter آغاز میشود. پس از آپلود، بیلد بررسی خودکار اعتبار و اسکن امنیتی را پشت سر میگذارد.
تستکنندگان داخلی از طریق TestFlight App اعلان بیلد موجود را دریافت میکنند. آنها میتوانند برنامه را نصب کرده و از طریق رابط داخلی اسکرینشاتها و نظرات متنی بازخورد بدهند. برای تستکنندگان خارجی تأیید Beta App Review لازم است که پس از آن بیلد مانند داخلی توزیع میشود.
TestFlight به طور خودکار معیارهای استفاده را جمعآوری میکند: تعداد نصبها، لاگهای کراش، اسکرینشاتهای دارای حاشیهنویسی و بازخوردها. توسعهدهنده این دادهها را در بخش TestFlight App Store Connect مشاهده میکند. همه دادهها بر اساس نسخههای بیلد تجمیع میشوند که مقایسه پایداری بیلدهای مختلف را آسان میکند.
هر بیلد آپلود شده در TestFlight دارای مدت اعتبار ۹۰ روز است. پس از انقضا، تستکنندگان دیگر نمیتوانند برنامه را نصب یا اجرا کنند. برای ادامه تست، باید بیلد جدیدی با شماره نسخه افزایشیافته آپلود شود. این محدودیت توسعهدهندگان را به بهروزرسانی منظم بیلدها تشویق میکند.
با نزدیک شدن تاریخ انقضا، TestFlight به توسعهدهنده و تستکنندگان اعلان ارسال میکند. اگر بیلد جدید به موقع آپلود نشود، تست قطع میشود و شرکتکنندگان تا ظهور نسخه جدید دسترسی خود را به برنامه از دست میدهند.
تنظیم TestFlight در App Store Connect در بخش TestFlight آغاز میشود. برای راهاندازی حداقل یک بیلد آپلود شده برنامه لازم است. رابط به سه بخش اصلی تقسیم میشود: بیلدها، تستکنندگان داخلی و گروههای خارجی.
تستکنندگان داخلی از طریق Apple ID اضافه میشوند. هر شرکتکننده باید از طریق App Store Connect با نقشی که شامل دسترسی به تست است دعوت شود. پس از دعوت، تستکننده ایمیل دریافت کرده و میتواند برنامه را از طریق TestFlight App روی دستگاه نصب کند.
برای تست خارجی، گروههایی ایجاد میشوند که تستکنندگان را بر اساس سناریوها ترکیب میکنند. هر گروه به بیلدهای خاصی متصل میشود. یک گروه میتواند لینک عمومی برای پیوستن مستقل داشته باشد — این برای پروژههای open-source یا تست بتای انبوه مناسب است. طبق Apple Developer Documentation، لینک عمومی میتواند در هر زمان بدون از دست دادن دسترسی تستکنندگان قبلاً پیوسته لغو شود.
آپلود بیلد در TestFlight از طریق Xcode Organizer پس از بایگانی پروژه انجام میشود. برای آپلود نیاز به حساب Apple Developer Program با حقوق Admin یا App Manager در App Store Connect است.
قبل از آپلود، بیلد باید با Distribution Certificate معتبر امضا شده و دارای Provisioning Profile با توزیع App Store باشد. Xcode با حساب فعال توسعهدهنده از طریق Automatic Signing امضا را به طور خودکار پیکربندی میکند.
# آپلود از طریق xcrun altool (Xcode 15+ از notarytool استفاده میکند)
xcrun notarytool submit MyApp.ipa --apple-id "developer@example.com" --team-id "TEAMID123" --password "@keychain:AC_PASSWORD" --wait
# مستقیماً به App Store Connect آپلود کن
xcrun altool --upload-app -f MyApp.ipa -t ios -u "developer@example.com" -p "@keychain:AC_PASSWORD"
پس از آپلود، بیلد بررسی خودکار را پشت سر میگذارد: اعتبارسنجی باینری، اسکن کد مخرب، بررسی مطابقت با App Store Review Guidelines. معمولاً بررسی از چند دقیقه تا یک ساعت طول میکشد. وضعیت در App Store Connect در بخش TestFlight نمایش داده میشود.
برای CI/CD (GitHub Actions, Bitrise, Jenkins) از xcrun altool یا notarytool برای آپلود مستقیم بیلد بدون Xcode استفاده میشود. کلیدهای احراز هویت در Keychain یا App Store Connect API ذخیره میشوند. Fastlane اکشن upload_to_testflight را برای خودکارسازی کامل فرآیند ارائه میدهد.
دعوت از تستکنندگان در TestFlight به نوع تست بستگی دارد. تستکنندگان داخلی مستقیماً در App Store Connect با Apple ID اضافه میشوند و بلافاصله پس از آپلود به همه بیلدها دسترسی پیدا میکنند. تستکنندگان خارجی از طریق گروهها با تعیین بیلدهای خاص دعوت میشوند.
برای تست خارجی نیاز به گذراندن Beta App Review است — نسخه سادهشده App Review که عملکرد پایه و مطابقت با قوانین را بررسی میکند. اولین بیلد خارجی معمولاً ظرف ۱–۲ روز بررسی میشود، موارد بعدی سریعتر. پس از تأیید، همه تستکنندگان گروه اعلان دریافت میکنند.
لینک عمومی دعوت را ساده میکند: توسعهدهنده لینک را در سایت یا شبکههای اجتماعی منتشر میکند، کاربران روی آن کلیک کرده و به طور خودکار به تست میپیوندند. TestFlight تا ۱۰٬۰۰۰ شرکتکننده در هر گروه خارجی را پشتیبانی میکند و تعداد گروهها نامحدود است. برای هر برنامه میتوان چندین گروه با بیلدهای مختلف تنظیم کرد.
تستکنندگان از طریق TestFlight App با پیوست کردن اسکرینشاتها و حاشیهنویسی بازخورد ارسال میکنند. توسعهدهنده همه بازخوردها را در App Store Connect گروهبندی شده بر اساس بیلدها میبیند. هر بازخورد شامل نسخه سیستمعامل، مدل دستگاه و مهر زمانی است که بازتولید و رفع باگها را آسان میکند.
انتشار برنامه از TestFlight در App Store نیاز به بازسازی ندارد. کافی است بیلد بتای تأیید شده را در App Store Connect انتخاب کرده و Submit for Review را بزنید. همان بیلد که تست بتا را گذرانده بدون کامپایل مجدد به App Review نهایی ارسال میشود.
این تضمین میکند که دقیقاً همان نسخهای که شرکتکنندگان تست کردهاند به تولید میرسد و خطر تفاوت بین بیلد بتا و انتشار را از بین میبرد. پس از گذراندن App Review نهایی، بیلد به طور خودکار طبق قوانین تنظیم شده Availability در App Store منتشر میشود.
قبل از انتشار، توسعهدهنده باید فراداده را بهروز کند: توضیحات نسخه، اسکرینشاتهای جدید برای نسخه جدید سیستمعامل و اطلاعات تغییرات. بیلدهای TestFlight که به App Store ارسال نشدهاند پس از ۹۰ روز از آپلود به همراه تمام دادههای تست به طور خودکار حذف میشوند.
سؤالات متداول
بررسی خودکار معمولاً از ۵ دقیقه تا یک ساعت طول میکشد. Beta App Review برای تست خارجی — از چند ساعت تا ۲ روز. برای بیلدهای تکراری بررسی سریعتر انجام میشود زیرا اپل تاریخچه بازبینیهای قبلی را در نظر میگیرد.
TestFlight فقط برای اعضای Apple Developer Program (۹۹$ در سال) در دسترس است. بدون اشتراک، آپلود بیلدها در App Store Connect غیرممکن است. برای توزیع Ad Hoc بدون اشتراک به حساب Enterprise یا SideStore نیاز است.
Ad Hoc نیاز به جمعآوری UDID دستگاهها، ایجاد Provisioning Profile و توزیع دستی IPA دارد. TestFlight کل فرآیند را خودکار میکند: توسعهدهنده بیلد را آپلود میکند، تستکننده از طریق TestFlight App بدون پروفایلهای provisioning و UDID نصب میکند.
عمر بیلد در TestFlight ۹۰ روز از لحظه آپلود است. پس از انقضا، تستکنندگان نمیتوانند برنامه را نصب یا اجرا کنند. برای تمدید تست باید بیلد جدیدی با شماره نسخه افزایشیافته آپلود شود.
TestFlight از برنامههای macOS از نسخه macOS 11 Big Sur پشتیبانی میکند. تستکنندگان نسخه بتا را از طریق TestFlight App روی Mac نصب میکنند. فرآیند آپلود و مدیریت با نسخه iOS تفاوتی ندارد: بایگانی در Xcode، آپلود از طریق Organizer.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید