Provisioning Profile: apa itu, apa saja jenisnya, dan cara kerjanya

Penulis: IT Sectr Diterbitkan: 2026-04-16 Waktu membaca: 10 mnt

Provisioning Profile menghubungkan sertifikat pengembang, identifikasi aplikasi, dan daftar perangkat yang diizinkan untuk menandatangani kode aplikasi iOS. Menurut data Apple Developer Documentation, 2026, profil diperlukan untuk setiap peluncuran aplikasi di perangkat fisik — tanpanya Xcode tidak akan bisa menginstal build di iPhone atau iPad. Dalam artikel ini kita akan membahas struktur, jenis, dan proses pembuatan profil.

Poin utama

  • Provisioning Profile — file konfigurasi Apple yang menggabungkan sertifikat, App ID, dan perangkat untuk penandatanganan kode
  • Profil Development digunakan untuk pengujian di perangkat fisik selama pengembangan
  • Profil Distribution terbagi menjadi App Store, Ad Hoc, dan Enterprise untuk berbagai skenario publikasi
  • App ID mengidentifikasi aplikasi secara unik di ekosistem Apple dan terikat dengan Bundle Identifier
  • Entitlements menentukan akses aplikasi ke fungsi sistem: notifikasi Push, iCloud, App Groups

Apa itu Provisioning Profile

Provisioning Profile adalah file konfigurasi digital berformat .mobileprovision (untuk iOS) atau .provisionprofile (untuk macOS) yang digunakan Apple untuk mengontrol pemasangan dan peluncuran aplikasi di perangkat. Profil berisi metadata penandatanganan kode yang tanpanya aplikasi tidak dapat diluncurkan di iPhone, iPad, atau Apple Watch fisik — simulator tidak memerlukan profil karena kode tidak ditandatangani untuk dijalankan di prosesor sungguhan.

Profil diterbitkan melalui Apple Developer Portal dan memiliki masa berlaku — biasanya satu tahun untuk profil Development dan Distribution. Menurut kebijakan Apple, profil otomatis terhubung dengan sertifikat Apple Developer Program yang digunakan untuk menandatanganinya: jika sertifikat dicabut atau kedaluwarsa, profil berhenti berfungsi.

Setiap profil berisi UUID unik yang digunakan Xcode untuk mengidentifikasi profil di keychain. Xcode otomatis memilih profil yang sesuai saat build, tetapi pengembang dapat mengubah pilihan di pengaturan Signing & Capabilities. Di satu perangkat dapat diinstal profil dalam jumlah tidak terbatas — sistem manajemen perangkat Apple (MDM) memanfaatkannya untuk distribusi aplikasi korporat.

Untuk apa Provisioning Profile dibutuhkan

Penandatanganan kode adalah alasan utama keberadaan profil. Apple mengharuskan setiap aplikasi yang dijalankan di perangkat iOS ditandatangani dengan sertifikat yang diterbitkan oleh Apple. Provisioning Profile berperan sebagai penghubung: ia mengonfirmasi bahwa pengembang berhak menjalankan aplikasi di perangkat tersebut. Menurut Apple Security Guide (2025), mekanisme profil mencegah pemasangan perangkat lunak berbahaya di perangkat pengguna bahkan jika sertifikat pengembang dikompromikan.

Profil juga menentukan layanan sistem apa saja yang tersedia untuk aplikasi. Jika aplikasi menggunakan notifikasi Push, Apple Push Notification service (APNs) memerlukan entitlements yang benar di dalam profil. Tanpa ini, notifikasi server tidak akan terkirim ke perangkat. Aturan serupa berlaku untuk iCloud, App Groups, Wallet, HealthKit, dan framework Apple lainnya.

Perbedaannya dengan sertifikat

Pengembang sering mencampuradukkan Provisioning Profile dengan Apple Certificate. Sertifikat adalah dokumen digital yang mengonfirmasi identitas (siapa yang menandatangani), sedangkan profil adalah konfigurasi (aplikasi apa, di perangkat apa, dengan hak apa). Satu sertifikat dapat digunakan di beberapa profil, dan satu profil terikat tepat pada satu sertifikat. Apple merekomendasikan membuat profil terpisah untuk setiap aplikasi dan setiap skenario — Development, Ad Hoc, App Store.

Cara kerja Provisioning Profile

Proses penandatanganan aplikasi terdiri dari beberapa langkah yang dilakukan berurutan. Xcode mengambil file biner aplikasi (App Bundle), menandatanganinya dengan kunci privat pengembang, menyisipkan Provisioning Profile ke dalamnya, dan mengirimkannya ke perangkat. Perangkat memverifikasi tanda tangan dengan kunci publik Apple, membandingkan UUID profil dengan daftar profil tepercaya di sistem, dan meluncurkan aplikasi hanya jika semua pemeriksaan berhasil.

Saat pengguna mengunduh aplikasi dari App Store, mekanismenya berbeda. App Store Connect menandatangani ulang aplikasi dengan sertifikat Distribution milik Apple, mengganti profil pengembang dengan profil Store. Ini berarti aplikasi yang diterbitkan melalui App Store secara teknis ditandatangani oleh Apple, bukan pengembang — meskipun tanda tangan awal pengembang diverifikasi pada tahap pengunggahan build ke App Store Connect.

Untuk distribusi Ad Hoc, profil mendaftarkan UDID perangkat tertentu yang diizinkan menjalankan aplikasi. Akun gratis Apple Developer Program dibatasi 100 perangkat per tahun untuk pengujian. Profil Enterprise (untuk distribusi internal dalam organisasi) tidak memiliki batasan jumlah perangkat, tetapi memerlukan langganan aktif Apple Developer Enterprise Program dengan biaya $299 per tahun.

Siklus hidup profil

Masa berlaku Provisioning Profile adalah satu tahun sejak dibuat. 30 hari sebelum kedaluwarsa, Apple mulai mengirim notifikasi push kepada pengembang melalui Xcode dan Developer Portal. Jika profil kedaluwarsa, aplikasi di perangkat tetap berfungsi (jika sudah terpasang), tetapi build baru dengan profil ini tidak dapat diinstal. Xcode saat mencoba build dengan profil yang kedaluwarsa akan menampilkan error penandatanganan kode dengan kode -402620394. Apple merekomendasikan mengatur perpanjangan otomatis profil melalui Xcode Accounts Preferences — dengan begitu Xcode memperbarui profil 24 jam sebelum kedaluwarsa.

Jenis Provisioning Profile

Apple menyediakan empat jenis utama Provisioning Profile, masing-masing dirancang untuk tahap tertentu dalam siklus hidup aplikasi. Profil Development memungkinkan menjalankan aplikasi di perangkat fisik yang ditambahkan ke Apple Developer Portal dan digunakan pada tahap pengembangan dan pengujian QA. Untuk membuat profil Development, akun pengembang gratis Apple sudah cukup.

Profil Ad Hoc dirancang untuk mendistribusikan aplikasi kepada kalangan terbatas penguji tanpa menggunakan App Store. Profil mendaftarkan hingga 100 perangkat berdasarkan UDID, dan aplikasi dapat diinstal langsung melalui iTunes, Apple Configurator, atau solusi MDM. Build Ad Hoc memiliki masa berlaku 12 bulan dan tidak memerlukan tinjauan Apple.

Profil App Store digunakan khusus untuk mempublikasikan aplikasi di App Store dan tidak berisi daftar perangkat — Apple sendiri yang mengelola distribusi setelah build disetujui. Saat mengunggah arsip ke App Store Connect, Xcode otomatis menggunakan profil App Store jika terpasang di sistem. Profil Enterprise dirancang untuk organisasi dengan Apple Developer Enterprise Program dan memungkinkan distribusi aplikasi di dalam perusahaan tanpa batasan jumlah perangkat dan tanpa tinjauan Apple.

Jenis profilTujuanPerangkatBiaya langganan
DevelopmentPengembangan dan pengujianHingga 100 UDIDGratis / $99 per tahun
Ad HocDistribusi kepada pengujiHingga 100 UDID$99 per tahun
App StorePublikasi di App StoreBerapa pun (melalui Apple)$99 per tahun
EnterpriseDistribusi internalTidak terbatas$299 per tahun

Struktur Provisioning Profile

Provisioning Profile adalah file berformat DER yang ditandatangani oleh Apple, yang isinya dapat dilihat melalui baris perintah. Security framework macOS memungkinkan mendekode .mobileprovision menjadi plist XML yang dapat dibaca. Di dalam profil terdapat: UUID profil, App ID (prefiks tim + Bundle Identifier), daftar sertifikat, daftar perangkat yang diizinkan (khusus Development dan Ad Hoc), entitlements, dan masa berlaku.

App ID — identifikasi unik aplikasi yang terdiri dari Team ID (10 karakter yang diberikan oleh Apple) dan Bundle Identifier (misalnya, com.example.myapp). App ID dapat bersifat explicit (cocok persis dengan Bundle Identifier) atau wildcard (pola *.example.com untuk beberapa aplikasi). Apple tidak merekomendasikan penggunaan wildcard untuk aplikasi yang menggunakan notifikasi Push atau iCloud — layanan ini memerlukan App ID eksplisit.

Entitlements — blok XML di dalam profil yang menentukan hak akses aplikasi ke sumber daya sistem. Entitlements umum meliputi: aps-environment (notifikasi Push), com.apple.developer.icloud-services (iCloud), com.apple.security.application-groups (App Groups untuk Widget dan Share Extension). Apple otomatis menambahkan entitlements ke profil berdasarkan Capabilities yang diaktifkan di Xcode. Ketidakcocokan apa pun antara entitlements di profil dan yang diminta dalam kode menyebabkan error penandatanganan.

Membuat Provisioning Profile di Apple Developer

Pembuatan profil dapat dilakukan dengan dua cara: melalui antarmuka web Apple Developer Portal atau otomatis melalui Xcode. Untuk proyek umum, Xcode mengelola profil secara otomatis saat opsi Automatically manage signing diaktifkan. Xcode membuat sertifikat, profil, dan App ID dalam hitungan detik, tersinkronisasi dengan Apple Developer Portal. Namun, untuk pipeline CI/CD diperlukan pengelolaan manual.

Untuk membuat profil secara manual di Apple Developer Portal, perlu: masuk ke bagian Certificates, Identifiers & Profiles, pilih Profiles, dan klik "+". Kemudian pilih jenis profil (Development, Ad Hoc, App Store, atau Enterprise), pilih App ID dari daftar terdaftar, pilih sertifikat pengembang, dan (untuk Development dan Ad Hoc) pilih perangkat. Setelah dibuat, profil diunduh dalam format .mobileprovision dan diinstal dengan klik dua kali di Xcode.

Server CI/CD memerlukan pendekatan khusus: profil dan sertifikat harus disimpan di repositori yang aman (misalnya, di secret GitHub Actions). Saat build, profil dimuat ke agen, ditempatkan di folder ~/Library/MobileDevice/Provisioning Profiles, dan sertifikat diimpor ke keychain. Fastlane — alat populer untuk mengotomatiskan penandatanganan — menyediakan perintah match yang menyinkronkan profil dan sertifikat antar pengembang melalui repositori git terenkripsi.

Contoh: memeriksa profil melalui baris perintah

Untuk mendiagnosis masalah penandatanganan kode, Anda dapat mendekode .mobileprovision dan memeriksa isinya. Perintah di bawah ini mengekstrak plist XML dari profil dan menyimpannya dalam format yang dapat dibaca:

bash
# Mendekode .mobileprovision menjadi XML
security cms -D -i "path/to/embedded.mobileprovision" \
  -o "profile.plist"

# Memeriksa masa berlaku profil
plist -convert xml1 profile.plist -o -
grep -A 1 "ExpirationDate" profile.plist

Utilitas Security dari macOS Command Line Tools mendekode file CMS bertanda tangan milik profil. Bendera -D berarti mendekode, -i — file masukan. Setelah didekode, utilitas plist mengonversi plist biner menjadi XML, dan grep mengekstrak tanggal kedaluwarsa. Metode ini berguna di CI/CD untuk memastikan profil tidak kedaluwarsa sebelum build rilis dibuat.

Kesalahan umum dengan Provisioning Profile

Kesalahan paling umum adalah "No matching provisioning profiles found" saat build di Xcode. Kesalahan ini muncul ketika Xcode tidak dapat menemukan profil yang sesuai dengan konfigurasi build: Bundle Identifier tidak cocok dengan App ID di profil, sertifikat tidak terpasang di keychain, atau profil kedaluwarsa. Solusinya — periksa pengaturan Signing & Capabilities di target dan jika perlu alihkan ke Automatically manage signing.

Kesalahan "Provisioning profile doesn't include the selected device" muncul saat mencoba menjalankan build Development atau Ad Hoc di perangkat yang UDID-nya belum ditambahkan ke profil. Apple Developer Portal memungkinkan menambahkan perangkat ke profil yang ada — setelah itu profil perlu diunduh ulang dan diinstal kembali. Xcode dengan manajemen penandatanganan otomatis akan menambahkan perangkat yang terhubung ke profil secara otomatis.

Masalah dengan entitlements muncul melalui error "The executable was signed with invalid entitlements" saat mengunggah ke App Store Connect. Penyebabnya — ketidakcocokan entitlements di profil dengan file .entitlements proyek. Apple mengharuskan set hak di profil menjadi superset dari hak yang diminta aplikasi. Solusinya — periksa Capabilities di target Xcode dan pastikan semua layanan yang diaktifkan memiliki entitlements yang sesuai di profil. Fastlane menyertakan perintah produce yang menyinkronkan App ID dan profil dengan entitlements terbaru.

Pertanyaan yang sering diajukan

Bisakah satu Provisioning Profile digunakan untuk beberapa aplikasi?

Ya, jika App ID di profil menggunakan identifikasi wildcard berbentuk com.example.*. Namun, profil wildcard tidak mendukung notifikasi Push, iCloud, Game Center, dan App Groups. Apple merekomendasikan membuat profil eksplisit terpisah untuk setiap aplikasi yang menggunakan Capabilities lanjutan.

Apa yang terjadi jika Provisioning Profile kedaluwarsa padahal aplikasi sudah di App Store?

Aplikasi yang diunduh melalui App Store menggunakan profil Store milik Apple yang tidak bergantung pada profil pengembang. Pengguna akan terus dapat mengunduh dan menjalankan aplikasi. Profil yang kedaluwarsa hanya menghalangi pengunggahan build baru ke App Store Connect — Apple mengharuskan profil Distribution valid pada saat pengiriman.

Bagaimana cara memindahkan Provisioning Profile ke komputer lain?

Profil dapat disalin ke folder ~/Library/MobileDevice/Provisioning Profiles di komputer baru. Namun, profil terikat pada sertifikat yang kunci privatnya berada di keychain. Anda juga perlu mengekspor sertifikat beserta kunci privatnya melalui Keychain Access dan mengimpornya di perangkat baru.

Berapa banyak Provisioning Profile yang bisa ada di satu komputer?

Tidak ada batasan jumlah profil di komputer. Profil disimpan di folder ~/Library/MobileDevice/Provisioning Profiles dan dinomori berdasarkan UUID. Xcode otomatis memilih profil yang sesuai berdasarkan App ID dan jenis build. Untuk memudahkan pengelolaan, disarankan menghapus profil yang tidak terpakai melalui Xcode Accounts Preferences.

Apa perbedaan Provisioning Profile dengan Signing Certificate?

Signing Certificate mengonfirmasi identitas pengembang — ini adalah kunci kriptografi yang diterbitkan oleh Apple. Provisioning Profile adalah file konfigurasi yang menunjukkan aplikasi mana (App ID) dapat dijalankan dengan sertifikat apa dan di perangkat mana. Profil selalu merujuk pada sertifikat tertentu, tetapi tidak menggantikannya.

Kesimpulan

  • Provisioning Profile — komponen wajib penandatanganan aplikasi iOS yang menghubungkan sertifikat, App ID, dan perangkat
  • Profil Development digunakan untuk pengujian di perangkat fisik dengan pendaftaran UDID
  • Profil App Store diterapkan untuk publikasi dan tidak berisi daftar perangkat — distribusi dikelola oleh Apple
  • Ad Hoc memungkinkan mendistribusikan aplikasi kepada 100 penguji tanpa App Store
  • Profil Enterprise dirancang untuk distribusi korporat tanpa batasan jumlah perangkat
  • Entitlements di dalam profil menentukan akses aplikasi ke layanan sistem Apple
  • CI/CD menuntut penyimpanan profil di tempat aman menggunakan Fastlane atau alat serupa

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga