IPA: apa itu, struktur file dan prinsip kerja

Penulis: IT Sectr Diterbitkan: 2026-04-15 Waktu membaca: 8 mnt

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 — format arsip untuk mendistribusikan aplikasi iOS melalui App Store dan instalasi ad-hoc.
  • Struktur mencakup file Mach-O yang dapat dieksekusi dan ditandatangani, sumber daya, dan Provisioning Profile.
  • Tanda tangan — wajib: tanpa sertifikat dan profil yang benar, IPA tidak akan terinstal.
  • Pembangunan dilakukan melalui Xcode dengan dukungan skema berbeda: Debug, Release, Ad-hoc, Enterprise.
  • Arsitektur — IPA modern berisi file biner untuk arm64, tanpa dukungan untuk perangkat 32-bit.

Apa itu IPA dan untuk apa digunakan

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.

Sejarah format

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.

Skenario penggunaan

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 file IPA

Struktur internal IPA adalah arsip ZIP yang berisi folder Payload dengan .app bundle dan metadata.

File/direktoriTujuan
Payload/Folder root dengan .app bundle
Payload/App.app/Bundle aplikasi: file eksekusi, sumber daya, nib/storyboard
Payload/App.app/Info.plistMetadata: bundle ID, versi, izin
Payload/App.app/embedded.mobileprovisionProvisioning Profile untuk instalasi
iTunesMetadata.plistMetadata untuk iTunes (opsional)
META-INF/Tanda tangan dan hash untuk verifikasi

Bundle .app

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.

File Mach-O yang dapat dieksekusi

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.

Proses pembuatan IPA melalui Xcode

Xcode mengotomatiskan pembuatan IPA: dari kompilasi kode sumber hingga pembuatan arsip yang ditandatangani siap diunggah ke App Store Connect.

Skema pembuatan

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.

objective-c
// 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>

Arsitektur pembuatan

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 IPA dan Provisioning Profile

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.

Komponen penandatanganan

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).

Proses penandatanganan

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.

swift
// 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
}

Publikasi IPA di App Store Connect

App Store Connect — platform Apple untuk mengelola publikasi aplikasi. Pengunggahan IPA dilakukan melalui Xcode Organizer, Transporter, atau baris perintah melalui xcrun altool.

Proses pengunggahan

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.

Baris perintah

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.

App Thinning: optimasi IPA untuk perangkat

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.

Pengujian IPA melalui TestFlight

TestFlight — layanan resmi Apple untuk pengujian beta aplikasi. Pengembang mengunggah IPA ke App Store Connect dan mengundang penguji melalui email atau tautan publik.

Pengujian internal dan eksternal

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.

Batasan TestFlight

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.

IPA dan Continuous Integration

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.

Masalah umum dengan IPA

Pengembang menghadapi sejumlah kesalahan karakteristik saat membangun dan menandatangani IPA. Sebagian besar terkait dengan konfigurasi sertifikat dan profil yang salah.

Kesalahan tanda tangan: No matching provisioning profile found

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.

ITMS-90125: The binary is invalid

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.

Invalid Bundle Structure: The bundle is missing the required .app bundle

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.

Distribusi IPA tanpa App Store

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

Apa perbedaan IPA dengan APK?

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).

Bisakah IPA dibuat di Windows?

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).

Berapa ukuran IPA tipikal?

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.

Bagaimana cara menginstal IPA tanpa App Store?

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.

Apa itu thin IPA dan fat IPA?

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

  • IPA — format distribusi aplikasi iOS berbasis ZIP dengan file Mach-O yang dapat dieksekusi.
  • Struktur mencakup Payload/.app bundle, Info.plist, tanda tangan, dan Provisioning Profile.
  • Pembuatan dilakukan melalui Xcode dengan kompilasi Swift/Objective-C menjadi kode mesin arm64.
  • Tanda tangan wajib: sertifikat + Provisioning Profile + entitlements diverifikasi oleh iOS saat instalasi.
  • Publikasi melalui App Store Connect dengan pemeriksaan Apple Review Guidelines.
  • TestFlight — alat resmi pengujian beta untuk hingga 10.000 peserta.
  • Batasan: pembuatan hanya di macOS, tanda tangan wajib, ukuran maksimal 4 GB.

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