Uygulamanıza sürüm oluşturma

Sürüm oluşturma, uygulama yükseltme ve bakım işlemlerinizin kritik bir bileşenidir üzerine konuşacağız. Sürüm oluşturma şu nedenlerden dolayı önemlidir:

  • Kullanıcıların, kullandıkları uygulama sürümü hakkında belirli bilgilere sahip olması ve cihazlarında yüklü olan ve bu sürümler için mevcut olan teşekkür ederiz.
  • Diğer uygulamalar (yayınladığınız diğer uygulamalar dahil) bir uygulamadır. Bu nedenle, uygulamanızın sürümü için sistem sorgulaması ve bağımlılıkları belirlemeye yardımcı olur.
  • Uygulamalarınızı yayınladığınız hizmetlerin de şunları yapması gerekebilir: uygulamanızın sürümünü sorgulayarak uygulamanızın sürümünü yardımcı olur. Bir yayınlama hizmetinin, uygulama sürümünü kontrol etmesi ve ve eski sürüme geçiş ile yeni sürüme geçme ilişkileri kurma.

Android sistemi, cihazınızı korumak için uygulamanızın sürüm bilgilerini kullanır geri bildirimde bulunur. İlgili içeriği oluşturmak için kullanılan kullanıcının uygulama sürümü bilgilerini uygulama sürümü bilgileri ile yeni sürümler veya üçüncü taraf uygulamalarının uyumlulukları hakkında bilgi verir. Uygulamanız, ve bunları kullanıcılara anlatın.

Android sistemi, açıklandığı gibi sistem sürümü uyumluluğunu zorunlu kılar derleme dosyalarında minSdk ayarıyla yapılır. Bu ayar uygulamanın uyumlu olduğu minimum sistem API'sini belirtmesini sağlar. API şartları hakkında daha fazla bilgi için: API düzeyi şartlarını belirtme bölümüne bakın.

Farklı projelerde sürüm oluşturma şartları değişiklik gösterir. Ancak birçok geliştirici Anlamsal Sürüm Oluşturma sürüm oluşturma stratejisidir.

Uygulama sürümü bilgilerini ayarlama

Uygulamanızın sürüm bilgilerini tanımlamak için sürümün değerlerini ayarlayın şu ayarları yapabilirsiniz:

Eski

    android {
      namespace 'com.example.testapp'
      compileSdk 33

      defaultConfig {
          applicationId "com.example.testapp"
          minSdk 24
          targetSdk 33
          versionCode 1
          versionName "1.0"
          ...
      }
      ...
    }
    ...
    

Kotlin

    android {
      namespace = "com.example.testapp"
      compileSdk = 33

      defaultConfig {
          applicationId = "com.example.testapp"
          minSdk = 24
          targetSdk = 33
          versionCode = 1
          versionName = "1.0"
          ...
      }
      ...
    }
    ...
      

Sürüm ayarları

Kullanılabilir sürüm ayarlarının her ikisi için de değerler tanımlayın: versionCode ve versionName.

versionCode
Dahili sürüm numarası olarak kullanılan pozitif bir tam sayı. Bu numara, bir sürümün daha yeni olup olmadığını belirlemeye yardımcı olur (yüksek sayılar daha yeni sürümleri belirtir.) Bu kullanıcılara gösterilen sürüm numarası değil; bu sayı versionName ayar. Android sistemi versionCode değeri, geçişleri engelleyerek eski sürüme geçmeye karşı koruma sağlar kullanıcıların daha düşük versionCode değerine sahip bir APK yüklemesini .

Diğer uygulamaların programatik olarak değerlendirme yapabilmesi için değer, pozitif bir tam sayıdır. kontrol edebilirsiniz. Örneğin, yükseltme veya düşürme ilişkisini kontrol edebilirsiniz. Şunları yapabilirsiniz: değeri herhangi bir pozitif tam sayı olarak ayarlayın. Ancak mutlaka uygulamanızın arka arkaya her sürümü daha fazla değer ortaya çıkarıyor.

Not: Google Play'in izin verdiği en büyük değere versionCode 21.00000.000.

Sahip olduğunuz versionCode ile Play Store'a APK yükleyemezsiniz önceki bir sürüm için zaten kullanılıyor.

Not: Bazı durumlarda Uygulamanızın en yüksek sayıdan daha düşük versionCode değerine sahip bir sürümünü yükleyin son sürüm. Örneğin, birden fazla APK yayınlıyorsanız APK'nız olabilir Belirli APK'lar için versionCode aralıkları önceden ayarlanmış. Şu konuda daha fazla bilgi için: birden fazla APK için versionCode değeri atanıyor, Sürüm kodları atama.

Genellikle uygulamanızın ilk sürümünü versionCode 1'e ayarlanır, ardından değeri monoton bir şekilde artırır Büyük veya küçük bir yayın olup olmamasına bakılmaksızın her yayınla ilgili küçük yayın. Bu, versionCode değerinin uygulama sürüm sürümüne benzese de kullanıcı tarafından görülebilir. Uygulamalar ve yayınlama hizmetlerinde bu sürüm gösterilmemelidir değer katarlar.

versionName

Şu kullanıcılara gösterilen sürüm numarası olarak kullanılan bir dize: yardımcı olur. Bu ayar, ham dize olarak veya bir dize kaynağı.

Değer bir dizedir, böylece uygulama sürümünü <ana>.<küçük>.<nokta> diğer türlerdeki mutlak veya göreli sürüm tanımlayıcısı. Tek değer versionName kullanıcılara gösterilir.

Sürüm değerlerini tanımlayın

Bu ayarlar için varsayılan değerleri tanımlamak üzere android {} içine yerleştirilmiş defaultConfig {} blok modülünüzün build.gradle veya build.gradle.kts dosyasının bloğunu temsil eder. Şunları yapabilirsiniz: ardından uygulamanızın farklı sürümleri için bu varsayılan değerleri geçersiz kılmak üzere değerlerini daha iyi anlayabilir. Aşağıdaki dosyada versionCode ve versionName ayarları defaultConfig {} blok ve productFlavors {} bloğu.

Daha sonra bu değerler, derleme işlemi sırasında uygulamanızın manifest dosyasında birleştirilir.

Eski

    android {
        ...
        defaultConfig {
            ...
            versionCode 2
            versionName "1.1"
        }
        productFlavors {
            demo {
                ...
                versionName "1.1-demo"
            }
            full {
                ...
            }
        }
    }
    

Kotlin

    android {
        ...
        defaultConfig {
            ...
            versionCode = 2
            versionName = "1.1"
        }
        productFlavors {
            create("demo") {
                ...
                versionName = "1.1-demo"
            }
            create("full") {
                ...
            }
        }
    }
    

Bu örneğin defaultConfig {} bloğunda versionCode değeri, mevcut APK'nın ve versionName dizesinde olarak görüneceğini unutmayın. Bu dosya ayrıca iki ürün aromasını tanımlıyor: "demo" ve "dolu" olarak da adlandırılır. Demodan bu yana ürün aroması versionName tanımını şu şekilde tanımlar: "1.1-demo", "demo" derleme, varsayılan değer yerine bu versionName değerini kullanır. "Tam" ürün aroma bloğu versionName öğesini tanımlamaz, dolayısıyla "1,1" varsayılan değerini kullanır.

Not: Uygulamanız, uygulama sürümünü doğrudan <manifest> öğesi, Gradle yapısındaki sürüm değerleri manifest dosyasındaki ayarları geçersiz kılar. Bunlara ek olarak, Gradle derleme dosyalarındaki ayarlar, işletmeniz için farklı değerler en iyi uygulamaları paylaşacağız. Daha fazla esneklik sağlamak ve manifesto birleştirildiğinde olası üzerine yazma ihtimalini ortadan kaldırın. Bunları kaldırın özelliklerini <manifest> öğesinden kaldırın ve sürüm ayarlarını Gradle derleme dosyalarında bulabilirsiniz.

Android çerçevesi, sistemi sorgulamanıza olanak tanıyan bir API sunar. adresini ziyaret edin. Sürüm bilgilerini almak için her bir arama terimi için PackageManager.getPackageInfo(java.lang.String, int) yöntemini çağırın.

API düzeyi gereksinimlerini belirtin

Uygulamanız için Android'in belirli bir minimum sürümü gerekiyorsa platformunda, bu sürüm koşulunu API düzeyi ayarlar olarak belirtebilirsiniz. uygulamanın build.gradle veya build.gradle.kts dosyası. Derleme sırasında bu ayarlar uygulamanızın manifest dosyasında birleştirilir. API düzeyini belirtme gereksinimleri, uygulamanızın yalnızca Android platformunun uyumlu bir sürümünü çalıştırıyorsunuz.

Not: API düzeyi gereksinimlerini doğrudan manifest dosyasına koyduğunuzda, derleme dosyalarındaki karşılık gelen ayarlar manifest dosyasındaki ayarları geçersiz kılabilir. Bunlara ek olarak, Gradle derleme dosyalarındaki ayarlar, işletmeniz için farklı değerler en iyi uygulamaları paylaşacağız. Daha fazla esneklik sağlamak ve manifesto birleştirildiğinde olası üzerine yazma ihtimalini ortadan kaldırın. Bunları kaldırın özelliklerini <uses-sdk> öğesinden kaldırın ve API'nizi tanımlayın düzeyinde ayarları Gradle derleme dosyalarında bulabilirsiniz.

İki API düzeyi ayarı vardır:

  • minSdk: Minimum sürüm uygulamanın çalışacağı Android platformuna ait platformun API düzeyi tanımlayıcısına göre değişir.
  • targetSdk — API düzeyi üzerinde çalışmak için tasarlandığını unutmayın. Bazı durumlarda bu, veya hedefte tanımlanan manifest öğelerini ya da davranışları kullanmak için Yalnızca tanımlananları kullanmakla sınırlı olmak yerine API düzeyi seçin.

build.gradle veya build.gradle.kts dosyası varsa, API düzeyindeki ayarlardan birini veya daha fazlasını android {} bloğunun içine yerleştirilmiş defaultConfig{} blok. Şunları yapabilirsiniz: farklı için bu varsayılan değerleri de geçersiz kıl uygulamanızın sürümleri için de ayarlar ekleyin.

Aşağıdaki dosya, varsayılan olarak minSdk ve targetSdk ayarları defaultConfig {} engelleme ve geçersiz kılma minSdk tek bir ürün türü için:

Eski

android {
    ...
    defaultConfig {
        ...
        minSdk 21
        targetSdk 33
    }
    productFlavors {
        main {
            ...
        }
        afterNougat {
            ...
            minSdk 24
        }
    }
}

Kotlin

android {
    ...
    defaultConfig {
        ...
        minSdk = 21
        targetSdk = 33
    }
    productFlavors {
        create("main") {
            ...
        }
        create("afterNougat") {
            ...
            minSdk = 24
        }
    }
}

Uygulamanızı yüklemeye hazırlanırken sistem, uygulamanızın bu ayarları sistem sürümüyle karşılaştırır. Öğe minSdk değeri sistem sürümünden büyükse sistem, uygulamanın yüklenmesini engeller.

Bu ayarları belirtmezseniz sistem, uygulamanızın varsayılan olarak tüm platform sürümleriyle uyumludur. Bu, minSdk öğesinin 1.

Daha fazla bilgi için API Düzeyi nedir? bölümüne bakın. Gradle derleme ayarları için Derleme varyantlarını yapılandırma bölümüne bakın.