هدف گذاری ردیف دستگاه

Device Tier Targeting چیست؟

Device Tier Targeting به شما این امکان را می دهد که نسخه های مختلف (به عنوان مثال وضوح و غیره) از یک دارایی را بر اساس سخت افزار آنها به دستگاه ها تحویل دهید. برای مثال، می‌توانید برای بهبود عملکرد، دارایی‌های با وضوح پایین را به دستگاه‌های رده پایین‌تر تحویل دهید، و برای بهبود کیفیت گرافیک، دارایی‌های با وضوح بالا را به دستگاه‌های با کیفیت بالاتر تحویل دهید - همه اینها بدون افزایش حجم کلی بازی تنها با ارائه دارایی‌های لازم به کاربران ' دستگاه ها این بر مفهوم بسته‌های دارایی در Play Asset Delivery استوار است. همانطور که در زیر می بینید، شما قدرت تعریف معیارهای ردیف را دارید (در حال حاضر بر اساس RAM، مدل های خاص دستگاه یا ویژگی های سیستم موجود)، و می توانید تا 5 سطح را استفاده کنید.

مانند Play Asset Delivery، Device Tier Targeting از API 16 (Jelly Bean 4.1) و بالاتر پشتیبانی می‌کند، اما در دستگاه‌های API 19 (KitKat 4.4.X) و سطوح پایین‌تر بدون در نظر گرفتن ساخت دستگاه ارائه می‌شود.

سفر توسعه دهنده

در سطح بالا، برای ادغام DTT در بازی موجود خود، باید مراحل زیر را انجام دهید:

  1. Device Tier Targeting (و با توسعه، Play Asset Delivery) را در بازی خود ادغام کنید
    • Play Asset Delivery را در بازی خود ادغام کنید (اگر قبلاً این کار را نکرده اید)
    • دارایی های خود را به بسته های دارایی تقسیم کنید
    • کد و دارایی‌های خود را برای آخرین مصنوع Android App Bundle که در Play آپلود خواهید کرد، با هم بسته‌بندی کنید.
  2. پیکربندی Device Tier Targeting خود را ایجاد کنید تا Play بداند چگونه دارایی های شما را به دستگاه های کاربر تحویل دهد.
    • Google Play Developer API را تنظیم کنید (اگر قبلاً تکمیل نشده باشد)، این همان چیزی است که برای ارسال تنظیمات DTT به Play استفاده می کنید.
    • مراحل ایجاد پیکربندی DTT را طی کنید.
  3. AAB خود را در Play آپلود کنید و آزمایش کنید تا مطمئن شوید همه چیز به درستی پیکربندی شده است

در بخش اول متوجه خواهید شد که بسته به سیستم ساختی که استفاده می کنید، فورک هایی در راهنما وجود دارد. سیستمی که انتخاب می کنید به موتوری که استفاده می کنید و تنظیمات موجود شما بستگی دارد.

  • Gradle (توصیه شده برای بازی‌های جاوا و بومی) : برای بازی‌هایی که با استفاده از Gradle ساخته می‌شوند، این مراحل را دنبال کنید تا سیستم ساخت را پیکربندی کنید تا AAB خود را با پشتیبانی DTT بسازید.
    • اگر بازی خود را به Gradle صادر می کنید و سپس ساخت خود را در آنجا به پایان می رسانید، توصیه می کنیم این دستورالعمل ها را دنبال کنید (مثلاً بازی های Unity صادر شده به Gradle) )
  • افزونه یونیتی : ما بسته های یونیتی را برای وارد کردن به پروژه یونیتی در اختیار شما قرار می دهیم که به شما امکان می دهد AAB خود را با پشتیبانی DTT پیکربندی و بسازید.

راه اندازی Device Tier Targeting در برنامه شما

ادغام Play Asset Delivery در بازی شما (اگر قبلاً تکمیل نشده باشد)

Play Asset Delivery (PAD) به شما امکان می دهد دارایی های بازی خود را به صورت پویا در زمان نصب یا زمان اجرا تحویل دهید و می توانید یک نمای کلی در مورد آن را در اینجا بخوانید. با Device Tier Targeting، Play بسته‌های دارایی را بر اساس پیکربندی‌های ردیف دستگاهی که برای سطوح مختلف دستگاه‌ها تجویز می‌کنید، ارائه می‌کند. توصیه می شود دستورالعمل زیر را دنبال کنید و PAD را در بازی خود ادغام کنید (یعنی بسته های دارایی ایجاد کنید، بازیابی را در بازی خود پیاده سازی کنید)، و سپس کد پروژه را برای فعال کردن Device Tier Targeting تغییر دهید.

گریدل

برای بازی‌های ساخته شده با Gradle، از این دستورالعمل‌ها برای ساخت بسته‌های دارایی خود با Gradle استفاده کنید، سپس دستورالعمل‌های ادغام بازیابی بسته دارایی را در بازی خود دنبال کنید:

وحدت

برای بازی‌های ساخته شده در Unity، بسته‌های دارایی خود را با استفاده از کلاس AssetPackConfig پیکربندی می‌کنید، همانطور که در این دستورالعمل‌ها مشخص شده است.

ایجاد دایرکتوری های خاص ردیف دستگاه

اگر از Gradle استفاده می کنید

اکنون دارایی های خود را بین N ردیف (حداکثر 5) که بعداً تعریف خواهید کرد تقسیم خواهید کرد. دایرکتوری‌های DTT خود را با گرفتن دایرکتوری‌های بسته دارایی موجود در مرحله آخر ایجاد کنید، و پوشه مناسب (همانطور که در زیر توضیح داده شده است) را با #tier_0، #tier_1، #tier_2، و غیره پست کنید. هنگام استفاده از بسته‌های دارایی در بازی خود - شما نیازی به آدرس دهی پوشه ها با postfix نخواهد بود (به عبارت دیگر، postfix به طور خودکار در طول فرآیند ساخت حذف می شود).

بعد از مرحله قبل، ممکن است به صورت زیر باشد:

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

وقتی به فایل‌های زیر پوشه دسترسی پیدا می‌کنید، فقط می‌توانید از همان مسیر بدون اصلاح پست استفاده کنید، (در این مثال - من به عنوان level1/assets/character-textures/ بدون هیچ پسوندی اشاره می‌کنم).

اگر از Unity استفاده می کنید

برای افزودن بسته دارایی که از DTT استفاده می کند، می توانید از روش های AssetPackConfig زیر استفاده کنید:

/// 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)

برای مثال، فرض کنید سه AssetBundles برای شخصیت خود در سطوح مختلف جزئیات داشتید.

برای نگاشت این AssetBundles به ردیف دستگاه مربوطه خود، از قطعه زیر استفاده کنید.

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

گریدل

در فایل build.gradle پروژه خود، وابستگی‌های خود را به گونه‌ای پیکربندی کنید که نسخه‌های زیر (یا بالاتر) برای افزونه و ابزار بسته Android Gradle داشته باشند:

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

همچنین باید نسخه gradle خود را به 6.7.1 یا بالاتر به روز کنید. می توانید این را در gradle/wrapper/gradle-wrapper.properties در پروژه خود به روز کنید.

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

در نهایت، باید از Play Asset Delivery Library استفاده کنید. اگر هنوز از کتابخانه یکپارچه Play Core استفاده می کنید، آن را به نسخه 1.8.3 یا بالاتر به روز کنید. توصیه می‌کنیم به کتابخانه تحویل دارایی Play بروید و در صورت امکان به آخرین نسخه به‌روزرسانی کنید.

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

در فایل build.gradle ماژول اصلی برنامه، تقسیم DTT را فعال کنید:

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

در نهایت، می‌توانید Android App Bundle (AAB) خود را بسازید.

Bundletool

باندل خود را با bundletool بسازید و در مرحله سفارشی کردن AAB خود ، موارد زیر را به فایل BundleConfig.pb خود اضافه کنید.

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

وحدت

هنگامی که AssetPackConfig خود را به گونه‌ای پیکربندی کردید که بسته‌های DTT خود را شامل شود، می‌توانید آن پیکربندی را به یکی از روش‌های زیر برای ساخت AAB خود منتقل کنید:

// 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)

تست محلی

قبل از حرکت، توصیه می‌شود بسته برنامه خود را به صورت محلی آزمایش کنید تا مطمئن شوید همه چیز به درستی تنظیم شده است. با استفاده از bundletool (1.8.0 یا بالاتر)، برنامه خود را به صورت محلی می‌سازید و آزمایش می‌کنید و صریحاً ردیف دستگاه صحیح را مشخص می‌کنید. ابتدا از build-apks برای تولید مجموعه‌ای از فایل‌های .apks استفاده می‌کنید و سپس برنامه خود را با استفاده از install-apks در دستگاه متصل اجرا می‌کنید. همچنین می‌توانید مشخص کنید که کدام لایه را می‌خواهید از طریق پرچم ردیف دستگاه نصب شود. می‌توانید اطلاعات بیشتری درباره این روش آزمایش محلی در اینجا بیابید (لطفاً توجه داشته باشید که این صفحه هنوز برای DTT به‌روزرسانی نشده است و بنابراین پرچم device-tier را ندارد).

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

روش دیگر : همچنین می‌توانید extract-apks برای استخراج مجموعه‌ای از APK برای یک دستگاه خاص استفاده کنید. با این حال، استفاده از get-device-spec همراه با تعیین ردیف دستگاه برای این دستگاه، همراه با پرچم --local-testing کار نخواهد کرد، به این معنی که شما نمی توانید بسته های دارایی را با دنبال کردن سریع یا درخواستی آزمایش کنید. .

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

وحدت

گزینه Google -> Build and Run با فعال بودن پرچم --local-testing بازی شما را می سازد و اجرا می کند. با این حال، به شما اجازه نمی‌دهد که ردیف دستگاه را که به دستور install-apks منتقل می‌شود، مشخص کنید.

اگر می‌خواهید یک ردیف دستگاه غیر از 0 مشخص کنید، باید:

  1. AAB را با استفاده از گزینه منوی Google -> Build Android App Bundle بسازید.
  2. برای اجرای bundletool ، build-apks و install-apks در AAB ساخته شده، دستورالعمل‌های بخش قبل را دنبال کنید.

ایجاد پیکربندی ردیف دستگاه از طریق Google Play Developer API

شروع به کار با Google Play Developer API (اگر قبلاً تکمیل نشده باشد)

برای پیکربندی Device Tier Targeting (به عنوان مثال تعریف الزامات برای هر سطح) باید از Android Publisher API برای آپلود پیکربندی خود در Google Play استفاده کنید. می‌توانید در پیوند بالا درباره API بیشتر بخوانید - برای شروع باید چند مرحله را دنبال کنید :

  1. ایجاد کنید (در صورت نیاز) و پروژه API خود را به کنسول Google Play خود پیوند دهید .
  2. یک API Access Client راه اندازی کنید .

می‌توانید مرجع API را در اینجا پیدا کنید - بعداً، اگر بخواهید ساخت خود را از طریق API آپلود کنید، از روش‌های ویرایش‌ها استفاده خواهید کرد. علاوه بر این، توصیه می شود قبل از استفاده از API ، این صفحه را مرور کنید .

با استفاده از Device Tier Configuration API

می توانید از فراخوانی API زیر برای ایجاد پیکربندی ردیف دستگاه خود استفاده کنید:

پیکربندی ردیف دستگاه را ایجاد کنید

درخواست HTTP POST https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
پارامترهای مسیر N/A
درخواست بدن پیکربندی ردیف دستگاه
بدنه پاسخگویی پیکربندی ردیف دستگاه
شی پیکربندی ردیف دستگاه

تعریف لایه های دستگاه شامل 2 مرحله است:

  1. مجموعه ای از گروه های دستگاه را تعریف کنید.
  2. با تخصیص یک سطح به گروه های دستگاه خود ، مجموعه ردیف دستگاه خود را تعریف کنید.

گروه دستگاه مجموعه ای از دستگاه هایی است که با انتخابگرهایی که در پیکربندی تعریف کرده اید مطابقت دارند.

انتخابگرها می توانند الزامات RAM دستگاه و مدل دستگاه را تعریف کنند.

گروه ها با نامی که شما انتخاب می کنید شناسایی می شوند. گروه ها مجاز به همپوشانی هستند.

در مرحله بعد، می‌توانید با رتبه‌بندی گروه‌ها ، مجموعه ردیف دستگاه خود را تعریف کنید: هر ردیف دستگاه بر اساس سطح آن و یک گروه دستگاه تعریف می‌شود.

اگر دستگاهی با چندین سطح مطابقت داشته باشد، محتوای بالاترین سطح منطبق به آن ارائه می‌شود.

  {
    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]
        }
      ]
    }
  }

زمینه ها:

  • device_confid_id (عدد صحیح): شناسه مربوط به این پیکربندی ردیف دستگاه.
  • device_groups (object): تعاریف گروه

    • نام (رشته): نام گروه دستگاه (شناسه رشته ای که شما تعریف می کنید).
    • device_selectors (object): الزامات دستگاه برای تعلق یک دستگاه به این گروه.
    • device_ram (object): مورد نیاز رم دستگاه
      • min_bytes (عدد صحیح، شامل) : حداقل RAM مورد نیاز (بر حسب بایت)
      • max_bytes (عدد صحیح، انحصاری) : حداکثر RAM مورد نیاز (بر حسب بایت)
    • include_device_ids (object): مدل‌های دستگاهی که باید در این انتخابگر گنجانده شوند (حداکثر 10000 دستگاه_ids در هر گروه) یک دستگاه باید در این لیست باشد تا با انتخابگر مطابقت داشته باشد. این یک شرط لازم است اما کافی نیست برای مطابقت با انتخابگر کامل (به یادداشت بالا در مورد ترکیب الزامات در یک انتخابگر مراجعه کنید)
      • build_brand (رشته): سازنده دستگاه
      • build_device (رشته): کد مدل دستگاه
    • excluded_device_ids (object): مدل‌های دستگاهی که در این انتخابگر حذف می‌شوند (حداکثر 10000 دستگاه_ids در هر گروه) دستگاهی از این لیست با انتخابگر مطابقت ندارد، حتی اگر با سایر الزامات انتخابگر مطابقت داشته باشد.
      • build_brand (رشته): سازنده دستگاه
      • build_device (رشته): کد مدل دستگاه
    • require_system_features (object): ویژگی هایی که یک دستگاه باید توسط این انتخابگر گنجانده شود (حداکثر 100 ویژگی در هر گروه) . یک دستگاه باید تمام ویژگی های سیستم را در این لیست داشته باشد تا با انتخابگر مطابقت داشته باشد. این یک شرط لازم است اما کافی نیست برای مطابقت با انتخابگر کامل (به یادداشت بالا در مورد ترکیب الزامات در یک انتخابگر مراجعه کنید).

      مرجع ویژگی های سیستم

      • نام (رشته): یک ویژگی سیستم
    • forbidden_system_features (object): ویژگی هایی که دستگاه نباید توسط این انتخابگر گنجانده شود (حداکثر 100 ویژگی در هر گروه) . اگر دستگاهی دارای هر یک از ویژگی های سیستم در این لیست باشد، با انتخابگر مطابقت ندارد، حتی اگر با سایر الزامات موجود در انتخابگر مطابقت داشته باشد.

      مرجع ویژگی های سیستم

      • نام (رشته): یک ویژگی سیستم
  • device_tiers (object): تعاریف ردیف

    • سطح (int): سطح ردیف
    • group_name (آرایه رشته ای): نام گروه های دستگاهی که به این ردیف تعلق دارند

می‌توانید قالب‌بندی صحیح سازنده دستگاه و کد مدل را با استفاده از کاتالوگ دستگاه در کنسول Google Play، با یکی از موارد زیر پیدا کنید:

  • بازرسی دستگاه‌های جداگانه با استفاده از کاتالوگ دستگاه، و یافتن کد سازنده و مدل در مکان‌هایی که در مثال زیر نشان داده شده است (برای یک Google Pixel 4a، سازنده «Google» و کد مدل «sunfish» است)».

    صفحه پیکسل 4a در کاتالوگ دستگاه

    صفحه پیکسل 4a در کاتالوگ دستگاه

  • دانلود CSV دستگاه‌های پشتیبانی‌شده و استفاده از کد سازنده و مدل کد به ترتیب برای فیلدهای build_brand و build_device .

در اینجا یک نمونه پیکربندی با 3 سطح آورده شده است - لایه 2 از گروه دستگاه استفاده می کند (که شامل همه دستگاه های بالای 7 گیگابایت و Pixel 4 می شود)، ردیف 1 از رسانه گروه دستگاه (که شامل همه دستگاه های بین 4 تا 7 گیگابایت می شود) و سطح 0 استفاده می کند. ، که به طور ضمنی به عنوان گروه catch-all تعریف می شود.

{
  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 دنبال کنید.

پیکربندی ردیف دستگاه را با شناسه دریافت کنید

با استفاده از تماس زیر می‌توانید پیکربندی ردیف دستگاه خاصی را با ID بازیابی کنید:

درخواست HTTP GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs/{deviceTierConfigId}
پارامترهای مسیر N/A
درخواست بدن N/A
بدنه پاسخگویی پیکربندی ردیف دستگاه

لیست تنظیمات ردیف دستگاه را دریافت کنید

با توجه به فراخوانی زیر می‌توانید 10 پیکربندی ردیف آخر دستگاه را دریافت کنید (یا با استفاده از پارامتر پرس و جو page_token به طور بهینه مجموعه‌ای از ده را مشخص کنید):

درخواست HTTP GET https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/deviceTierConfigs
پارامترهای مسیر N/A
پارامترهای پرس و جو page_token (اختیاری) - برای تعیین یک گروه خاص از 10 DTC استفاده می شود. اگر بیش از 10 DTC ایجاد کرده باشید و دوست دارید DTC هایی را ببینید که قبل از 10 مورد اخیر ایجاد شده اند، مفید است.
درخواست بدن N/A
بدنه پاسخگویی لیست تنظیمات ردیف دستگاه

page_token

تأیید پیکربندی هدف‌گیری دستگاه

bundletool شامل دو فرمان است که به شما کمک می‌کند قبل از آپلود کردن آن در Play تأیید کنید که پیکربندی هدف‌گیری دستگاه شما همانطور که در نظر گرفته شده است کار می‌کند.

با bundletool print-device-targeting-config ، می‌توانید تأیید کنید که فایل JSON شما از نظر نحوی صحیح است و گروه‌ها و ردیف‌های دستگاه خود را در قالبی خواناتر تجسم کنید.

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

با bundletool evaluate-device-targeting-config ، می توانید ارزیابی کنید که چه گروه ها و ردیف هایی با یک دستگاه خاص مطابقت دارند. یا دستگاه مورد نظر خود را به ایستگاه کاری خود وصل کنید و از پرچم --connected-device استفاده کنید. یا یک فایل JSON با ویژگی های دستگاه را به صورت دستی کامپایل می کنید و آن را از طریق پرچم --device-properties ارائه می کنید.

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

فایل ویژگی های دستگاه باید یک فایل JSON باشد که از ساختار پروتوباف DeviceProperties پیروی می کند. به عنوان مثال:

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

در حال آپلود Android App Bundle در Google Play

از طریق API

می‌توانید از Google Play Developer API برای آپلود App Bundle Android خود در Google Play استفاده کنید و یک پیکربندی خاص Device Tier Targeting را به ساخت خود پیوند دهید.

در اینجا یک مرور کلی از روش‌های ویرایش به همراه مثال‌های عمیق‌تر در مورد انتشار به تراک‌های مختلف در کنسول Google Play وجود دارد (برای آخرین پیوند، می‌خواهید به جای API-پسند APK از API‌های مناسب AAB استفاده کنید. که در صفحه ذکر شده است). برای تعیین پیکربندی ردیف دستگاه برای ساخت خود، هنگام فراخوانی روش edits.bundle.upload ، شناسه پیکربندی را به پارامتر query deviceTierConfigId اضافه می‌کنید، مانند:

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

از طریق کنسول Google Play

برای آپلود Android App Bundle خود می توانید دستورالعمل های اینجا را دنبال کنید. آخرین پیکربندی DTC در App Bundle شما اعمال خواهد شد.

می‌توانید با رفتن به App Bundle Explorer (با انتخاب ساخت صحیح) > Delivery تأیید کنید که بسته شما درست ساخته شده است و روی هر بسته دارایی کلیک کنید. باید نشان دهد که N ردیف هایی را که ایجاد کرده اید دارید. در این مثال، نشان می‌دهد که من 3 ردیف دارم - 0، 1، و 2 برای بسته دارایی‌ام main_asset .

بسته دارایی با سه طبقه

تأیید ردیف صحیح در حال تحویل است

از روش زیر استفاده کنید تا مطمئن شوید که فقط ردیف صحیح به دستگاه تحویل داده می شود

adb shell pm path {packageName}

شما باید چیزی شبیه به:

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

کمکی

شروع سریع با استفاده از Curl

در زیر مثالی (با استفاده از ابزار خط فرمان curl) از ایجاد یک پیکربندی ردیف دستگاه جدید ، و استفاده از api Edits برای ایجاد یک ویرایش جدید، آپلود AAB جدید (ارتباط آن با پیکربندی ردیف دستگاه خاص)، تنظیم آهنگ/ پیکربندی را آزاد کنید و ویرایش را انجام دهید. (بنابراین تغییر را عمومی می کند) . مطمئن شوید که مکان آن را داشته باشید:

ابتدا یک پیکربندی ردیف دستگاه ایجاد کنید و از deviceTierConfigId که پس از یک تماس موفق دریافت خواهید کرد یادداشت کنید.

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

یک ویرایش را شروع کنید - یک شناسه و زمان انقضا برای ویرایش دریافت خواهید کرد. شناسه را برای تماس های زیر ذخیره کنید.

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

AAB را آپلود کنید ، پیکربندی ردیف دستگاه را به عنوان پارامتر پرس و جو مشخص کنید - در صورت موفقیت آمیز بودن تماس، کد نسخه، sha1 و sha256 ساخت را مشاهده خواهید کرد. کد نسخه را برای تماس بعدی ذخیره کنید.

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 را به آهنگ مورد نظر اختصاص دهید (برای آزمایش، توصیه می‌شود از مسیر تست داخلی استفاده کنید، اما می‌توانید در مورد آهنگ‌های مختلف بیشتر بخوانید) ، در اینجا ما یک عرضه ساده بدون یادداشت‌های انتشار انجام می‌دهیم، اما می‌توانید این صفحه را بخوانید تا درباره نحوه اجرای مرحله‌بندی عرضه‌ها، نسخه‌های پیش‌نویس و یادداشت‌های انتشار بیشتر بیاموزید. اگر اولین باری است که از Publisher API استفاده می‌کنید، توصیه می‌کنیم این نسخه را به‌عنوان نسخه پیش‌نویس ایجاد کنید و نسخه را در کنسول Google Play خود تکمیل کنید تا مطمئن شوید همه چیز به درستی پیکربندی شده است .

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}

تغییرات را انجام دهید (با احتیاط ادامه دهید، زیرا این کار باعث می‌شود که همه تغییرات در Play به آهنگ مورد نظر منتقل شوند )

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