IPA (iOS App Store Package) adalah format file arsip untuk mendistribusikan aplikasi di iOS. Setiap aplikasi yang masuk ke App Store melalui format IPA: pengembang membangun proyek, menandatanganinya, dan mengunggah IPA ke App Store Connect. Menurut Apple Developer Documentation, 2026, format IPA berbasis ZIP dan berisi file Mach-O yang dapat dieksekusi, sumber daya, dan metadata tanda tangan.
Poin utama
IPA (iOS App Store Package) adalah format paket untuk mendistribusikan aplikasi di platform Apple. Seperti APK, secara teknis IPA adalah arsip ZIP, tetapi dengan struktur sendiri yang ditentukan oleh persyaratan keamanan dan penandatanganan iOS.
Format IPA muncul bersamaan dengan iPhone OS 2.0 pada tahun 2008 dan App Store. Sebagai dasar diambil format paket .app dari macOS, dikemas dalam ZIP untuk mengurangi ukuran saat transmisi. Sejak itu, struktur IPA tidak mengalami perubahan mendasar — hanya skema penandatanganan dan metadata yang berubah.
App Store — saluran utama. Distribusi ad-hoc — untuk pengujian pada jumlah perangkat terbatas (hingga 100). Distribusi Enterprise — untuk aplikasi perusahaan tanpa publikasi di toko. Pengembang juga menggunakan IPA untuk pengujian pada perangkat nyata melalui Xcode.
Struktur internal IPA adalah arsip ZIP yang berisi folder Payload dengan .app bundle dan metadata.
| File/direktori | Tujuan |
|---|---|
| Payload/ | Folder root dengan .app bundle |
| Payload/App.app/ | Bundle aplikasi: file eksekusi, sumber daya, nib/storyboard |
| Payload/App.app/Info.plist | Metadata: bundle ID, versi, izin |
| Payload/App.app/embedded.mobileprovision | Provisioning Profile untuk instalasi |
| iTunesMetadata.plist | Metadata untuk iTunes (opsional) |
| META-INF/ | Tanda tangan dan hash untuk verifikasi |
Di dalam folder Payload terdapat bundle aplikasi dengan ekstensi .app. Ini bukan file, melainkan direktori yang dikenali iOS sebagai aplikasi. Di dalamnya terdapat file Mach-O yang dapat dieksekusi (nama sesuai dengan nama bundle), Info.plist, sumber daya, gambar, dan string yang dilokalisasi.
Kode sumber dalam Swift atau Objective-C dikompilasi menjadi kode mesin dalam format Mach-O (Mach Object). File berisi segmen __TEXT (kode), __DATA (data), dan __LINKEDIT (metadata tautan). IPA modern hanya berisi arsitektur 64-bit arm64.
Xcode mengotomatiskan pembuatan IPA: dari kompilasi kode sumber hingga pembuatan arsip yang ditandatangani siap diunggah ke App Store Connect.
Debug — untuk pengembangan, tanpa optimasi. Release — untuk publikasi, dengan optimasi kompiler. Setiap skema menentukan flag kompilasi, penandatanganan kode, dan entitlements. Xcode membuat arsip (Archive) melalui menu Product → Archive.
// Info.plist — metadata dasar aplikasi
<key>CFBundleName</key>
<string>MyApp</string>
<key>CFBundleIdentifier</key>
<string>com.example.myapp</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
Xcode mengompilasi setiap file .swift atau .m menjadi file objek (.o), kemudian menghubungkannya menjadi satu biner Mach-O. Sumber daya (gambar, XIB, storyboard) diproses secara terpisah: storyboard dikompilasi menjadi format biner .storyboardc, gambar dioptimalkan di Asset Catalog (.car).
Penandatanganan — aspek IPA yang paling rumit. Apple memerlukan tanda tangan digital untuk setiap aplikasi yang dijalankan di perangkat nyata. Sistem memverifikasi sertifikat pengembang, entitlements, dan kesesuaian dengan Provisioning Profile.
Certificate (Development atau Distribution) — membuktikan identitas pengembang. Provisioning Profile — menghubungkan sertifikat, bundle ID, dan daftar perangkat yang diizinkan (untuk ad-hoc). Entitlements — izin aplikasi (notifikasi push, iCloud, App Groups).
Xcode menandatangani setiap pustaka dan framework di dalam .app bundle, kemudian menandatangani bundle itu sendiri. IPA akhir ditandatangani di tingkat arsip ZIP. Apple memeriksa semua tingkat penandatanganan saat instalasi. iOS tidak menjalankan aplikasi jika setidaknya satu komponen memiliki tanda tangan yang tidak valid.
// Verifikasi tanda tangan melalui Security framework
import Security
func checkSignature() -> Bool {
let url = Bundle.main.bundleURL
var staticCode: SecStaticCode?
guard SecStaticCodeCreateWithPath(
url as CFURL,
[], &staticCode
) == errSecSuccess else {
return false
}
return true
}
App Store Connect — platform Apple untuk mengelola publikasi aplikasi. Pengunggahan IPA dilakukan melalui Xcode Organizer, Transporter, atau baris perintah melalui xcrun altool.
Setelah membuat arsip, Xcode menawarkan Distribute App dengan pilihan metode: App Store Connect, Ad-hoc, Enterprise, atau Development. Setelah memilih App Store Connect, pengembang menunjukkan tim dan mengonfirmasi pengunggahan. Xcode memeriksa tanda tangan, mengirim IPA ke server Apple, dan mengembalikan status pemrosesan.
Untuk CI/CD digunakan xcrun altool atau notarytool yang lebih baru. Apple memerlukan pengesahan notaris untuk aplikasi macOS, untuk iOS langkah ini opsional namun disarankan. xcodebuild -exportArchive membuat IPA yang ditandatangani siap diunggah.
Apple memeriksa setiap IPA untuk kode berbahaya, API pribadi, dan kepatuhan terhadap App Store Review Guidelines. Proses pemeriksaan memakan waktu 1 jam hingga 2 hari.
Saat mengunggah IPA ke App Store Connect, Apple menerapkan App Thinning — teknologi optimasi biner untuk perangkat tertentu. Slicing menghapus dari IPA sumber daya untuk resolusi dan arsitektur yang tidak didukung. On-Demand Resources memungkinkan mengunduh bagian aplikasi (level game, video) hanya atas permintaan pengguna. Bitcode — representasi perantara yang dapat dikompilasi ulang oleh Apple untuk arsitektur baru tanpa partisipasi pengembang.
App Store juga memeriksa kepatuhan IPA terhadap persyaratan Sandbox: aplikasi tidak boleh mengakses data aplikasi lain, sistem file di luar kontainernya, dan fungsi perangkat keras tanpa izin eksplisit pengguna.
TestFlight — layanan resmi Apple untuk pengujian beta aplikasi. Pengembang mengunggah IPA ke App Store Connect dan mengundang penguji melalui email atau tautan publik.
Internal Testing — hingga 100 peserta dari tim pengembang. Tidak memerlukan pemeriksaan Apple. External Testing — hingga 10.000 peserta, memerlukan Beta App Review. TestFlight secara otomatis mendistribusikan build ke penguji dan mengumpulkan analitik.
Build tersedia untuk pengujian selama 90 hari setelah diunggah. TestFlight mendukung hingga 100 build aktif secara bersamaan. Setiap penguji dapat menginstal hingga 30 aplikasi secara bersamaan. Crashlytics terintegrasi dengan TestFlight untuk mengumpulkan laporan crash dan kesalahan non-fatal.
Pembuatan IPA di lingkungan CI memerlukan runner macOS. GitHub Actions, GitLab CI, dan Bitrise menyediakan lingkungan macOS untuk build iOS. Fastlane lane `build_app` mengotomatiskan seluruh siklus: pengarsipan, penandatanganan, ekspor IPA, dan unggah ke TestFlight. Untuk mengelola sertifikat dan profil digunakan Match — alat Fastlane yang menyimpan tanda tangan di repositori Git terenkripsi.
Pengembang menghadapi sejumlah kesalahan karakteristik saat membangun dan menandatangani IPA. Sebagian besar terkait dengan konfigurasi sertifikat dan profil yang salah.
Xcode tidak menemukan Provisioning Profile yang sesuai dengan bundle ID dan sertifikat. Solusi — unduh profil terkini di Xcode Accounts → Download Manual Profiles atau gunakan Automatic Signing.
Kesalahan terjadi saat mengunggah IPA dengan arsitektur yang tidak valid. IPA modern hanya boleh berisi arm64. Kehadiran i386 atau x86_64 dalam biner menyebabkan penolakan. Solusi — periksa arsitektur di Build Settings dan kecualikan arsitektur simulator.
IPA tidak berisi struktur Payload/App.app yang benar. Apple mengharapkan hierarki yang tepat. Solusi — periksa bahwa arsip menyertakan folder Payload dengan satu .app bundle, bukan daftar file datar.
Untuk distribusi perusahaan digunakan program Enterprise Apple (299 USD/tahun). IPA ditandatangani dengan sertifikat Enterprise dan dapat diinstal di perangkat perusahaan mana pun tanpa batasan jumlah. Distribusi ad-hoc dibatasi hingga 100 perangkat per akun pengembang (99 USD/tahun). Sistem MDM (Mobile Device Management) seperti Jamf dan Microsoft Intune mendukung instalasi massal Enterprise-IPA.
Pertanyaan yang sering diajukan
IPA menggunakan format eksekusi Mach-O sebagai pengganti DEX, memerlukan Provisioning Profile untuk instalasi, dan melewati pemeriksaan ketat App Store. APK, tidak seperti IPA, dapat diinstal langsung tanpa perantara (sideloading).
Tidak, pembuatan IPA memerlukan Xcode dan alat Apple yang hanya tersedia di macOS. Alternatif: server macOS jarak jauh (Mac min, AWS Mac) atau layanan CI cloud (GitHub Actions dengan runner macOS).
Aplikasi sederhana — 5–30 MB. Aplikasi dengan kompleksitas sedang — 30–150 MB. Game bisa mencapai 4 GB. Apple membatasi ukuran unduhan melalui jaringan seluler hingga 200 MB, tetapi pengguna dapat mengunduh melalui Wi-Fi.
Untuk instalasi ad-hoc digunakan Xcode atau Apple Configurator. Aplikasi Enterprise didistribusikan melalui server internal dengan manifest.plist. Pengguna biasa tidak dapat menginstal IPA tanpa jailbreak atau TestFlight.
Fat IPA berisi beberapa arsitektur (arm64 + x86_64) untuk pembuatan universal. Thin IPA hanya berisi satu arsitektur untuk perangkat tertentu. Apple hanya menerima thin IPA untuk publikasi — file biner fat ditolak.
Kesimpulan
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.
Baca juga