Cihaz Katmanı Hedefleme

Cihaz katmanı hedefleme nedir?

Cihaz katmanına göre hedefleme, donanımlarına bağlı olarak cihazlara aynı öğenin farklı sürümlerini (ör. çözünürlükler) yayınlamanıza olanak tanır. Örneğin, performansı artırmak için düşük çözünürlüklü öğeleri alt segment cihazlara, grafik kalitesini artırmak için ise yüksek çözünürlüklü öğeleri üst segment cihazlara yayınlamayı seçebilirsiniz. Tüm bunları yaparken de yalnızca gerekli öğeleri kullanıcıların cihazlarına yayınlayarak oyunun genel boyutunda artışa neden olmazsınız. Bu, Play Asset Delivery'deki öğe paketi kavramı üzerine inşa edilmiştir. Aşağıda göreceğiniz gibi, katman ölçütlerini tanımlayabilirsiniz (şimdilik RAM, belirli cihaz modelleri veya mevcut sistem özelliklerine bağlı olarak) ve 5 katman kullanabilirsiniz.

Play Asset Delivery gibi Cihaz Katmanı Hedefleme de API 16 (Jelly Bean 4.1) ve sonraki sürümleri destekler. Ancak API 19 (KitKat 4.4.X) ve önceki sürümleri çalıştıran cihazlarda varsayılan katman, cihaz derlemesinden bağımsız olarak yayınlanır.

Geliştirici Yolculuğu

DTT'yi mevcut oyununuza entegre etmek için genel hatlarıyla aşağıdaki adımları uygulamanız gerekir:

  1. Cihaz katmanı hedeflemeyi (ve buna bağlı olarak, Play Asset Delivery) oyununuza entegre etme
    • Play Asset Delivery'yi oyununuza entegre edin (henüz yapmadıysanız)
    • Öğelerinizi öğe paketlerine bölme
    • Play'e yükleyeceğiniz nihai Android App Bundle yapısını oluşturmak için kodunuzu ve öğelerinizi birlikte paketleyin.
  2. Play'in, öğelerinizi kullanıcı cihazlarına nasıl sunacağını bilmesi için cihaz katmanı hedefleme yapılandırmanızı oluşturun.
    • DTT yapılandırmalarını Play'e göndermek için kullanacağınız Google Play Developer API'yi (henüz tamamlanmadıysa) ayarlayın.
    • DTT yapılandırmasını oluşturma adımlarını uygulayın.
  3. AAB'nizi Play'e yükleyin ve her şeyin doğru şekilde 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ın olacağını göreceksiniz. 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 derlenen oyunlarda, derleme sistemini DTT desteğiyle AAB'nizi derleyecek şekilde yapılandırmak için aşağıdaki adımları uygulayın.
    • Oyununuzu Gradle'a aktarıp derleme işlemini orada tamamlarsanız aşağıdaki talimatları uygulamanızı öneririz (ör. Unity oyunları (Gradle'a aktarılmış))
  • Unity Eklentisi: Unity projenize aktarmanız için size birleşik paketler sağlayacağız. Böylece AAB'nizi DTT desteğiyle yapılandırıp derleyebilirsiniz.

Uygulamanızda cihaz katmanı hedeflemeyi ayarlama

Play Asset Delivery'yi oyununuza entegre etme (henüz tamamlanmadıysa)

Play Asset Delivery (PAD), oyun öğelerinizi yükleme sırasında veya çalışma zamanında dinamik olarak yayınlamanıza olanak tanır. Bu konuyla ilgili genel bilgileri buradan okuyabilirsiniz. Cihaz katmanına göre hedefleme özelliği sayesinde Play, farklı cihaz katmanları için belirttiğiniz cihaz katmanı yapılandırmalarına göre öğe paketleri yayınlar. Aşağıdaki yönergeleri takip etmeniz ve PAD'yi oyununuza entegre etmeniz (ör. öğe paketleri oluşturmanız, oyununuzda bilgi alımı uygulamanız) ve ardından proje kodunu Cihaz Katmanı Hedefleme'yi etkinleştirecek şekilde değiştirmeniz önerilir.

Gradle

Gradle ile oluşturulan oyunlarda Gradle ile öğe paketlerinizi oluşturmak için şu talimatları uygulayın, ardından öğe paketi alımını oyununuza entegre etme talimatlarını uygulayın:

Unity

Unity'de oluşturulan oyunlarda, öğe paketlerinizi bu talimatlarda belirtildiği gibi AssetPackConfig sınıfını kullanarak yapılandırırsınız.

Cihaz katmanına özel dizinler oluşturma

Gradle kullanıyorsanız

Artık öğelerinizi daha sonra tanımlayacağınız N katman (en fazla 5) arasında böleceksiniz. Son adımda oluşturulan mevcut öğe paketi dizinlerini alarak ve uygun klasörü (aşağıda açıklandığı gibi) #tier_0, #tier_1, #tier_2 vb. ile düzelterek DTT dizinlerinizi oluşturun. Oyununuzda öğe paketlerini kullanırken klasörleri son ek ile ele almanız gerekmez (başka bir deyişle, son ek derleme işlemi sırasında otomatik olarak atılır).

Önceki adımın ardından bu görünüm aşağıdaki gibi olabilir:

...
.../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üzeltmesi yapmadan kullanabilirsiniz (bu örnekte herhangi bir sonek olmadan level1/assets/character-textures/ olarak başvuruyorum).

Unity kullanıyorsanız

DTT kullanan bir öğe paketi eklemek için aşağıdakiAssetPackConfig yöntemleri 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 farklı ayrıntı düzeylerinde üç AssetBundles olduğunu varsayalım.

Bu AssetBundles değerlerini ilgili cihaz katmanları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, bağımlılıklarınızı Android Gradle eklentisi ve bundletool için aşağıdaki (veya üstü) sürümlere sahip 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"
    ...
  }
  ...
}

Ayrıca gradle sürümünüzü 6.7.1 veya sonraki bir sürüme güncellemeniz gerekir. Bu ayarı projenizdeki 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. Monolitik Play Core Kitaplığı'nı kullanmaya devam ediyorsanız 1.8.3 veya sonraki bir sürüme güncelleyin. Play Asset Delivery Kitaplığı'na geçmenizi ve mümkünse 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.

Bundletool

Paketinizi bundletool ile derleyin ve AAB'nizi özelleştirme adımında BundleConfig.pb dosyanıza aşağıdakileri ekleyin.

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

Unity

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

// 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 ayarlandığından emin olmak için uygulama paketinizi yerel olarak test etmeniz önerilir. bundletool (1.8.0 veya üzeri) sürümünü kullanarak, doğru cihaz katmanını açıkça belirterek uygulamanızı yerel olarak derleyip test edebilirsiniz. Önce .apks dosyası grubu oluşturmak için build-apks'u, ardından install-apks'i kullanarak uygulamanızı bağlı bir cihaza dağıtırsınız. Ayrıca, cihaz katmanı işaretçisi aracılığıyla hangi katmanın yüklenmesini istediğinizi de belirtebilirsiniz. Bu yerel test yöntemi hakkında daha fazla bilgiyi burada bulabilirsiniz (bu sayfanın DTT için henüz güncellenmediğini ve bu nedenle device-tier işaretinin eksik olduğunu 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 APK grubunu ayıklamak için extract-apks'ı da kullanabilirsiniz. Ancak get-device-spec ile bu cihaz için cihaz katmanının belirtilmesi, --local-testing işareti ile birlikte çalışmaz. Bu nedenle, hızlı takip veya isteğe bağlı öğe paketlerini test edemezsiniz.

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

Unity

Google -> Build and Run menü seçeneği, oyununuzu --local-testing bayrağı etkin olarak oluşturur 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 derleyin.
  2. Derleme AAB'de bundletool, build-apks ve install-apks komutlarını çalıştırmak için bir önceki bölümde verilen talimatları uygulayın.

Google Play Developer API aracılığıyla cihaz katmanı yapılandırması oluşturma

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

Cihaz Katmanı Hedeflemesi'ni yapılandırmak için (ör. her katman için şartları tanımlamak) yapılandırmanızı Google Play'e yüklemek üzere Android Yayıncı API'sini kullanmanız gerekir. API hakkında daha fazla bilgiyi yukarıdaki bağlantıda bulabilirsiniz. Başlamak için uygulamanız gereken birkaç adım vardır:

  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 Metni Cihaz Katmanı Yapılandırması
Cihaz Katmanı Yapılandırma Nesnesi

Cihaz katmanlarının tanımı 2 adımdan oluşur:

  1. Bir cihaz grubu grubu 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 modeli ile ilgili koşulları 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ı, düzeyine ve cihaz grubuna göre tanımlanır.

Bir cihaz birden fazla katmanla eşleşirse içerik, eşleşen en yüksek katman için 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 (tam sayı): Bu cihaz katmanı yapılandırmasına karşılık gelen kimlik.
  • device_groups (nesne): Grup tanımları

    • ad (dize): Cihaz grubunun adı (tanımladığınız bir dize kimliği).
    • device_selectors (nesne): Bir cihazın bu gruba ait olması için gereken cihaz gereksinimleri.
    • device_ram (nesne): Cihaz RAM gereksinimleri
      • min_bytes (tam sayı, dahildir): Gerekli minimum RAM (bayt cinsinden)
      • max_bytes (tam sayı, hariç): Gerekli maksimum RAM (bayt cinsinden)
    • included_device_ids (nesne): Bu seçiciye dahil edilecek cihaz modelleri (grup başına en fazla 10.000 device_ids) Seçiciyle eşleşmesi için cihazın bu listede olması gerekir. Bu, tam seçiciyi eşleştirmek için gerekli ancak yeterli olmayan bir koşuldur (seçicideki koşulları birleştirme hakkındaki yukarıdaki notu inceleyin)
      • build_brand (dize): Cihaz üreticisi
      • build_device (dize): Cihaz modeli kodu
    • excluded_device_ids (nesne): Bu seçicide hariç tutulacak cihaz modelleri (grup başına en fazla 10.000 device_ids) Bu listedeki bir cihaz, seçicideki diğer tüm koşullarla 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çiciye eklenmesi gereken özellikler (grup başına en fazla 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şmek için gerekli ancak yeterli olmayan bir koşuldur (bir seçicideki koşulları birleştirme hakkındaki yukarıdaki notu inceleyin).

      Sistem özellik referansı

      • ad (dize): Sistem özelliği
    • forbidden_system_features (nesne): Bir cihazın bu seçiciye dahil edilmesi gerekmeyen özellikler (grup başına en fazla 100 özellik). Bir cihazda bu listedeki sistem özelliklerinden herhangi biri varsa seçicideki diğer tüm koşullarla eşleşse bile seçiciyle eşleşmez.

      Sistem özellik referansı

      • ad (dize): Sistem özelliği
  • device_tiers (nesne): Katman tanımları

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

Aşağıdaki iki yöntemden biriyle Google Play Console'daki Cihaz Kataloğu'nu kullanıp cihaz üreticisi ve model kodu için doğru biçimlendirmeyi bulabilirsiniz:

  • Cihaz kataloğunu kullanarak cihazları tek tek inceleyin ve üretici ile model kodunu aşağıdaki örnekte gösterilen konumlarda bulun (Google Pixel 4a için üretici "Google", model kodu ise "sunfish"tir).

    cihaz kataloğundaki pixel 4a sayfası

    cihaz kataloğundaki pixel 4a sayfası

  • Desteklenen cihazların CSV dosyasını indirip build_brand ve build_device alanları için sırasıyla Üretici ve Model Kodu'nu kullanın.

Aşağıda, 3 katmanlı bir örnek yapılandırma verilmiştir. 2. katman, yüksek cihaz grubunu (7 GB'tan büyük tüm cihazları ve Pixel 4'ü içerir), 1. katman orta cihaz grubunu (4-7 GB arasındaki tüm cihazları içerir) ve 0. katman ise her şeyi kapsayan grup olarak tanımlanan varsayılan katmanı 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'
        ]
      }
    ]
  }
}

Cihaz Hedefleme Yapılandırmanızı Google Play'e yüklemeden önce aşağıdaki talimatları uygulayarak doğrulayabilirsiniz.

Kimliğe göre cihaz katmanı yapılandırmasını alma

Aşağıdaki çağrıyı kullanarak kimliğe göre belirli bir cihaz katmanı yapılandırmasını 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ı listesini alma

Aşağıdaki çağrıyı kullanarak son 10 cihaz katmanı yapılandırmasını alabilirsiniz (veya page_token sorgu parametresini kullanarak en uygun şekilde onlu bir grup 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'lik belirli bir grubu belirtmek için kullanılır. Bu, 10'dan fazla DTC oluşturduysanız ve en son 10'dan önce oluşturulan 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

sayfa_jetonu

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

bundletool, cihaz hedefleme yapılandırmanızı Play'e yüklemeden önce amaçladığınız şekilde çalıştığını doğrulamanıza yardımcı olan iki komut içerir.

bundletool print-device-targeting-config ile JSON dosyanızın söz dizimi açısından doğru olup olmadığını doğrulayabilir ve cihaz gruplarınızı ve katmanlarınızı daha okunaklı bir biçimde görselleştirebilirsiniz.

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

bundletool evaluate-device-targeting-config ile belirli bir cihazla hangi grupların ve katmanların eşleşeceğini değerlendirebilirsiniz. Hedef cihazınızı iş istasyonunuza bağlayıp --connected-device işaretini kullanırsınız veya cihaz özelliklerini içeren bir JSON dosyasını manuel olarak derleyip --device-properties işareti aracılığıyla sağlarsınız.

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 protobuf 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

Android App Bundle'ınızı Google Play'e yüklemek ve belirli bir cihaz katmanı hedefleme yapılandırmasını derlemenize bağlamak için Google Play Developer API'yi kullanabilirsiniz.

Düzenleme yöntemlerine genel bir bakış ve Google Play Console'da farklı kanallarda yayınlamayla ilgili daha ayrıntılı örnekler bulabilirsiniz (Son bağlantıda, sayfada listelenen APK uyumlu API yerine AAB uyumlu API'leri kullanmanız gerekir). Derlemenizin cihaz katmanı yapılandırmasını belirtmek için edits.bundle.upload yöntemini çağırırken aşağıdaki gibi yapılandırma kimliğini deviceTierConfigId sorgu parametresine eklemeniz gerekir:

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

Google Play Console aracılığıyla

Android uygulama paketinizi yüklemek için buradaki talimatları uygulayabilirsiniz. En son DTC yapılandırması uygulama paketinize uygulanır.

Paketinizin doğru şekilde oluşturulduğunu doğrulamak için Uygulama Paketi Gezgini'ne (doğru derleme seçili) > Yayınlama bölümüne gidip her öğe paketini tıklayabilirsiniz. Oluşturduğunuz N katmanınız olduğunu gösterir. Bu örnekte, main_asset öğe paketim için 3 katman (0, 1 ve 2) 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 şey 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 bir cihaz katmanı yapılandırması oluşturma ve Edits API'yi kullanarak yeni bir düzenleme oluşturma, yeni bir AAB yükleme (belirli bir cihaz katmanı yapılandırmasıyla ilişkilendirerek), kanal/sürüm yapılandırmasını ayarlama ve düzenlemeyi kaydetme örneği (curl komut satırı aracı kullanılarak) verilmiştir. (böylece değişikliği herkese açık hale getirir). Aşağıdakilerin konumunu bilmeniz gerekir:

Öncelikle bir cihaz katmanı yapılandırması oluşturun ve başarılı bir aramadan sonra alacağınız deviceTierConfigId değerini 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ın: Düzenleme için bir kimlik ve geçerlilik bitiş zamanı alırsınız. Sonraki aramalar için kimliği kaydedin.

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

Cihaz katmanı yapılandırmasını sorgu parametresi olarak belirterek AAB'yi yükleyin. Çağrınız başarılı olursa derlemenin sürüm kodunu, sha1 ve sha256'yı 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 aşamalı kullanıma sunma, sürüm taslakları ve sürüm notları hakkında daha fazla bilgi edinmek için bu sayfayı okuyabilirsiniz. Publisher API'yi ilk kez kullanıyorsanız bu sürümü taslak sürüm olarak oluşturmanızı ve her şeyin doğru şekilde yapılandırıldığından emin olmak için Google Play Console'da sürümü 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 kaydetme (Bu işlem, tüm değişikliklerin Play'de yayınlanmasını sağlayacağından istenen kanala dikkatli bir şekilde ilerleyin)

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