App Bundle ID — apa itu, pengenal aplikasi dan pendaftaran

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

App Bundle ID — adalah pengenal unik aplikasi yang digunakan di ekosistem Apple dan Google untuk pendaftaran, penandatanganan, dan distribusi produk perangkat lunak. Setiap aplikasi mendapatkan Bundle ID-nya sendiri saat pembuatan proyek, dan pengenal ini tetap tidak berubah sepanjang siklus hidup. Menurut Apple Developer Documentation, Bundle ID digunakan untuk menghubungkan layanan, sertifikat, dan profil penandatanganan.

Poin Penting

  • App Bundle ID — pengenal global, unik untuk setiap aplikasi di toko
  • Format berdasarkan reverse domain notation: com.company.appname
  • Pendaftaran dilakukan di App Store Connect dan Google Play Console
  • Perubahan Bundle ID setelah publikasi tidak mungkin dilakukan tanpa membuat aplikasi baru
  • Penghubungan layanan (Push, CloudKit, Firebase) dilakukan melalui Bundle ID

Apa itu App Bundle ID

Bundle Identifier — adalah string yang secara unik mengidentifikasi aplikasi di sistem operasi dan toko aplikasi. Di iOS dan macOS disebut Bundle ID, di Android — Package Name, meskipun secara fungsional keduanya menjalankan peran yang sama: memastikan keunikan aplikasi di perangkat dan toko.

Tujuan Bundle ID

Sistem operasi menggunakan Bundle ID untuk membedakan aplikasi di perangkat. Dua aplikasi dengan pengenal yang sama tidak dapat diinstal secara bersamaan — sistem menganggapnya sebagai produk yang sama. Toko aplikasi juga memeriksa keunikan Bundle ID saat publikasi.

Sejarah dan standar penamaan

Apple memperkenalkan Bundle ID dengan dirilisnya iOS SDK pada tahun 2008. Format reverse domain notation diadopsi dari Java (package naming convention), di mana ia digunakan untuk mencegah konflik nama kelas. Google mengadopsi praktik ini untuk Android, yang memastikan keseragaman di kedua ekosistem seluler.

PlatformNama bidangContoh
iOS/macOSBundle Identifiercom.example.myapp
AndroidPackage Namecom.example.myapp
watchOSBundle Identifiercom.example.myapp.watchkit
tvOSBundle Identifiercom.example.myapp.tvos

Bagaimana format Bundle ID disusun

Bundle ID terdiri dari beberapa segmen yang dipisahkan oleh titik. Bagian pertama — pengenal pengembang atau perusahaan (com, org, net). Kedua — domain perusahaan (example, google, apple). Segmen berikutnya menentukan nama aplikasi dan platform.

Struktur Bundle ID

Bundle ID tipikal terlihat seperti com.company.appname. Apple merekomendasikan penggunaan notasi terbalik dari nama domain untuk menjamin keunikan global. Jika perusahaan tidak memiliki domain, penggunaan email diperbolehkan: com.example.myapp atau org.example.myapp.

  • Segmen 1 — TLD dalam urutan terbalik: com, org, io, net
  • Segmen 2 — domain perusahaan atau pengembang: google, apple, mycompany
  • Segmen 3 — nama aplikasi: maps, mail, notes
  • Tambahan — platform atau ekstensi: watchkit, todaywidget

Wildcard Bundle ID

Apple mendukung Wildcard Bundle ID — template pengenal dengan tanda bintang: com.example.*. Template semacam itu memungkinkan penggunaan satu App ID untuk beberapa aplikasi dari satu perusahaan. Wildcard ID nyaman pada tahap pengembangan, tetapi tidak disarankan untuk produksi karena membatasi penggunaan beberapa layanan Apple.

Batasan wildcard: Push Notifications, CloudKit, In-App Purchase dan Game Center memerlukan Bundle ID eksplisit (explicit). Saat menggunakan template com.example.*, layanan-layanan ini tidak tersedia. Untuk aplikasi produksi, selalu gunakan explicit Bundle ID untuk memastikan fungsionalitas penuh semua layanan Apple.

Selain wildcard, Apple mendukung pengenal awalan yang ditetapkan ke tim pengembang saat pendaftaran di Apple Developer Program. Awalan (Team ID) secara otomatis ditambahkan ke semua App ID dan profil penandatanganan. Dua Team ID yang berbeda dapat membuat Bundle ID yang sama, tetapi di perangkat mereka dianggap sebagai aplikasi yang berbeda.

Pendaftaran Bundle ID di konsol

Pendaftaran Bundle ID — tahap wajib sebelum publikasi aplikasi. Di ekosistem Apple, pendaftaran dilakukan di Apple Developer Portal melalui bagian Certificates, Identifiers & Profiles. Di Google Play, Bundle ID ditentukan saat membuat aplikasi di konsol pengembang.

Pendaftaran di Apple Developer Portal

Di portal Apple Developer, pilih bagian Identifiers, klik tombol Register dan tentukan jenis App ID. Masukkan nama persis Bundle ID dan pilih capabilities yang diperlukan: Push Notifications, CloudKit, Sign in with Apple. Setelah pendaftaran, pengenal tersedia untuk membuat profil penandatanganan.

swift
// Memeriksa Bundle ID dalam kode aplikasi
let bundleID = Bundle.main.bundleIdentifier
print("Bundle ID saat ini: \(bundleID ?? "unknown")")

// Memeriksa Bundle ID untuk kondisi kompilasi
if bundleID == "com.example.app.production" {
    // Konfigurasi produksi
    Analytics.shared.configure(.production)
}

Pendaftaran di Google Play Console

Google Play Console tidak memerlukan pendaftaran awal Bundle ID. Pengenal ditentukan dalam file build.gradle modul aplikasi dan harus unik di seluruh Google Play. Setelah aplikasi dibuat, perubahan Package Name tidak mungkin dilakukan, jadi pilihlah pengenal dengan hati-hati dan periksa keunikannya melalui pencarian di Google Play. Google tidak membebaskan pengenal aplikasi yang dihapus, jadi Bundle ID yang pernah diambil tetap tidak tersedia untuk pengembang lain.

Saat mendaftar di App Store Connect, Bundle ID harus ditentukan dari kumpulan pengenal yang sudah terdaftar. Jika pengenal belum terdaftar di portal Apple Developer, sistem akan menawarkan untuk membuatnya secara otomatis. Setelah pendaftaran, Bundle ID terikat ke tim dan tidak dapat dipindahkan ke akun pengembang lain tanpa menghubungi dukungan Apple. Setiap Bundle ID dapat memiliki beberapa profil penandatanganan untuk lingkungan yang berbeda: Development, Ad Hoc, App Store.

Saat mendaftarkan Bundle ID untuk aplikasi iOS dengan ekstensi, setiap komponen harus didaftarkan secara terpisah. Ekstensi widget, keyboard, Notification Service dan Watch App memiliki pengenal sendiri yang berasal dari pengenal utama. App Store Connect menggabungkannya ke dalam grup saat membuat App Record, yang memungkinkan publikasi semua komponen sebagai satu aplikasi.

Konfigurasi Bundle ID di proyek Xcode

Konfigurasi Bundle ID di Xcode dilakukan di beberapa tempat: Info.plist, Build Settings dan Signing & Capabilities. Bidang pusat — Bundle Identifier di target aplikasi. Semua layanan Apple, dari Push Notifications hingga CloudKit, terhubung ke pengenal ini. Bundle ID yang salah menyebabkan kesalahan penandatanganan dan ketidakmungkinan publikasi di App Store.

Mengubah Bundle ID di Xcode

xml
<!-- Info.plist — Bundle ID dasar proyek -->
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>

<!-- Build Settings — variabel PRODUCT_BUNDLE_IDENTIFIER -->
<!-- Debug: com.example.app.dev -->
<!-- Release: com.example.app -->

Xcode menggunakan variabel PRODUCT_BUNDLE_IDENTIFIER di Build Settings. Untuk konfigurasi kompilasi yang berbeda, nilai yang berbeda dapat ditetapkan: com.example.app.dev untuk Debug dan com.example.app untuk Release. Ini nyaman untuk instalasi paralel versi pengembangan di samping versi produksi pada perangkat yang sama untuk pengujian.

Konfigurasi multi-target

Jika aplikasi memiliki ekstensi (Notification Service, Widget, Watch App), setiap ekstensi mendapatkan Bundle ID sendiri dengan akhiran. Aplikasi utama: com.example.app. Ekstensi widget: com.example.app.widget. Watch App: com.example.app.watchkit. Setiap pengenal didaftarkan secara terpisah di Apple Developer Portal dan mendapatkan profil penandatanganan terpisah. Xcode secara otomatis mengelola dependensi ini saat kompilasi.

Perbedaan antara App Bundle ID dan Package Name

App Bundle ID (Apple) dan Package Name (Google) — adalah entitas analog dengan tujuan yang sama, tetapi dengan aturan penggunaan yang berbeda di ekosistem iOS dan Android. Kedua pengenal menggunakan reverse domain notation dan tidak dapat diubah setelah publikasi di toko aplikasi resmi.

Perbedaan fungsional

Di ekosistem Apple, Bundle ID terhubung dengan profil penandatanganan dan sertifikat. Saat berganti tim pengembang, Bundle ID dapat ditransfer antar akun melalui App Store Connect. Di Android, Package Name terikat secara kaku ke aplikasi di Google Play dan tidak dapat ditransfer antar akun pengembang.

KarakteristikiOS Bundle IDAndroid Package Name
Panjang maksimalTidak terbatas150 karakter
Pemisah segmenTitik (.)Titik (.)
Karakter yang diizinkanA-Z, a-z, 0-9, titik, tanda hubungA-Z, a-z, 0-9, titik, garis bawah
WildcardDidukung (*)Tidak didukung
Penggunaan dalam kodeBundle.main.bundleIdentifierBuildConfig.APPLICATION_ID

Meskipun ada perbedaan, kedua pengenal memainkan peran kritis: tanpa mereka, publikasi aplikasi di toko resmi tidak mungkin dilakukan. Rekomendasi untuk proyek lintas platform — gunakan pengenal yang sama di versi iOS dan Android untuk menyederhanakan integrasi dengan Firebase, Analytics, dan layanan lainnya. Ini juga memudahkan navigasi bagi tim pengembang: satu pengenal untuk kedua proyek mengurangi kebingungan saat konfigurasi CI/CD dan pengaturan lingkungan.

Saat pengembangan dengan Flutter atau React Native, pengenal tunggal sangat penting karena basis kode bersifat bersama dan banyak alat kompilasi otomatis mengharapkan nama paket yang sama untuk kedua platform. Proyek Firebase juga terhubung ke satu pengenal untuk iOS dan Android, yang menyederhanakan konfigurasi analitik dan pelaporan kesalahan.

Pertanyaan yang Sering Diajukan

Bisakah Bundle ID diubah setelah publikasi aplikasi?

Mengubah Bundle ID setelah publikasi di App Store atau Google Play tidak mungkin dilakukan. Sistem akan menganggap pengenal baru sebagai aplikasi yang sama sekali berbeda. Untuk memperbarui produk yang ada, Bundle ID harus tetap tidak berubah sepanjang siklus hidup aplikasi.

Apa yang terjadi jika dua aplikasi memiliki Bundle ID yang sama?

Perangkat iOS atau Android tidak akan mengizinkan penginstalan aplikasi kedua dengan pengenal yang sama di atas aplikasi pertama. Sistem akan menampilkan kesalahan dan menawarkan untuk menghapus aplikasi yang ada. Di toko, publikasi dengan Bundle ID duplikat juga akan diblokir.

Bagaimana cara memilih Bundle ID yang tepat untuk proyek baru?

Gunakan reverse domain notation perusahaan Anda: com.namaperusahaan.namaaplikasi. Hindari tanda hubung dan karakter khusus. Jika aplikasi memiliki ekstensi, tambahkan akhiran melalui titik. Pastikan pengenal unik dan tidak diambil oleh pengembang lain.

Apakah diperlukan Bundle ID terpisah untuk setiap ekstensi aplikasi?

Ya, setiap ekstensi — widget, Watch App, Notification Service — memerlukan Bundle ID sendiri. Pengenal membentuk hierarki: com.example.app sebagai dasar, com.example.app.widget untuk widget, com.example.app.watchkit untuk Watch. Semuanya didaftarkan secara terpisah di Apple Developer Portal dan menggunakan App ID bersama dengan aplikasi induk.

Apa perbedaan antara Bundle ID dan App ID di portal Apple Developer?

Bundle ID — adalah string pengenal dalam kode aplikasi. App ID — adalah objek di Apple Developer Portal yang menggabungkan Bundle ID dengan serangkaian layanan yang diaktifkan (capabilities). App ID dibuat berdasarkan Bundle ID dan digunakan untuk menghasilkan profil penandatanganan.

Kesimpulan

  • App Bundle ID — pengenal unik aplikasi di ekosistem iOS dan Android
  • Format berdasarkan reverse domain notation: com.company.appname
  • Perubahan Bundle ID setelah publikasi tidak mungkin dilakukan tanpa membuat aplikasi baru di toko
  • Wildcard Bundle ID com.example.* nyaman untuk pengembangan tetapi tidak kompatibel dengan Push, CloudKit, dan In-App Purchase
  • Ekstensi aplikasi mendapatkan Bundle ID sendiri dengan akhiran melalui titik
  • Pendaftaran dilakukan di Apple Developer Portal dan Google Play Console masing-masing
  • Rekomendasi — pilih pengenal dengan bijak, periksa keunikan sebelum publikasi

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