Ad Hoc Distribution روشی برای توزیع برنامههای iOS برای تست روی تعداد محدودی دستگاه بدون انتشار در App Store است. هر دستگاه باید با UDID منحصربهفرد در Apple Developer Portal ثبت شود، حداکثر تعداد — ۱۰۰ دستگاه در هر حساب. طبق Apple Developer Documentation (۲۰۲۵)، این روش برای تست بتا و نمایش برنامهها به مشتریان بدون نیاز به تایید App Store استفاده میشود. محدودیت اصلی — وابستگی به دستگاههای فیزیکی که مقیاسپذیری تست را دشوار میکند.
نکات مهم
Ad Hoc Distribution روشی برای توزیع برنامههای iOS است که برای همه اعضای Apple Developer Program (۹۹$/سال) در دسترس است. این روش امکان نصب مستقیم برنامهها روی دستگاهها بدون تایید App Store را فراهم میکند. هدف اصلی — تست قبل از انتشار: توسعهدهندگان، تسترها و مشتریان میتوانند برنامه را قبل از انتشار رسمی روی دستگاههای خود نصب کنند.
Ad Hoc Distribution از Provisioning Profile استفاده میکند که شامل لیست UDID دستگاههای مجاز است. هنگام امضای برنامه، Xcode یا Fastlane فایل IPA ایجاد میکند که فقط روی دستگاههای موجود در این لیست قابل نصب است. هر UDID از طریق Apple Developer Portal اضافه میشود و تعداد کل نمیتواند از ۱۰۰ دستگاه در هر حساب توسعهدهنده تجاوز کند.
طبق دادههای Apple (۲۰۲۵)، Ad Hoc Distribution برای تست پیش از انتشار زمانی که برنامه هنوز تایید App Store را دریافت نکرده اما باید به مشتری نشان داده شود یا روی دستگاههای واقعی تست شود، مورد استفاده قرار میگیرد. با این حال، Apple استفاده از TestFlight را برای تست بتا در مقیاس بزرگ توصیه میکند و Ad Hoc را برای گروههای کوچک و موارد خاص نگه میدارد.
توزیع Ad Hoc از طریق مکانیسم نصب OTA (Over-The-Air) یا از طریق iTunes/Finder کار میکند. توسعهدهنده Ad Hoc Provisioning Profile با UDIDهای انتخاب شده ایجاد میکند، برنامه را با این پروفایل امضا کرده و فایل IPA را صادر میکند. کاربر برنامه را از طریق Safari با لینک یا از طریق Finder در macOS نصب میکند.
از نظر فنی، Ad Hoc Distribution شامل چند مرحله است. ابتدا مدیر UDID دستگاههای تست را جمعآوری میکند — هر UDID یک شناسه ۴۰ کاراکتری منحصربهفرد دستگاه iOS است. سپس UDIDها به Apple Developer Portal اضافه میشوند، Provisioning Profile ایجاد میشود و IPA امضا شده تولید میشود. مدت اعتبار پروفایل Ad Hoc یک سال است، پس از آن برنامهها باز نمیشوند.
# Fastlane — خودکارسازی توزیع Ad Hoc
lane :adhoc do
match(type: "adhoc")
gym(scheme: "MyApp",
export_method: "ad-hoc")
pilot(
distribute_only: true,
devices_file: "./devices.txt"
)
end
برای نصب برنامه Ad Hoc، کاربر باید به گواهی توسعهدهنده روی دستگاه خود اعتماد کند. برای این کار در تنظیمات iOS باید به «عمومی» → «VPN و مدیریت دستگاه» → «پروفایل» رفته و «اعتماد» را فشار دهید. بدون این مرحله برنامه اجرا نخواهد شد.
UDID (Unique Device Identifier) شناسه منحصربهفرد هر دستگاه iOS است. برای Ad Hoc Distribution باید UDID همه دستگاههای تست را جمعآوری کرده و به Apple Developer Portal اضافه کنید. حداکثر تعداد — ۱۰۰ دستگاه در هر حساب توسعهدهنده در سال. این محدودیت برای همه برنامههای توسعهدهنده اعمال میشود، نه برای هر برنامه به صورت جداگانه.
| روش دریافت UDID | سختی | توضیح |
|---|---|---|
| از طریق Safari | کم | نصب پروفایل پیکربندی برای استخراج UDID |
| از طریق Xcode | متوسط | اتصال دستگاه به Mac و کپی UDID از Xcode |
| از طریق MDM | زیاد | راهحل MDM میتواند UDID دستگاههای شرکتی را جمعآوری کند |
| از طریق iTunes | متوسط | روش قدیمی — iTunes دیگر در macOS جدید پشتیبانی نمیشود |
محدودیت ۱۰۰ دستگاه در پایان سال تقویمی بازنشانی میشود — بازنشانی در ۱ ژانویه انجام میشود. با این حال، Apple برای تست در مقیاس بزرگ استفاده از TestFlight را توصیه میکند که تا ۱۰۰۰۰ تستر خارجی را پشتیبانی میکند. Ad Hoc Distribution از سال ۲۰۲۲ برای مواردی که برنامه هنوز Beta App Review را گذرانده یا تست نیاز به دسترسی به فایل IPA اصلی دارد، همچنان مرتبط است.
تنظیمات Ad Hoc Distribution از طریق Apple Developer Portal و Xcode انجام میشود. فرآیند شامل ثبت دستگاهها، ایجاد Provisioning Profile، امضای برنامه و صادرات IPA برای توزیع است. برای توسعه تیمی توصیه میشود از Fastlane یا خودکارسازی از طریق CI/CD استفاده کنید.
برای سادهسازی فرآیند از سرویسهای توزیع استفاده میشود: Firebase App Distribution، Microsoft App Center یا BuddyBuild. این سرویسها به طور خودکار UDIDها را مدیریت میکنند، پروفایلهای Ad Hoc ایجاد میکنند و دعوتنامههایی برای تسترها ارسال میکنند. Firebase App Distribution همچنین با خط لوله CI/CD از طریق Gradle یا Fastlane ادغام میشود.
نکته مهم — بهروزرسانی UDID. اگر نیاز به اضافه کردن دستگاه جدید به پروفایل دارید، باید Provisioning Profile را دوباره ایجاد کرده و برنامه را دوباره امضا کنید. دستگاههایی که قبلاً برنامه را نصب کردهاند تا انقضای پروفایل (۱ سال) به استفاده ادامه میدهند. پس از آن نصب مجدد با پروفایل جدید مورد نیاز است.
Ad Hoc Distribution تنها یکی از سه روش توزیع برنامههای iOS بدون App Store است. TestFlight (رایگان، تا ۱۰۰۰۰ تستر خارجی) و Enterprise Distribution (بدون محدودیت دستگاه، برای برنامههای شرکتی) وظایف مشابهی را با محدودیتها و الزامات مختلف حل میکنند.
TestFlight روش ترجیحی Apple برای تست بتا است. این روش نیازی به جمعآوری UDID ندارد، تا ۱۰۰ تستر داخلی و ۱۰۰۰۰ تستر خارجی را پشتیبانی میکند، به طور خودکار نسخهها را مدیریت کرده و تحلیل نصب ارائه میدهد. با این حال، TestFlight برای تسترهای خارجی نیاز به گذراندن Beta App Review دارد که ممکن است ۱–۲ روز طول بکشد. Ad Hoc Distribution اصلاً نیازی به تایید ندارد.
Enterprise Distribution برای برنامههای شرکتی با تعداد نامحدود دستگاه مناسب است، اما نیاز به ثبتنام در Apple Developer Enterprise Program (۲۹۹$/سال) با شماره D-U-N-S دارد. Ad Hoc برای همه اعضای برنامه استاندارد (۹۹$/سال) در دسترس است و نیازی به تأیید حقوقی شرکت ندارد. برای تیمها و پروژههای کوچک، Ad Hoc سادهترین روش توزیع بدون App Store باقی میماند.
سوالات متداول
حداکثر تعداد دستگاه برای Ad Hoc Distribution — ۱۰۰ دستگاه در هر حساب توسعهدهنده Apple. محدودیت برای همه برنامههای توسعهدهنده مشترک است، نه برای هر برنامه به صورت جداگانه. بازنشانی در ۱ ژانویه هر سال انجام میشود. برای تست روی تعداد بیشتری دستگاه از TestFlight یا Enterprise Distribution (برای برنامههای شرکتی) استفاده کنید.
UDID دستگاه را میتوان از طریق سرویسهای وب مانند udid.io یا install.appcenter.ms دریافت کرد. کاربر لینک را در Safari در iOS باز میکند، پروفایل پیکربندی را نصب میکند، پس از آن UDID روی صفحه نمایش داده میشود. همچنین UDID را میتوان از Xcode هنگام اتصال دستگاه به Mac کپی کرد: Window → Devices and Simulators → Identifier.
خیر، Ad Hoc Distribution فقط برای تست طراحی شده است. برای انتشار در App Store باید App Store Distribution Profile ایجاد کرده و برنامه را به طور مناسب امضا کنید. پروفایل Ad Hoc بررسی App Store Connect را گذرانده نخواهد کرد. قبل از ارسال به App Store حتماً export method را در Xcode یا Fastlane به app-store تغییر دهید.
اگر برنامه Ad Hoc باز نمیشود، بررسی کنید: آیا گواهی توسعهدهنده روی دستگاه مورد اعتماد است (تنظیمات → عمومی → VPN و مدیریت دستگاه)، آیا مدت اعتبار Provisioning Profile منقضی نشده، آیا UDID دستگاه به پروفایل اضافه شده و آیا برنامه با گواهی صحیح امضا شده است. اگر مشکل ادامه داشت، برنامه را حذف کرده و با پروفایل بهروز شده دوباره نصب کنید.
Development Profile برای اجرای برنامهها به طور مستقیم از Xcode روی دستگاههای متصل طراحی شده است. Ad Hoc Profile — برای توزیع فایلهای IPA نصب روی دستگاهها بدون Xcode. تفاوتهای اصلی: Development نیاز به اتصال به Xcode دارد، در حالی که Ad Hoc از نصب OTA از طریق Safari یا Finder استفاده میکند. هر دو به ۱۰۰ دستگاه محدود هستند.
خلاصه
ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد
IT Sectr از سال 2017 برنامههای iOS و Android را برای استارتاپها و کسبوکارها ایجاد میکند. ما به شما مشاوره میدهیم و بهترین راهحل را پیشنهاد خواهیم کرد.
همچنین بخوانید