Android uygulamasının derlenmesini ve yayınlanmasını applicationId ve plugin id nasıl etkiler?
ApplicationId, yayınlama ve kurulum için kullanılan benzersiz bir uygulama tanımlayıcısıdır (örneğin, com.example.app); plugin id ise derleme davranışını yöneten bir Gradle eklentisi tanımlayıcısıdır (örneğin, com.android.application veya org.jetbrains.kotlin.android). Aşağıda, bunların nasıl ve nerede belirleneceği ile hızlıca nasıl kontrol edileceği açıklanmaktadır.
applicationId nerede belirlenir ve nasıl görünür?
app modülünde (build.gradle veya build.gradle.kts) applicationId'yi defaultConfig bloğunda belirtin. Örnekler:
Groovy:
android {
defaultConfig {
applicationId "com.mycompany.coolapp"
minSdkVersion 24
versionCode 1
versionName "1.0"
}
}
Kotlin DSL:
android {
defaultConfig {
applicationId = "com.mycompany.coolapp"
minSdk = 24
versionCode = 1
versionName = "1.0"
}
}
Faydalı ipuçları:
- Hata ayıklama derlemeleri için applicationIdSuffix kullanın:
buildTypes {
debug {
applicationIdSuffix ".debug" // com.mycompany.coolapp.debug
}
}
- Mağazada kasıtlı olarak yeni bir uygulama oluşturmadığınız sürece yayın sürümünün applicationId'sini değiştirmeyin; bu, yeni yorum ve kurulum geçmişine sahip ayrı bir uygulama hesabı oluşturur.
plugin id nerede belirlenir ve nasıl görünür?
Plugin id, plugins bölümünde veya kök build.gradle / settings.gradle(.kts) dosyasında belirtilir. Örnekler:
Groovy (modüler build.gradle):
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
Kotlin DSL (sürüm kataloğu ile kök dizin):
// settings.gradle.kts / gradle/libs.versions.toml
[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
// Modülde
plugins {
alias(libs.plugins.androidApplication)
}
Öneriler:
- APK/AAB uygulamaları için com.android.application; AAR kütüphaneleri için com.android.library kullanılır.
- Eklenti bulunamazsa, depoları (google(), mavenCentral()) ve AGP/Kotlin sürümünün doğruluğunu kontrol edin.
Eklenti sürümlerini Version Catalog (libs.versions.toml) aracılığıyla merkezi hale getirin; bu, AGP ve Kotlin güncellemelerini kolaylaştırır.
Projede ve cihazda applicationId ile plugin id'yi hızlıca nasıl kontrol edersiniz?
ApplicationId:
- Android Studio'da: Modülün build.gradle dosyasını açın — defaultConfig içindeki applicationId alanına bakın. Derlenmiş APK için: Build > Analyze APK — meta verilerde Application ID yer alacaktır.
- Gradle üzerinden: ./gradlew :app:printVariantProperties (veya --info ile derleme) — applicationId içeren satırlara bakın; ayrıca ./gradlew installDebug hangi paketin kurulduğunu gösterecektir.
- Cihazda: adb shell pm list packages | grep <id_parçası> veya Ayarlar > Uygulamalar (cihaza bağlı olarak).
Plugin id:
- Modülün build.gradle(.kts) dosyasındaki plugins bölümünde. Merkezi tanımlamada kök build.gradle veya settings.gradle(.kts) dosyasında.
- ./gradlew tasks --all görevleri gösterir; görev kümelerine bakarak android eklentisinin bağlanıp bağlanmadığını anlayabilirsiniz (assembleDebug, assembleRelease vb.).
Sık yapılan hatalar
- Başka bir uygulamanın applicationId'siyle çakışma — yayınlarken hata alırsınız; benzersiz bir taneyle değiştirin (örneğin, bir alan adı veya sonek ekleyin).
- AndroidManifest'teki package'ı değiştirip applicationId'yi değiştirmemek — Play Store'daki uygulama, kod içindeki package değil, applicationId ile tanımlanır.
- Depoların eksikliği (google(), mavenCentral()) — eklenti indirilmez, derleme "Plugin not found" hatasıyla başarısız olur.
- AGP ve Gradle sürümlerinin uyumsuzluğu — güncelleme sırasında sürüm gereksinimlerini kontrol edin.
SSS
- applicationId'nin kod içindeki package ile eşleşmesi gerekir mi? Hayır. applicationId sistemde/mağazadaki kimliği belirler; package ise kaynak kodunun ad alanıdır. Package'ı eski halinde bırakıp applicationId'yi açıkça belirleyebilirsiniz.
- Yayından sonra applicationId'yi değiştirmek istersem ne yapmalıyım? Bu fiilen yeni bir uygulamadır; veri ve yorumların aktarımı otomatik olarak gerçekleşmez. Geçiş sürecini ve kullanıcılarla iletişimi planlayın.
- AGP ve Kotlin eklenti sürümünü nasıl öğrenebilirim? Kök build.gradle(.kts) veya sürüm kataloğu dosyasında (libs.versions.toml) sürümler belirtilir; ayrıca Android Studio bunları Project Structure'da gösterir.
applicationId ve plugin id ayarlamak birkaç dakika sürer ancak yayınlama ve derleme sorunlarını önler; bunları açıkça belirleyin ve eklenti sürümlerini merkezi tutun.