0Pricing
Android Academy · Ders

Yayın Derlemesi Hazırlama

Uygulama paketleri ve küçültme.

Yayın Derlemesi Hazırlama, CoddyKit'te ücretsiz bir Android Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Android Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Android Academy kursu toplamda 4 dersten oluşur.

Hata Ayıklamadan Yayına

Her gün Android Studio'dan debug derlemesini çalıştırırsınız. Ancak Google Play'in ihtiyacı olan, daha küçük, daha hızlı ve hata ayıklanabilir olarak işaretlenmemiş bir release derlemesidir.

Bir yayın derlemesi üç temel açıdan farklıdır: yayın anahtarınızla imzalanır, debuggable false ayarına sahiptir ve genellikle kullanılmayan kodu ve kaynakları kaldırmak için küçültülür.

Bu derste düzgün bir yayın derlemesi hazırlayacak ve Google Play'in istediği dosyayı, bir Android App Bundle (.aab) üreteceksiniz.

Gradle'da Derleme Türleri

Gradle varsayılan olarak iki derleme türü tanımlar: debug ve release. Bunları modülünüzün build.gradle.kts dosyasında yapılandırırsınız.

release bloğu, optimizasyonları etkinleştirdiğiniz yerdir. Aşağıdaki isMinifyEnabled ve isShrinkResources ayarlarına dikkat edin; bunlar uygulamanızı küçülten anahtarlardır.

android {
    buildTypes {
        release {
            isMinifyEnabled = true
            isShrinkResources = true
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }
}

AAB ve APK

Google Play, düz bir .apk yerine bir Android App Bundle (.aab) gerektirir.

  • Bir .apk, her cihaz için kod ve kaynakları içerir: tüm ekran yoğunlukları, tüm CPU mimarileri ve tüm diller.
  • Bir .aab Play'e yüklenir; Play de her kullanıcının tam cihazına uygun küçük ve optimize edilmiş bir APK oluşturur.

Sonuç olarak kullanıcılar daha az veri indirir ve uygulamanız daha küçük kurulur. Bir telefonda doğrudan sınama yapmak için yine APK kullanabilirsiniz; ancak yayımlama biçiminiz AAB olmalıdır.

R8 / Küçültme Nedir

isMinifyEnabled = true olduğunda Android Studio R8'i çalıştırır. R8 tek geçişte üç iş yapar:

  • Küçültme — uygulamanızın hiç çağırmadığı sınıfları ve yöntemleri kaldırır.
  • Karartma — sınıfları ve yöntemleri yerden tasarruf etmek ve tersine mühendisliği zorlaştırmak için a, b, c gibi kısa adlarla yeniden adlandırır.
  • Optimizasyon — kodu daha hızlı çalışacak şekilde satır içine yerleştirir ve yeniden yazar.

Kaynak küçültme (isShrinkResources = true) ayrıca kullanılmayan çizimleri, düzenleri ve dizeleri kaldırır.

ProGuard ile Koruma Kuralları

R8, yalnızca yansıtma yoluyla başvurulan kodu (örneğin Gson, Retrofit veya serileştirme tarafından kullanılan kodu) bazen kaldırır ya da yeniden adlandırır. Bu kodu koruma kuralları ile proguard-rules.pro içinde korursunuz.

Bir koruma kuralı R8'e şunu söyler: "bu sınıfları yeniden adlandırma veya silme."

# proguard-rules.pro

# Keep data classes used with Gson reflection
-keep class com.example.app.model.** { *; }

# Keep Retrofit interface methods
-keepattributes Signature
-keepattributes *Annotation*

# Keep Kotlin metadata used by libraries
-keep class kotlin.Metadata { *; }

Uygulamanızda Sürüm Yönetimi

Her sürüm için build.gradle.kts içinde iki sürüm değeri gerekir:

  • versionCode — her yüklemede artırılması gereken bir tam sayı. Play, hangi derlemenin daha yeni olduğunu bununla belirler.
  • versionName — kullanıcılara gösterilen, "1.4.0" gibi insanların okuyabileceği bir dize.

versionCode değerini artırmayı unutursanız Play, yüklemeyi yinelenen bir sürüm olarak reddeder.

android {
    defaultConfig {
        applicationId = "com.example.app"
        minSdk = 24
        targetSdk = 35
        versionCode = 12
        versionName = "1.4.0"
    }
}

Android Studio'da Paketi Derleme

Kullanıcı arayüzünden imzalı bir sürüm paketi oluşturmak için:

  • Build → Generate Signed Bundle / APK seçeneğini açın.
  • Android App Bundle seçeneğini belirleyin.
  • Keystore'unuzu ve anahtarınızı seçin (veya oluşturun).
  • release derleme çeşidini seçin.

Android Studio R8'i çalıştırır, paketi imzalar ve .aab dosyasını app/release/ klasörüne bırakır. Play'e yüklediğiniz dosya bu tek dosyadır.

Komut Satırından Derleme

CI/CD veya betikler için paketi doğrudan Gradle ile derleyin. Görev adı bundle<Variant> biçimini izler.

bundleRelease, AAB'yi oluşturur. Dosya app/build/outputs/bundle/release/ konumuna yerleştirilir.

# Build a release App Bundle (.aab)
./gradlew bundleRelease

# Output:
# app/build/outputs/bundle/release/app-release.aab

# Build a release APK instead (for direct install/testing)
./gradlew assembleRelease

AAB'yi İnceleme ve Test Etme

.aab dosyasını doğrudan telefona yükleyemezsiniz. Play'in oluşturacağı APK'lerin aynısını test etmek için Google'ın bundletool aracını kullanın.

Bu araç, paketinizden cihaza özel APK'ler oluşturur ve bunları bağlı bir cihaza yükler; gerçek bir Play indirmesine en yakın yöntem budur.

# Generate APKs from the bundle for the connected device
java -jar bundletool.jar build-apks \
  --bundle=app-release.aab \
  --output=app.apks \
  --connected-device

# Install them on the device
java -jar bundletool.jar install-apks --apks=app.apks

Sürümden Hata Ayıklama Kodunu Kaldırma

Sürüm derlemesi hassas verileri günlüğe kaydetmemeli veya yalnızca hata ayıklamaya yönelik özellikleri etkin bırakmamalıdır. Davranışı farklılaştırmak için BuildConfig.DEBUG kullanın. Bu değer yalnızca hata ayıklama derlemelerinde true olur.

R8, sabit bir false değeriyle korunan blokları bile çıkarabilir; bu da boyutu azaltır.

fun setupLogging() {
    if (BuildConfig.DEBUG) {
        // Verbose logging only in debug builds
        Log.d("App", "Debug logging enabled")
        Timber.plant(Timber.DebugTree())
    } else {
        // Release: send to crash reporting only, no console spam
        Timber.plant(CrashReportingTree())
    }
}

Sürüme Hazırlık Kontrol Listesi

Son paketi derlemeden önce şunları doğrulayın:

  • versionCode artırılmış ve versionName güncellenmiş olmalı.
  • Sürüm için isMinifyEnabled ve isShrinkResources etkin olmalı.
  • Yansıtma kullanan tüm kitaplıklar için koruma kuralları eklenmiş olmalı.
  • targetSdk, Play'in güncel gereksinimini karşılamalı.
  • Sürüm kodunda yalnızca hata ayıklamaya yönelik günlük kaydı veya test uç noktaları bulunmamalı.
  • AAB'yi gerçek bir cihazda bundletool aracılığıyla test etmiş olmalısınız.

Bunlar tamamlandığında .aab dosyanız yüklemeye hazırdır.

Hızlı Kontrol

isMinifyEnabled = true ayarını yaptınız ve uygulamanız sürümde JSON ayrıştırıcınızdan gelen "class not found" hatasıyla çöküyor, ancak hata ayıklama sürümünde sorunsuz çalışıyor. En olası neden nedir?

Özet: Sürüm Derlemesi Hazırlama

Artık hata ayıklama uygulamasını yayımlanabilir bir derlemeye dönüştürmeyi biliyorsunuz:

  • Play imzalı bir .aab gerektirir ve Play bundan cihazlara özel APK'ler oluşturur.
  • release derleme türü, küçültme, karartma ve iyileştirme için isMinifyEnabled ve isShrinkResources aracılığıyla R8'i etkinleştirir.
  • Koruma kuralları, yansıtma tabanlı kodun kaldırılmasını önler.
  • Her zaman versionCode değerini artırın ve versionName değerini güncelleyin.
  • ./gradlew bundleRelease ile derleyin ve sonucu bundletool ile test edin.

Sıradaki konu: bu derlemeyi güvenilir kılan imzalamanın gerçekte nasıl çalıştığı.

Sıkça Sorulan Sorular

“Yayın Derlemesi Hazırlama” dersi ücretsiz mi?

Evet — “Yayın Derlemesi Hazırlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Android Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Android Academy kursu toplamda 4 dersten oluşur.

“Yayın Derlemesi Hazırlama” dersinde ne öğreneceğim?

Uygulama paketleri ve küçültme. Android Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Android Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Android Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Yayın Derlemesi Hazırlama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Android Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Android Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Yayın Derlemesi Hazırlama
  2. Uygulama İmzalama
  3. Play Console ve Mağaza Kaydı
  4. Yayınlama ve Güncellemeler
← Android Academy Sayfasına Dön