Cihaz Katmanı Hedefleme

Cihaz Katmanı Hedefleme nedir?

Cihaz Katmanı Hedefleme, cihazlara aynı öğenin farklı sürümlerini (ör. çözünürlükler vb.) dayalı olarak cihazlara sunmanıza olanak tanır. Örneğin, performansı artırmak için düşük kaliteli cihazlara düşük çözünürlüklü öğeler, grafik kalitesini artırmak için ise üst segment cihazlara yüksek çözünürlüklü öğeler yayınlamayı tercih edebilirsiniz. Üstelik tüm bunları kullanıcı cihazlarına yalnızca gerekli öğeleri göndererek genel oyun boyutunda herhangi bir artışa yol açmadan yapabilirsiniz. Bu, Play Asset Delivery'deki öğe paketi kavramını temel alır. Aşağıda görebileceğiniz gibi, katman kriterlerini tanımlayabilirsiniz (şimdilik RAM'e, belirli cihaz modellerine veya mevcut sistem özelliklerine bağlı olarak) ve en fazla 5 katman kullanabilirsiniz.

Play Asset Delivery gibi, Cihaz Katmanı Hedefleme de API 16 (Jelly Bean 4.1) ve sonraki sürümlerini destekler. Ancak API 19 (KitKat 4.4.X) ve daha düşük cihazlarda, varsayılan katman cihaz yapısından bağımsız olarak yayınlanır.

Geliştirici Yolculuğu

Genel olarak, DTT'yi mevcut oyununuza entegre etmek için aşağıdaki adımları uygulamanız gerekir:

  1. Cihaz Katmanı Hedeflemesini (ve buna bağlı olarak Play Asset Delivery) oyununuza entegre edin
    • Play Asset Delivery'yi oyununuza entegre edin (henüz yapmadıysanız)
    • Öğelerinizi öğe paketlerine bölün
    • Play'e yükleyeceğiniz nihai Android App Bundle yapısı için kodunuzu ve öğelerinizi birlikte paketleyin.
  2. Play'in öğelerinizi kullanıcı cihazlarına nasıl yayınlayacağını bilmesi için Cihaz Katmanı Hedefleme yapılandırmanızı oluşturun.
    • Google Play Geliştirici API'sini (henüz tamamlanmadıysa) ayarlayın. Bu API, DTT yapılandırmalarını Play'e göndermek için kullanacaksınız.
    • DTT yapılandırmasını oluşturma adımlarını uygulayın.
  3. AAB'nizi Play'e yükleyin ve her şeyin doğru yapılandırıldığından emin olmak için test edin

İlk bölümde, kullandığınız derleme sistemine bağlı olarak kılavuzda çatallar olduğunu fark edeceksiniz. Seçtiğiniz sistem, kullandığınız motora ve mevcut kurulumunuza bağlıdır.

  • Gradle (Java ve yerel oyunlar için önerilir): Gradle kullanılarak oluşturulan oyunlarda, derleme sistemini AAB'nizi DTT desteğiyle oluşturacak şekilde yapılandırmak için aşağıdaki adımları uygulayın.
    • Oyununuzu Gradle'a aktardıktan sonra derlemenizi orada tamamlarsanız, aşağıdaki talimatları (ör. Unity oyunları Gradle'a aktarılır))
  • Unity Eklentisi: AAB'nizi DTT desteğiyle yapılandırıp derlemenizi sağlayan Unity projenize aktarabileceğiniz birlik paketleri sağlarız.

Uygulamanızda Cihaz Katmanı Hedeflemesini ayarlama

Play Asset Delivery'yi oyununuza entegre etme (henüz tamamlanmamışsa)

Play Asset Delivery (PAD), yükleme veya çalışma zamanında oyununuzun öğelerini dinamik olarak sunmanızı sağlar. Bununla ilgili genel bakışı buradan okuyabilirsiniz. Play, Cihaz Katmanı Hedeflemesi sayesinde farklı cihaz katmanları için belirttiğiniz cihaz katmanı yapılandırmalarına göre öğe paketleri yayınlar. Aşağıdaki yönergeleri uygulamanız ve PAD'i oyununuza entegre etmeniz (ör. öğe paketleri oluşturma, oyununuzda alma uygulaması) ve ardından proje kodunu Cihaz Katmanı Hedeflemeyi etkinleştirecek şekilde değiştirmeniz önerilir.

Gradle

Gradle ile oluşturulan oyunlarda Gradle ile öğe paketlerinizi oluşturmak için bu talimatları kullanın, ardından öğe paketi alma özelliğini oyununuza entegre etme talimatlarını uygulayın:

Üçlü

Unity'de oluşturulan oyunlar için öğe paketlerinizi, bu talimatlarda açıklandığı gibi AssetPackConfig sınıfını kullanarak yapılandırmanız gerekir.

Cihaz katmanına özel dizinler oluşturma

Gradle kullanıyorsanız

Şimdi öğelerinizi daha sonra tanımlayacağınız N katmanına (maks. 5) ayıracaksınız. Son adımda oluşturulan mevcut öğe paketi dizinlerini alarak DTT dizinlerinizi oluşturun ve uygun klasörü (aşağıda açıklandığı gibi) #tier_0, #tier_1, #tier_2 vb. ile düzeltin. Oyununuzda öğe paketlerini kullanırken klasörleri sonek ile ele almanız gerekmez (başka bir deyişle, sonek, derleme işlemi sırasında otomatik olarak çıkarılır).

Önceki adımdan sonra, bu durum aşağıdaki gibi görünebilir:

...
.../level1/src/main/assets/character-textures#tier_2/
.../level1/src/main/assets/character-textures#tier_1/
.../level1/src/main/assets/character-textures#tier_0/
...

Klasör altındaki dosyalara eriştiğinizde aynı yolu yayın düzeltme olmadan kullanabilirsiniz (bu örnekte, herhangi bir son ek olmadan level1/assets/character-textures/ olarak başvuruda bulunurum).

Unity kullanıyorsanız

DTT kullanan bir öğe paketi eklemek için aşağıdaki AssetPackConfig yöntemlerini kullanabilirsiniz:

/// Package the specified raw assets in the specified folders,
/// keyed by DeviceTier, in an AssetPack with the specified delivery mode.
public void AddAssetsFolders(
    string assetPackName,
    IDictionary<DeviceTier, string> deviceTierToAssetPackDirectoryPath,
    AssetPackDeliveryMode deliveryMode)

/// Package the specified AssetBundle files, which vary only by DeviceTier,
/// in an AssetPack with the specified delivery mode.
public void AddAssetBundles(
    IDictionary<DeviceTier, string> deviceTierToAssetBundleFilePath,
    AssetPackDeliveryMode deliveryMode)

Örneğin, karakteriniz için çeşitli ayrıntı düzeylerinde üç AssetBundles adınızın olduğunu varsayalım.

Bu AssetBundles öğesini ilgili cihaz katmanıyla eşlemek için aşağıdaki snippet'i kullanın.

var assetPackConfig = new AssetPackConfig();
var tiers = new Dictionary<DeviceTier, string>
{
    {0, "Assets/LowPoly/Character"},
    {1, "Assets/Mid/Character"},
    {2, "Assets/Detailed/Character"}
};
assetPackConfig.AddAssetBundles(tiers, AssetPackDeliveryMode.OnDemand);

Android App Bundle'ı oluşturma

Gradle

Projenizin build.gradle dosyasında, Android Gradle eklentisi ve bundletool için bağımlılıklarınızı aşağıdaki (veya daha yüksek bir sürüm) olacak şekilde yapılandırın:

buildscript {
  dependencies {
    classpath 'com.android.tools.build:gradle:4.2.0'
    classpath "com.android.tools.build:bundletool:1.7.1"
    ...
  }
  ...
}

Gradle sürümünüzü 6.7.1 veya üzeri bir sürüme de güncellemeniz gerekir. Bunu projenizin içindeki gradle/wrapper/gradle-wrapper.properties bölümünden güncelleyebilirsiniz.

distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-all.zip

Son olarak, Play Asset Delivery Kitaplığı'nı kullanmanız gerekir. Hâlâ monolitik Play Core Kitaplığı'nı kullanıyorsanız 1.8.3 veya sonraki bir sürüme güncelleyin. Mümkünse Play Öğe Yayınlama Kitaplığı'na geçmenizi ve en son sürüme güncellemenizi öneririz.

dependencies {
  implementation 'com.google.android.play:asset-delivery:2.0.1'
  ...
}

Ana uygulama modülünün build.gradle dosyasında DTT bölmesini etkinleştirin:

android {
  bundle {
    deviceTier {
      enableSplit true
    }
    ...
  }
  ...
}

Son olarak, Android App Bundle'ınızı (AAB) oluşturabilirsiniz.

Paket aracı

Paketinizi Bundletool ile oluşturun ve AAB'nizi özelleştirme adımındayken aşağıdaki kodu BundleConfig.pb dosyanıza ekleyin.

{
  ...
  "optimizations": {
    "splitsConfig": {
      "splitDimension": [
      ...
      {
        "value": "DEVICE_TIER",
        "negate": false,
        "suffixStripping": {
          "enabled": true,
        }
      }],
    }
  }
}

Üçlü

AssetPackConfig öğenizi DTT paketlerinizi içerecek şekilde yapılandırdıktan sonra, bu yapılandırmayı AAB'nizi oluşturmak için aşağıdaki yöntemlerden birine geçirebilirsiniz:

// Configures the build system to use the newly created assetPackConfig when
// calling Google > Build and Run or Google > Build Android App
Bundle.AssetPackConfigSerializer.SaveConfig(assetPackConfig);
// Alternatively, use BundleTool.BuildBundle to build an App Bundle from script
BuildBundle(new buildPlayerOptions(), assetPackConfig)

Yerel Test

Devam etmeden önce her şeyin doğru yapılandırıldığından emin olmak için uygulama paketinizi yerel olarak test etmeniz önerilir. bundletool (1.8.0 veya üzeri) kullanarak uygulamanızı yerel olarak derleyip test ederek doğru cihaz katmanını açıkça belirtirsiniz. Öncelikle build-apks'i kullanarak bir .apks dosya grubu oluşturacak, ardından uygulamanızı install-apks kullanarak bağlı bir cihaza dağıtacaksınız. Cihaz katmanı işaretini kullanarak da hangi katmanın yüklenmesini istediğinizi belirtebilirsiniz. Bu yerel test yöntemiyle ilgili daha fazla bilgiyi burada bulabilirsiniz (bu sayfada henüz DTT için güncellenmediğini, bu nedenle device-tier işaretinin bulunmadığını lütfen unutmayın).

bundletool build-apks --bundle=/path/to/app.aab --output=/path/to/app.apks --local-testing
bundletool install-apks --apks=/path/to/app.apks --device-tier=1

Alternatif olarak: Belirli bir cihaza ait bir APK grubunu ayıklamak için extract-apks aracını da kullanabilirsiniz. Ancak get-device-spec kullanıldığında bu cihazın cihaz katmanının belirtilmesiyle birlikte --local-testing işaretiyle birlikte çalışmaz. Bu da hızlı takip veya isteğe bağlı öğe paketlerini test edemeyeceğiniz anlamına gelir.

bundletool get-device-spec --output=/path/to/device-spec.json --device-tier=1
bundletool extract-apks --apks=/path/to/existing_APK_set.apks --output-dir=/path/to/device_specific_APK_set.apks --device-spec=/path/to/device-spec.json

Üçlü

Google -> Derle ve Çalıştır menü seçeneği, oyununuzu --local-testing işareti etkin şekilde derler ve çalıştırır. Ancak install-apks komutuna iletilen cihaz katmanını belirtmenize izin vermez.

0 dışında bir cihaz katmanı belirtmek istiyorsanız şunları yapmanız gerekir:

  1. Google -> Android App Bundle Oluştur menü seçeneğini kullanarak AAB'yi oluşturun.
  2. Derlenen AAB'de bundletool, build-apks ve install-apks özelliklerini çalıştırmak için önceki bölümde verilen talimatları uygulayın.

Google Play Geliştirici API'si Aracılığıyla Cihaz Katmanı Yapılandırması Oluşturma

Google Play Developer API'yi kullanmaya başlama (henüz tamamlanmamışsa)

Cihaz Katmanı Hedeflemesini yapılandırmak için (ör. her bir katman için gereksinimlerin tanımlanması), yapılandırmanızı Google Play'e yüklemek üzere Android Yayıncı API'sini kullanmanız gerekir. Yukarıdaki bağlantıdan API hakkında daha fazla bilgi edinebilirsiniz. Başlamak için izlemeniz gereken birkaç adım mevcuttur:

  1. API projenizi oluşturun (gerekirse) ve Google Play Console'unuza bağlayın.
  2. API Erişim İstemcisi kurma.

API referansını burada bulabilirsiniz. Daha sonra derlemenizi API aracılığıyla yüklemeyi seçerseniz Düzenleme yöntemlerini kullanırsınız. Ayrıca, API'yi kullanmadan önce bu sayfayı incelemeniz önerilir.

Device Tier Configuration API'yi kullanma

Cihaz katmanı yapılandırmanızı oluşturmak için aşağıdaki API çağrısını kullanabilirsiniz:

Cihaz Katmanı Yapılandırması Oluşturma

HTTP isteği POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
Yol parametreleri Yok
İstek Metni Cihaz Katmanı Yapılandırması
Yanıt Gövdesi Cihaz Katmanı Yapılandırması
Cihaz Katmanı Yapılandırma Nesnesi

Cihaz katmanları 2 adımdan oluşur:

  1. Bir cihaz grubu kümesi tanımlayın.
  2. Cihaz gruplarınıza bir seviye atayarak cihaz katmanı grubunuzu tanımlayın.

Cihaz grubu, yapılandırmada tanımladığınız seçicilerle eşleşen bir cihaz grubudur.

Seçiciler, cihaz RAM'i ve cihaz modeliyle ilgili gereksinimleri tanımlayabilir.

Gruplar, seçtiğiniz bir adla tanımlanır; grupların çakışmasına izin verilir.

Ardından, grupları sıralayarak cihaz katmanı grubunuzu tanımlayabilirsiniz: Her cihaz katmanı, cihazın seviyesine ve bir cihaz grubuna göre tanımlanır.

Bir cihaz birden fazla katmanla eşleşirse en yüksek eşleşen katmanın içeriği sunulur.

  {
    device_groups: [
      {
        name: string,
        device_selectors: [
          {
            device_ram: {
              min_bytes: integer
              max_bytes: integer
            },
            included_device_ids: [
              {
                build_brand: string,
                build_device: string
              }
            ],
            excluded_device_ids: [
              {
                build_brand: string,
                build_device: string
              }
            ],
            required_system_features: [
              {
                name: string
              }
            ],
            forbidden_system_features: [
              {
                name: string
              }
            ]
          }
        ]
      }
    ],
    device_tier_set: {
      device_tiers: [
        {
          level: int,
          device_group_names: [string]
        }
      ]
    }
  }

Alanlar:

  • device_confid_id (tamsayı): Bu cihaz katmanı yapılandırmasına karşılık gelen kimlik.
  • device_groups (nesne): Grup tanımları

    • name (dize): Cihaz grubunun adı (tanımladığınız dize kimliği).
    • device_selectors (object): Bir cihazın bu gruba ait olması için cihaz gereksinimleri.
    • device_ram (nesne): Cihaz RAM gereksinimleri
      • min_bytes (tam sayı, dahil): Minimum gerekli RAM (bayt cinsinden)
      • max_bytes (tam sayı, hariç): Gerekli maksimum RAM (bayt cinsinden)
    • included_device_id (nesne): Bu seçiciye dahil edilecek cihaz modelleri (grup başına maks. 10.000 device_id) Bir cihazın seçiciyle eşleşmesi için bu listede olması gerekir. Bu, tam seçiciyle eşleşme için gerekli ancak yeterli değildir (Bir seçicide gereksinimleri birleştirmeyle ilgili yukarıdaki nota bakın).
      • build_brand (dize): Cihaz üreticisi
      • build_device (dize): Cihaz modeli kodu
    • excluded_device_ids (object): Bu seçiciden hariç tutulacak cihaz modelleri (grup başına maks. 10.000 device_id) Bu listedeki bir cihaz, seçicideki diğer tüm gereksinimlerle eşleşse bile seçiciyle eşleşmez.
      • build_brand (dize): Cihaz üreticisi
      • build_device (dize): Cihaz modeli kodu
    • required_system_features (nesne): Bir cihazın bu seçici tarafından eklenmesi gereken özellikler (grup başına maksimum 100 özellik). Bir cihazın, seçiciyle eşleşmesi için bu listedeki tüm sistem özelliklerine sahip olması gerekir. Bu, tam seçiciyle eşleşme için gerekli ancak yeterli değildir (bir seçicide gereksinimleri birleştirmeyle ilgili yukarıdaki nota bakın).

      Sistem özellik referansı

      • name (dize): Bir sistem özelliği
    • forbidden_system_features (nesne): Bu seçiciye bir cihazın dahil edilmesi gerekmeyen özellikler (grup başına en fazla 100 özellik). Cihaz, bu listedeki sistem özelliklerinden herhangi birine sahipse seçicideki diğer tüm gereksinimlerle eşleşse bile seçiciyle eşleşmez.

      Sistem özellik referansı

      • name (dize): Bir sistem özelliği
  • device_tiers (nesne): Katman tanımları

    • level (int): Katman düzeyi
    • group_name (dize dizisi): Bu katmana ait cihaz gruplarının adı

Google Play Console'daki Cihaz Kataloğu'nu kullanarak cihaz üreticisi ve model kodu için doğru biçimlendirmeyi bulabilirsiniz. Bunun için:

  • Cihaz Kataloğu'nu kullanarak cihazları ayrı ayrı inceleme ve aşağıdaki örnekte gösterildiği gibi ilgili konumlarda üretici ve model kodunu bulma (Google Pixel 4a için üretici "Google", model kodu ise "gün balığı")

    cihaz kataloğunda pixel 4a sayfası

    cihaz kataloğunda pixel 4a sayfası

  • Desteklenen cihazları içeren bir CSV dosyası indirip build_brand ve build_device alanları için Manufacturer ve Model Kodu'nu kullanma.

Örnekteki 3 katmanlı yapılandırma - 2. katman, yüksek cihaz grubunu (7 GB ve Pixel 4'ün üzerindeki tüm cihazları içerir), katman 1'in cihaz grubu medium (4-7 GB arasındaki tüm cihazları içerir) ve dolaylı olarak tümünü yakala grubu olarak tanımlanan katman 0'ı kullanır.

{
  device_groups: [
    {
      name: 'high',
      device_selectors: [
        {
          device_ram: {
            min_bytes: 7516192768
          },
        },
        {
          included_device_ids: [
            {
              build_brand: 'google',
              build_device: 'flame'
            }
          ],
        }
      ]
    },
    {
      name: 'medium',
      device_selectors: [
        {
          device_ram: {
            min_bytes: 4294967296,
            max_bytes: 7516192768
          },
        }
      ]
    }
  ],
  device_tier_set: {
    device_tiers: [
      {
        level: 1,
        device_group_names: [
          'medium'
        ]
      },
      {
        level: 2,
        device_group_names: [
          'high'
        ]
      }
    ]
  }
}

Google Play'e yüklemeden önce Cihaz Hedefleme Yapılandırmanızı doğrulamak için aşağıdaki talimatları uygulayabilirsiniz.

Kimliğe Göre Cihaz Katmanı Yapılandırması Alma

Belirli bir cihaz katmanı yapılandırmasını, aşağıdaki çağrıyı kullanarak kimliğe göre alabilirsiniz:

HTTP isteği GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}
Yol parametreleri Yok
İstek Metni Yok
Yanıt Gövdesi Cihaz Katmanı Yapılandırması

Cihaz Katmanı Yapılandırmalarının listesini alma

Aşağıdaki çağrıya göre son 10 cihaz katmanı yapılandırmasını alabilirsiniz (veya page_token sorgu parametresini kullanarak ideal olarak 10'luk bir küme belirtebilirsiniz):

HTTP isteği GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
Yol parametreleri Yok
Sorgu parametreleri page_token (isteğe bağlı) - 10 DTC'den oluşan belirli bir grubu belirtmek için kullanılır. Bu seçenek, 10'dan fazla DTC oluşturduysanız ve son 10 DTC'den önce oluşturulmuş DTC'leri görmek istiyorsanız kullanışlıdır.
İstek Metni Yok
Yanıt Gövdesi Cihaz Katmanı Yapılandırmalarının Listesi

page_token (sayfa_jetonu)

Cihaz Hedefleme Yapılandırmanızı Doğrulama

bundletool, Cihaz Hedefleme Yapılandırmanızın Play'e yüklemeden önce gerektiği gibi çalıştığını doğrulamanıza yardımcı olacak iki komut içerir.

bundletool print-device-targeting-config sayesinde JSON dosyanızın söz dizimsel olarak doğru olduğunu doğrulayabilir ve cihaz gruplarınız ile katmanlarınızı daha okunabilir bir biçimde görselleştirebilirsiniz.

bundletool print-device-targeting-config --config=mydtc.json

bundletool evaluate-device-targeting-config ile hangi grupların ve katmanın belirli bir cihazla eşleşeceğini değerlendirebilirsiniz. Hedef cihazınızı iş istasyonunuza bağlayıp --connected-device işaretini kullanabilirsiniz veya cihaz özelliklerini içeren bir JSON dosyasını manuel olarak derleyip --device-properties işaretiyle sağlayabilirsiniz.

bundletool evaluate-device-targeting-config --config=mydtc.json --connected-device
bundletool evaluate-device-targeting-config --config=mydtc.json --device-properties=deviceproperties.json

Cihaz özellikleri dosyası, DeviceProperties protokol yapısına uygun bir JSON dosyası olmalıdır. Örnek:

{
  "ram": 2057072640,
  "device_id": {
    "build_brand":"google",
    "build_device":"redfin"
  },
  "system_features": [
    {
      "name":"android.hardware.bluetooth"
    },
    {
      "name":"android.hardware.camera"
    }
  ]
}

Android App Bundle'ınızı Google Play'e yükleme

API aracılığıyla

Google Play Developer API'yi kullanarak Android App Bundle'ınızı Google Play'e yükleyebilir ve belirli bir Cihaz Katmanı Hedefleme yapılandırmasını derlemenize bağlayabilirsiniz.

Düzenleme yöntemlerine genel bir bakışı burada Google Play Console'da farklı kanallara yayınlamayla ilgili daha ayrıntılı örneklerle birlikte bulabilirsiniz (son bağlantı için sayfada listelenen APK dostu API yerine AAB'ye uygun API'leri kullanmalısınız). Derlemenizin cihaz katmanı yapılandırmasını belirtmek için yapılandırma kimliğini deviceTierConfigId sorgu parametresine eklersiniz ve edits.bundle.upload yöntemini çağırırsınız. Örneğin:

https://androidpublisher.googleapis.com/upload/androidpublisher/v3/applications/{packageName}/edits/{editId}/bundles?deviceTierConfigId="{deviceTierConfigId}

Google Play Console'dan

Android App Bundle'ınızı yüklemek için buradaki talimatları uygulayabilirsiniz. En son DTC yapılandırması App Bundle'ınıza uygulanır.

Uygulama Paketi Gezgini (doğru derleme seçilmiş şekilde) > Yayınlama'ya gidip her bir öğe paketini tıklayarak paketinizin doğru şekilde derlendiğini doğrulayabilirsiniz. Rapor, oluşturduğunuz N katmanın olduğunu gösterir. Bu örnekte, main_asset öğe paketim için 0, 1 ve 2 şeklinde 3 katmanım olduğu gösterilmektedir.

üç katmanlı öğe paketi

Doğru katmanın yayınlandığını doğrulama

Cihaza yalnızca doğru katmanın yayınlandığından emin olmak için aşağıdaki yöntemi kullanın

adb shell pm path {packageName}

Aşağıdakine benzer bir sonuç görürsünüz:

package:{...}/base.apk
package:{...}/split_config.en.apk
package:{...}/split_config.xxhdpi.apk
package:{...}/split_main_asset.apk
package:{...}/split_main_asset.config.tier_2.apk

Yardımcı

Curl'ü kullanarak hızlı başlangıç

Aşağıda, yeni cihaz katmanı yapılandırması oluşturma ve Edits API'yi kullanarak yeni düzenleme oluşturma, yeni AAB yükleme (bunu belirli bir cihaz katmanı yapılandırmasıyla ilişkilendirme), kanal/sürüm yapılandırmasını ayarlama ve düzenlemeyi uygulama (komut satırı aracı curl kullanılarak) örneğini bulabilirsiniz. (böylece değişikliği herkese açık hale getirmiş olursunuz). Aşağıdakilerin konumuna sahip olduğunuzdan emin olun:

Öncelikle bir cihaz katmanı yapılandırması oluşturun ve başarılı bir çağrının ardından alacağınız deviceTierConfigId notunu not edin.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST -H "Content-Type: application/json" -d "{ device_groups: [ { name: 'high', device_selectors: [ { device_ram: { min_bytes: 7516192768 }, }, { included_device_ids: [ { build_brand: 'google', build_device: 'flame' } ], } ] }, { name: 'medium', device_selectors: [ { device_ram: { min_bytes: 4294967296, max_bytes: 7516192768 }, } ] } ], device_tier_set: { device_tiers: [ { level: 1, device_group_names: [ 'medium' ] }, { level: 2, device_group_names: [ 'high' ] } ] } }" https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs

Düzenleme başlat - Düzenleme için bir kimlik ve geçerlilik süresi verilir. Aşağıdaki çağrılar için kimliği kaydedin.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits

AAB'yi yükleyin ve cihaz katmanı yapılandırmasını sorgu parametresi olarak belirtin. Çağrı başarılı olursa derlemenin sürüm kodunu, sha1 ve sha256'sını görürsünüz. Sonraki çağrı için sürüm kodunu kaydedin.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" --data-binary @$HOME/{aabFile} -H "Content-Type: application/octet-stream" -XPOST https://androidpublisher.googleapis.com/upload/androidpublisher/v3/applications/{packageName}/edits/{editID}/bundles?deviceTierConfigId="{dttConfigID}"

AAB'yi istediğiniz kanala atayın (test için dahili test kanalını kullanmanız önerilir. Ancak farklı kanallar hakkında daha fazla bilgiyi buradan edinebilirsiniz). Burada sürüm notları olmadan basit bir kullanıma sunma işlemi gerçekleştiriyoruz ancak sunumların, taslak sürümlerin ve sürüm notlarının nasıl aşamalı olarak yayınlanacağı hakkında daha fazla bilgi edinmek için bu sayfayı okuyabilirsiniz. Publisher API'yi ilk kez kullanıyorsanız bunu taslak sürüm olarak oluşturmanızı ve her şeyin doğru yapılandırıldığından emin olmak için sürümü Google Play Console'da tamamlamanızı öneririz.

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPUT -H "Content-Type: application/json" -d "{ releases: [{status: '{status}'</code>, <code><strong>versionCodes</strong></code>: <code>['{versionCode}']</code> <code><strong>}]}</strong></code>" <code>https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editID}/tracks/{track}

Değişiklikleri uygulayın (Dikkatli bir şekilde ilerleyin. Bu işlem, istediğiniz kanalda tüm değişikliklerin Play'de yayınlanmasına neden olur.)

curl -H "$(oauth2l header --json $HOME/{apiKey} androidpublisher)" -XPOST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/edits/{editID}:commit