İçeriğe geç

Kurulum rehberleri · Unity

Unity oyunları için Google Play kapalı testi

Menü menü Unity: doğru anahtar deposu, betik altyapısı ve API düzeyiyle Android App Bundle derle, kapalı test kanalına yükle ve 12 test ediciyi 14 gün opt-in tut.

Derleme
Build App Bundle (Google Play)
Sürüm kodu
Player → Bundle Version Code
Hedef API
Target API Level ≥ 36

Android App Bundle derle

Aşağıdaki menü adları File → Build Profiles kullanan Unity 6'dan. Unity 2022 ve öncesinde aynı seçenekler File → Build Settings altındadır.

  1. Android'e geç

    File → Build Profiles'ı aç, Android'i seç (modül yoksa Unity Hub ile kur) ve Switch Profile ile etkin profil yap.

  2. Paket adını belirle

    Edit → Project Settings → Player → Android içinde Other Settings → Identification altında paket adını ayarla. İlk yüklemeden sonra değiştirilemez.

  3. IL2CPP ve ARM64'ü seç

    Configuration altında Scripting Backend değerini IL2CPP yap, ardından Target Architectures içinde ARM64'ü aç. Google Play 64 bit native kod ister ve ARM64 yalnız IL2CPP ile kullanılabilir.

  4. Paketi aç

    Derleme profiline dön, Build App Bundle (Google Play) kutusunu işaretle (Export Project kapalıyken görünür) ve Development Build'in kapalı olduğundan emin ol.

  5. Derle

    Build'e tıkla, bir dosya adı seç; Unity .aab dosyasını yazar.

CI'da mı derliyorsun? Aynı ayarlar bir editör betiğinden de kullanılabilir; bu sayede sürüm kodunu artırmayı unutmak da imkansızlaşır:

Assets/Editor/ReleaseBuild.cs
using UnityEditor;

public static class ReleaseBuild
{
    [MenuItem("Build/Android App Bundle")]
    public static void Build()
    {
        PlayerSettings.Android.bundleVersionCode += 1;
        EditorUserBuildSettings.buildAppBundle = true;
        BuildPipeline.BuildPlayer(new BuildPlayerOptions
        {
            scenes = new[] { "Assets/Scenes/Main.unity" },
            locationPathName = "Builds/game.aab",
            target = BuildTarget.Android,
            options = BuildOptions.None,
        });
    }
}

Anahtar deposu ve Play Uygulama İmzalama

Kendi anahtar deposun yoksa Unity debug anahtarıyla imzalar ve Play Console debug imzalı paketleri reddeder. Editörde bir tane oluştur:

  1. Keystore Manager'ı aç

    Edit → Project Settings → Player → Android → Publishing Settings yoluna git ve Keystore Manager'ı aç.

  2. Anahtar deposunu oluştur

    Keystore → Create New'u seç, dosyayı kaydet (herhangi bir yere ya da ayrılmış anahtar deposu klasörüne), bir şifre belirle ve bir takma adla anahtar ekle.

  3. Derlemelerde kullan

    Publishing Settings'e dön, anahtar deposunu ve anahtar takma adını seç, şifreleri gir.

Bu anahtar deposu senin yükleme anahtarındır. İlk yüklemede Play Console, Play Uygulama İmzalama'yı kurar ve uygulama imzalama anahtarını Google saklar. Anahtar deposu dosyasını ve iki şifreyi projenin dışında yedekle; kaybolan yükleme anahtarı Play Console'dan sıfırlama istemek demektir.

Bundle Version Code ve Target API Level

Player → Other Settings → Identification içinde Version oyuncuların gördüğü değerdir, Bundle Version Code ise Google'ın karşılaştırdığı tam sayı. Yükleyeceğin her derlemeden önce Bundle Version Code'u artır; Play Console tekrar kullanılan kodları reddeder.

Hemen yanında Target API Level var. 31 Ağustos 2026'dan beri yeni uygulamalar ve güncellemeler Android 16'yı (API düzeyi 36) hedeflemek zorunda. Otomatik ayarda Unity kurulu en yüksek SDK'yı kullanır; bunun en az 36 olduğunu kontrol et. Eski editör sürümleri en yeni düzeyi desteklemeyebilir; öyleyse Unity'yi testin ortasında değil, öncesinde güncelle.

Unity tuzakları

  • Mono derlemesi. Mono ARM64 üretemez. Play Console da sürümü 64 bit şartını karşılamıyor diye işaretler. ARM64 ile IL2CPP'ye geç.
  • Açık kalan Development Build. Geliştirme derlemeleri daha yavaştır, geliştirme filigranı gösterir ve hata ayıklanabilir olarak işaretlenebilir; Play Console bunu reddeder.
  • Reklam ve analitik için eski SDK'lar. Eski üçüncü taraf SDK'lar eski native kitaplıklar ve izinler getirir. Testten önce güncelle: Play Console 16 KB bellek sayfalarını desteklemeyen kitaplıklar için uyarır ve 1 Şubat 2027'den itibaren desteklemeyen güncellemeler yayınlanamaz.
  • Çok büyük paket. Yükleme boyut yüzünden başarısız olursa Split Application Binary'yi aç; Unity varlıkları temel modül yerine Play Asset Delivery paketlerine taşır.
  • Minify eklentileri bozar. Release'te küçültme, eklentilerin adıyla yüklediği Java sınıflarını silebilir. Koruma kuralları ekle ya da küçültülmüş release'i yüklemeden önce cihazda test et.
  • Sürüm kodunu unutmak. Aynı Bundle Version Code ile ikinci yükleme başarısız olur. Artırmayı betiğe bağla ya da yayın kontrol listene ekle.

IL2CPP derlemeleri için yerel çökme sembolleri

Bir Unity oyunu test edicinin telefonunda çöktüğünde yığın izi libil2cpp, libunity ya da libmain içini gösterir. Semboller olmadan Play Console yalnız ham adresler gösterir ve Google Play, sembolleri yüklemeden önce gelmiş çökmeleri sembolize etmez. Bunu ilk çökmeden sonra değil, ilk kapalı test sürümünden önce kur.

  1. Sembolleri aç

    File → Build Profiles → Android içinde Debug Symbols değerini Public yap. Public semboller yalnız sembol tablosunu içerir; okunur fonksiyon adları için yeterlidir ve dosyayı küçük tutar. Debugging ise yerelde bir native debugger bağlamak için tam hata ayıklama bilgisi ekler.

  2. Google'a nasıl ulaşacaklarını seç

    Kendin yükleyeceğin MyApp-0.1-v100-IL2CPP.symbols.zip gibi adlandırılmış bir paket için .zip seç ya da sembolleri .aab ile birlikte yüklensinler diye uygulama paketine göm. Bir derleme betiğinde aşağıdaki parça ikincisini yapar.

  3. Sembolleri sürümlerle eşle

    Semboller tam olarak bir Bundle Version Code'a aittir. Zip'i elle yüklüyorsan bunu Play Console'un App bundle gezgini'nde, o sürümün İndirilenler sekmesinde, test ediciler kurmadan önce yap.

Editor script (C#), e.g. in a CI build method
// Public symbols, embedded in the .aab so they upload with it
UserBuildSettings.DebugSymbols.level = DebugSymbolLevel.SymbolTable;
UserBuildSettings.DebugSymbols.format = DebugSymbolFormat.IncludeInBundle;

Bir yerel eklenti ayrı bir sembol dosyası getiriyorsa o dosyayı Inspector'da seç ve Shared Library Type değerini eşleşen CPU ile Symbol yap. Dosya kitaplıkla aynı adı taşımalı ve ayrı bir klasörde durmalı.

Kısaca Play Console: kapalı testten üretime

Unity paketin derlenip imzalandıktan sonra gerisi Play Console'da geçer ve her çatıda aynıdır. Bu, kısa kontrol listesi; her menü ve ekran Play Console adımlarının tamamında anlatılıyor.

  • Uygulama kurulumunu bitir: Kontrol Paneli'nde gizlilik politikası, uygulama erişimi, reklamlar, içerik derecelendirmesi, hedef kitle, veri güvenliği ve mağaza girişi.
  • Kapalı test sürümü oluştur: Test et ve yayınla → Test → Kapalı test altında test edicilerinin ülkelerini seç, .aab dosyasını yükle ve incelemeye gönder.
  • Test edicileri Google Group ile ekle: Test ediciler sekmesinde grubu ekle ve opt-in bağlantısını paylaş. Bağlantı, kanal Yayınlandı durumuna geçince çalışır.
  • En az 12 test ediciyi 14 gün kesintisiz opt-in tut. Dahili test sayılmaz; ayrılıp geri dönen birinin 14 günü baştan başlar.
  • Test sırasında en az bir güncelleme yayınla ve test edicilerin ne bulduğunu, senin neyi değiştirdiğini not et.
  • Üretime başvur: Kontrol Paneli'nden başvur ve testin, uygulaman ve hazırlığın hakkındaki üç bölümü yanıtla. Karar Google'ındır; kimse onayı garanti edemez.

Ayrılanları hesaba kat: 12 kişiden fazlasını bul ki biri ayrıldığında takvimin uzamasın. Play Console adımlarının tamamını gör.

Play Console adımlarının tamamı

Kapalı test kanalı, Google Group ve opt-in bağlantısı, 12 test edici / 14 gün kuralı ve üretim başvurusu, tek sayfada adım adım.

Play Console adımlarını aç

Testi bozmadan hızlı yinele

Unity'de: Bundle Version Code'u artır, .aab dosyasını yeniden derle ve aynı kapalı test kanalına yükle. Testin ortasında yayınlanan küçük bir düzeltme yeterli.

Kendi cihazlarında Build and Run, oyunu Run Device altında seçili telefona kurar; çıktı yolu bir kez ayarlandıktan sonra Ctrl+B (macOS: Cmd+B) bunu tekrarlar. Unity'nin application patching özelliği cihazındaki debug derleme sürelerini kısaltır ama test edicilere hiçbir şey ulaştırmaz: onların her zaman kapalı test kanalında yeni bir .aab dosyasına ihtiyacı vardır.

  • Şifreler kaydedilmez. Unity anahtar deposu ve anahtar şifrelerini diskte saklamaz; her Editor yeniden başlatmasından sonra yeniden girersin. Tekrarlanabilir CI derlemeleri için onları, derleme bölümündeki sürüm kodu artırmanın yanında, editor derleme betiğinde ayarla.
  • Boyuta dikkat et. Google Play temel modülü sıkıştırılmış indirme boyutu olarak 500 MB ile sınırlar. Daha büyük oyunlar Play Asset Delivery ile varlık paketlerine ihtiyaç duyar; modüller ve install-time varlık paketleri birlikte 4 GB'a kadar çıkabilir.
  • Yerel güncellemelerden sonra yeniden derle. Editor, 16 KB yerine 4 KB'a hizalanmış her .so için derleme sırasında uyarı gösterir. Editor'ının ve Burst gibi yerel paketlerin en son yama sürümüne geç, sonra bir sonraki yüklemeden önce yeniden derle.
  • Editor sürümünü sabit tut. Test ortasında Unity sürümünü değiştirmek test edicilerin çalıştırdığı motor kitaplıklarını değiştirir. Bir çökme güncellemeyi zorunlu kılmadıkça sürümü 14 gün boyunca sabitle.

Sık sorulan sorular

Yüklemeden önce Android emülatöründe test edebilir miyim?

Unity Android emülatörlerini desteklemez. Fiziksel bir cihazda test et; Unity Remote girdi için, Device Simulator ekran düzeni için yardımcı olur ama ikisi de gerçek telefondaki release derlemesinin yerini tutmaz.

Unity 6 hangi hedef API düzeylerini kullanabilir?

Unity'nin güncel Unity 6 sürümleri için Android gereksinimleri sayfası API düzeyi 35 ve 36'yı hedefleyebileceğini söyler; Google Play de yeni uygulamalar ve güncellemeler için 36 ister. Desteklenen en düşük Android sürümü 8.0'dır (API düzeyi 26).

Gerçekten IL2CPP gerekli mi?

Google Play için pratikte evet: ARM64'ü yalnız IL2CPP derler ve Google Play 64 bit yerel kod ister. Okunur çökme raporları için libil2cpp sembollerini üreten de IL2CPP'dir.

Bazı test ediciler oyunu neden başlatamıyor?

Unity 6, OpenGL ES 3.1 ya da Vulkan ister; OpenGL ES 3.0 ve öncesi desteklenmez. Vulkan'ı açık bırak ve test edicilere opt-in olmadan önce asgari gereksinimi söyle ki onları ilk gün kaybetme.

Kaynaklar

Teknik ayrıntılar aşağıdaki resmi belgelerle kontrol edildi. Menüler ve varsayılanlar sürümden sürüme değişir; şüphede kalırsan resmi sayfa esastır.

12 test edici kuralında yeni misin?

Genel rehber Google'ın şartını, bir TestBunny kampanyasının gün gün nasıl ilerlediğini ve neyi garanti edip edemediğimizi anlatır.

Genel rehberi oku

14 gün için 12 gerçek test ediciye mi ihtiyacın var?

Uygulamanı ve kapalı test bağlantını ekle, Starter (15 test edici) ya da Pro (25 test edici) planını seç, her test edicinin etkinliğini panelinde gün gün izle.

TestBunny'nin Google ile bir bağlantısı yoktur. Test ediciler nakit değil, kredi kazanır. Google'ın üretim erişimi kararını kimse garanti edemez, biz de etmeyiz.