Ad Hoc Distribution là phương pháp phân phối ứng dụng iOS để kiểm thử trên một số lượng thiết bị giới hạn mà không cần xuất bản lên App Store. Mỗi thiết bị phải được đăng ký trên Apple Developer Portal bằng UDID duy nhất, tối đa 100 thiết bị cho mỗi tài khoản. Theo Tài liệu dành cho nhà phát triển Apple (2025), phương pháp này được sử dụng để kiểm thử beta và trình diễn ứng dụng cho khách hàng mà không cần kiểm duyệt App Store. Hạn chế chính là sự ràng buộc với thiết bị vật lý, gây khó khăn cho việc mở rộng quy mô kiểm thử.
Những điểm chính
Ad Hoc Distribution là phương pháp phân phối ứng dụng iOS dành cho tất cả thành viên của Apple Developer Program ($99/năm). Nó cho phép cài đặt ứng dụng trực tiếp trên thiết bị mà không cần thông qua kiểm duyệt App Store. Mục đích chính là kiểm thử trước khi phát hành: nhà phát triển, người kiểm thử và khách hàng có thể cài đặt ứng dụng trên thiết bị của họ trước khi phát hành chính thức.
Ad Hoc Distribution sử dụng Provisioning Profile bao gồm danh sách UDID thiết bị được phép. Ký ứng dụng, Xcode hoặc Fastlane tạo tệp IPA chỉ có thể cài đặt trên các thiết bị trong danh sách này. Mỗi UDID được thêm qua Apple Developer Portal và tổng số không thể vượt quá 100 thiết bị cho mỗi tài khoản nhà phát triển.
Theo Apple (2025), Ad Hoc Distribution vẫn được ưa chuộng cho kiểm thử trước khi phát hành khi ứng dụng chưa vượt qua kiểm duyệt App Store nhưng đã cần trình diễn cho khách hàng hoặc kiểm thử trên thiết bị thực. Tuy nhiên, Apple khuyến nghị sử dụng TestFlight cho kiểm thử beta quy mô lớn, để Ad Hoc cho các nhóm nhỏ và trường hợp đặc biệt.
Phân phối Ad Hoc hoạt động thông qua cài đặt OTA (Over-The-Air) hoặc qua iTunes/Finder. Nhà phát triển tạo Ad Hoc Provisioning Profile với các UDID đã chọn, ký ứng dụng bằng hồ sơ này và xuất tệp IPA. Người dùng cài đặt ứng dụng qua Safari bằng liên kết hoặc qua Finder trên macOS.
Về mặt kỹ thuật, phân phối Ad Hoc bao gồm nhiều giai đoạn. Đầu tiên, quản trị viên thu thập UDID của các thiết bị kiểm thử — mỗi UDID là một định danh duy nhất gồm 40 ký tự cho thiết bị iOS. Sau đó, UDID được thêm vào Apple Developer Portal, Provisioning Profile được tạo và IPA đã ký được tạo. Hiệu lực của hồ sơ Ad Hoc là một năm, sau đó ứng dụng ngừng mở.
# Fastlane — tự động hóa phân phối Ad Hoc
lane :adhoc do
match(type: "adhoc")
gym(scheme: "MyApp",
export_method: "ad-hoc")
pilot(
distribute_only: true,
devices_file: "./devices.txt"
)
end
Để cài đặt ứng dụng Ad Hoc, người dùng phải tin cậy chứng chỉ nhà phát triển trên thiết bị của họ. Để thực hiện, trong cài đặt iOS vào "Cài đặt chung" → "VPN và Quản lý thiết bị" → "Hồ sơ" và nhấn "Tin cậy". Nếu không có bước này, ứng dụng sẽ không khởi chạy.
UDID (Unique Device Identifier) là định danh duy nhất cho mỗi thiết bị iOS. Để phân phối Ad Hoc, bạn cần thu thập UDID của tất cả thiết bị kiểm thử và thêm chúng vào Apple Developer Portal. Tối đa là 100 thiết bị cho mỗi tài khoản nhà phát triển mỗi năm. Giới hạn này áp dụng cho tất cả ứng dụng của nhà phát triển, không phải cho từng ứng dụng riêng lẻ.
| Phương pháp lấy UDID | Độ khó | Ghi chú |
|---|---|---|
| Qua Safari | Thấp | Cài đặt hồ sơ cấu hình để trích xuất UDID |
| Qua Xcode | Trung bình | Kết nối thiết bị với Mac và sao chép UDID từ Xcode |
| Qua MDM | Cao | Giải pháp MDM có thể thu thập UDID của thiết bị doanh nghiệp |
| Qua iTunes | Trung bình | Phương pháp cũ — iTunes không còn được hỗ trợ trên macOS mới |
Giới hạn 100 thiết bị được đặt lại vào cuối năm dương lịch — việc đặt lại diễn ra vào ngày 1 tháng 1. Tuy nhiên, Apple khuyến nghị sử dụng TestFlight cho kiểm thử quy mô lớn, hỗ trợ lên đến 10 000 người kiểm thử bên ngoài. Ad Hoc Distribution từ năm 2022 vẫn phù hợp cho các trường hợp ứng dụng chưa vượt qua Beta App Review hoặc khi kiểm thử yêu cầu truy cập vào tệp IPA gốc.
Thiết lập Ad Hoc Distribution được thực hiện qua Apple Developer Portal và Xcode. Quy trình bao gồm đăng ký thiết bị, tạo Provisioning Profile, ký ứng dụng và xuất IPA để phân phối. Đối với phát triển nhóm, nên sử dụng Fastlane hoặc tự động hóa qua CI/CD.
Để đơn giản hóa quy trình, dịch vụ phân phối được sử dụng: Firebase App Distribution, Microsoft App Center hoặc BuddyBuild. Các dịch vụ này tự động quản lý UDID, tạo hồ sơ Ad Hoc và gửi lời mời cho người kiểm thử. Firebase App Distribution cũng tích hợp với đường ống CI/CD qua Gradle hoặc Fastlane.
Một sắc thái quan trọng — cập nhật UDID. Nếu bạn cần thêm thiết bị mới vào hồ sơ, bạn sẽ phải tạo lại Provisioning Profile và ký lại ứng dụng. Các thiết bị đã cài đặt ứng dụng sẽ tiếp tục sử dụng cho đến khi hồ sơ hết hạn (1 năm). Sau đó, cài đặt lại với hồ sơ mới là cần thiết.
Ad Hoc Distribution chỉ là một trong ba phương pháp phân phối ứng dụng iOS mà không cần App Store. TestFlight (miễn phí, lên đến 10 000 người kiểm thử bên ngoài) và Enterprise Distribution (không giới hạn thiết bị, dành cho ứng dụng doanh nghiệp) giải quyết các tác vụ tương tự với các giới hạn và yêu cầu khác nhau.
TestFlight là phương pháp ưa thích của Apple cho kiểm thử beta. Nó không yêu cầu thu thập UDID, hỗ trợ lên đến 100 người kiểm thử nội bộ và 10 000 người bên ngoài, tự động quản lý phiên bản và cung cấp phân tích cài đặt. Tuy nhiên, TestFlight yêu cầu vượt qua Beta App Review cho người kiểm thử bên ngoài, có thể mất 1–2 ngày. Ad Hoc Distribution không yêu cầu kiểm duyệt nào.
Enterprise Distribution phù hợp cho ứng dụng doanh nghiệp với số lượng thiết bị không giới hạn, nhưng yêu cầu đăng ký Apple Developer Enterprise Program ($299/năm) với số D-U-N-S. Ad Hoc có sẵn cho tất cả thành viên của chương trình tiêu chuẩn ($99/năm) và không yêu cầu xác minh pháp lý công ty. Đối với các nhóm nhỏ và dự án, Ad Hoc vẫn là cách đơn giản nhất để phân phối mà không cần App Store.
Câu hỏi thường gặp
Số lượng thiết bị tối đa cho Ad Hoc Distribution là 100 cho mỗi tài khoản nhà phát triển Apple. Giới hạn được chia sẻ cho tất cả ứng dụng của nhà phát triển, không phải cho từng ứng dụng riêng lẻ. Việc đặt lại diễn ra vào ngày 1 tháng 1 hàng năm. Để kiểm thử trên số lượng thiết bị lớn hơn, hãy sử dụng TestFlight hoặc Enterprise Distribution (cho ứng dụng doanh nghiệp).
UDID của thiết bị có thể được lấy qua các dịch vụ web như udid.io hoặc install.appcenter.ms. Người dùng mở liên kết trong Safari trên iOS, cài đặt hồ sơ cấu hình, sau đó UDID hiển thị trên màn hình. Ngoài ra, UDID có thể được sao chép từ Xcode khi kết nối thiết bị với Mac: Window → Devices and Simulators → Identifier.
Không, Ad Hoc Distribution chỉ dành cho kiểm thử. Để xuất bản lên App Store, bạn cần tạo App Store Distribution Profile và ký ứng dụng phù hợp. Hồ sơ Ad Hoc sẽ không vượt qua xác thực App Store Connect. Trước khi gửi lên App Store, hãy đảm bảo chuyển export method sang app-store trong Xcode hoặc Fastlane.
Nếu ứng dụng Ad Hoc không mở, hãy kiểm tra: chứng chỉ nhà phát triển đã được tin cậy trên thiết bị (Cài đặt → Cài đặt chung → VPN và Quản lý thiết bị), Provisioning Profile chưa hết hạn, UDID của thiết bị đã được thêm vào hồ sơ và ứng dụng đã được ký bằng chứng chỉ chính xác. Nếu sự cố vẫn tiếp diễn, hãy xóa ứng dụng và cài đặt lại với hồ sơ đã cập nhật.
Development Profile dành để chạy ứng dụng trực tiếp từ Xcode trên các thiết bị đã kết nối. Ad Hoc Profile dành để phân phối tệp IPA có thể cài đặt trên thiết bị mà không cần Xcode. Sự khác biệt chính: Development yêu cầu kết nối với Xcode, trong khi Ad Hoc sử dụng cài đặt OTA qua Safari hoặc Finder. Cả hai đều giới hạn 100 thiết bị.
Tóm tắt
Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay
IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.
Đọc thêm