GÜNCELLEME (22.06.2019): Resimler eklendi ve Unity 2019 için talimatlar güncellendi.

Herkese merhaba,

Son dersimin üzerinden uzunca bir süre geçmesinin ardından tekrar sizlerleyim. Bu dersin dışında daha planladığım pek çok güzel proje var ama henüz hayata geçirmek kısmet olmadı.

Bu dersi bir nevi sitenin ölmediğini, tam gaz yola devam edeceğini haber vermek için yazıyorum diyebiliriz. Bir diğer sebep ise, bu dersin işleyeceği konu, yani Google Play‘e Unity oyunlarını yüklemek, bana epeyce sorulduğundan artık bu sorulara ortak bir yerden cevap vermek istiyorum.

Derste ne göreceğiz? Öncelikle Unity üzerinden yaptığınız uygulamayı imzalamayı (sign) göreceğiz. Ardından bu imzalanmış uygulamayı Google Play’e yüklemeyi göreceğiz. Derse başlamadan önce bir Google Play Developer hesabına sahip olmalısınız (tek seferlik bir ödeme karşılığı sahip oluyorsunuz) ve Android SDK’yı düzgünce kurup Unity’e tanıtmalısınız. Android SDK kurulumu için sizi şuraya alayım: yasirkula.com/2013/07/17/unity-android-sdk-kurulumu-resimli-anlatim/

Artık derse başlayalım!

NOT: Proje konumunuzda ‘ü‘, ‘ı‘, ‘ğ‘ gibi Türkçe karakterler varsa, bunları İngilizce karakterler ile değiştirin. Örneğin projeniz “C:\Ünity Projeleri\Yılan Oyunu” konumunda ise, bu konumu “C:\UnityProjeleri\YilanOyunu” olarak değiştirin. Örnekte olduğu gibi, konumdaki boşluk karakterlerini de silmenizi öneririm.

Bundle Identifier Belirlemek

En kolay kısım burası. Eğer Player Settings‘te Bundle Identifier kısmını hiç ellemeden uygulamanızı Android’e build almaya kalkarsanız, “Bundle Identifier has not been set up correctly” hatası alırsınız. Bu hatayı çözmek için yapmanız gereken tek şey, Bundle Identifier değerini şu şekilde değiştirmek: com.SirketinizinIsmi.UygulamaninAdi. Burada herhangi bir noktalama işareti (aralardaki noktalar hariç), boşluk veya Türkçe karakter kullanmayın.

64-bit APK Desteği Eklemek

Artık Google Play’e 64-bit desteği olmayan APK yüklemeye çalıştığınızda şu uyarıyla karşılaşacaksınız: “Bu sürüm Google Play 64 bit gereksinimi ile uyumlu değil.” Uygulamalarınıza 64-bit desteği eklemek için, Player Settings’teki Target Architectures listesinde yer alan ARM64’ü seçmeniz yeterli. Eğer bu seçenek kapalıysa, Scripting Backend‘i IL2CPP yapmanız lazım.

NOT: Target Architectures‘taki x86 seçeneğini seçmeyin; bu 32-bit’lik bir işlemci türü olduğu ve 64-bit’i Unity tarafından desteklenmediği için, böyle bir uygulamayı Google Play’e yüklerken yine 64 bit hata mesajı alırsınız.

IL2CPP ile build alabilmek için Android NDK gerekiyor. Edit-Preferences-External Tools‘ta NDK’in konumu girilmişse ve hemen altında NDK ile alakalı bir uyarı mesajı yoksa, NDK zaten kuruludur. Aksi taktirde NDK’i kurup konumunu External Tools’taki kutucuğa girmeniz lazım. Burada tavsiye edilen yöntem, NDK’i Unity Hub ile kurmak; böylece doğru NDK sürümünün kurulduğundan emin olursunuz. Bunun için Unity Hub’da Installs sekmesinden Unity sürümünüzü bulun ve sağ üstündeki 3 noktaya tıklayıp Add Modules seçeneğini seçin. Ardından Android Build Support‘un altındaki Android SDK & NDK Tools‘u seçip kurulumu tamamlayın:

NDK’i Unity Hub ile kurduktan sonra, External Tools’taki “Android NDK Installed with Unity” seçeneğini işaretlemeniz yeterli:

Google Play, uygulamalarınızı “App Bundle” (.aab) formatında yüklemenizi öneriyor ve Unity’nin son sürümleriyle beraber artık App Bundle build almak destekleniyor. Bunun için, Build Settings’teki Build App Bundle seçeneğini işaretleyebilirsiniz:

Eğer bu seçenek(ler)i göremiyorsanız ve eski bir Unity sürümü kullanıyorsanız, güncel bir Unity sürümüne geçmeniz gerekebilir.

Bilgi: https://blogs.unity3d.com/2019/03/05/android-support-update-64-bit-and-app-bundles-backported-to-2017-4-lts/

Yaptığınız Uygulamayı Unity Üzerinden İmzalamak

Google Play’e uygulama yüklerken pek çok arkadaşımız bir hatayla karşılaştı: “You uploaded an APK that was signed in debug mode. You need to sign your APK in release mode.

Hatanın Türkçe versiyonu: “Yükleme başarısız oldu. Hata ayıklama modunda imzalanmış bir APK yüklediniz. APK’nızı yayınlama modunda imzalamanız gerekiyor. İmzalama hakkında daha fazla bilgi edinin.

Android uygulamalarında imzalama (sign) diye bir işlem var. Bu sistem, sizden başka birisinin oyunun yeni bir sürümünü oluşturmasını engelliyor. Google Play hesabınız hack’lense bile, kötü niyetli kişi sizin imzanıza sahip olmadıkça oyunlarınızı güncelleyemiyor. Google Play’e uygulamanızı yüklerken uygulamanızın imzalanmış olması gerekiyor. Burada imzadan kastımız, bir kağıda gerçek imzanızı atıp bir yere postalamak değil. Unity üzerinden uygulamanızı dijital olarak imzalamalısınız. Ancak siz sadece uygulamanızı telefonunuzda test etmek istiyorsanız, uygulamayı imzalamak zorunda değilsiniz. Direkt build edip APK dosyasını Android cihazınızda çalıştırabilirsiniz.

Gelgelelim bu imzalama işlemi nasıl gerçekleşir… Unity’den Player Settings‘e girin ve Publishing Settings sekmesini açıp aşağıdaki talimatları adım adım izleyin:

Unity 2019 ve Sonrası İçin

  1. Keystore Manager butonuna tıklayın.
  2. Gelen pencereden Keystore-Create New-Anywhere seçeneğini seçip, oluşturulacak dosya için bir konum ve isim belirleyin.
  3. Password ve Confirm password alanlarına, keystore için bir şifre girin (ÖNEMLİ: alttaki NOT1’i okuyun).
  4. Alias kısmına küçük harflerle uygulama adını girip ardından alttaki iki yere Alias için bir şifre girin (ÖNEMLİ: alttaki NOT2’yi okuyun). Pencerede geri kalan kısımları doldurmasanız da olur (eğer olmazsa sallamayı da deneyebilirsiniz). İşiniz bitince Add Key‘e tıklayın.
  5. Karşınıza gelen “Key created in keystore. Do you want to set them as your Project Keystore and Project Key?” kutucuğuna Yes deyin.
  6. Harika! Artık oyununuz imzalanmaya hazır. Hemen şimdi oyunu Build ederseniz, alacağınız APK dosyası imzalanacak ve Google Play’e yüklenmeye hazır halde olacak.
  7. Eğer Unity’den çıkıp daha sonra tekrar açarsanız ve yine imzalanmış bir APK dosyası build etmek isterseniz, Custom Keystore seçeneğini işaretleyip altındaki Select… butonu ile keystore dosyanızı seçin. Password kısmına keystore şifresini girdikten sonra, oluşturduğunuz Alias‘ı seçin ve onun şifresini de altındaki Password kutucuğuna girin. Artık build alabilirsiniz.

Unity 2018.4 ve Öncesi İçin

  1. Create New Keystore seçeneğini seçin.
  2. Browse Keystore‘a tıklayın, oluşturulacak dosya için bir konum ve isim belirleyin.
  3. Keystore password ve Confirm password alanlarına, keystore için bir şifre girin (ÖNEMLİ: alttaki NOT1’i okuyun).
  4. Birden üçe kadar tüm aşamaları yaptınız. Şimdi başka hiçbir şeye dokunmadan direkt Alias‘a tıklayıp “Create a new key“i seçin.
  5. Karşınıza gelen pencerede, Alias kısmına küçük harflerle uygulama adını girip ardından alttaki iki yere Alias için bir şifre girin (ÖNEMLİ: alttaki NOT2’yi okuyun). Pencerede geri kalan kısımları doldurmasanız da olur (eğer olmazsa sallamayı da deneyebilirsiniz). İşiniz bitince Create Key‘e tıklayın.
  6. Eğer Alias’ta Unsigned seçili kaldıysa, onu yeni oluşturduğunuz Alias ile değiştirin.
  7. Alias’ın altında yer alan Password‘a alias şifrenizi girin.
  8. Harika! Artık oyununuz imzalanmaya hazır. Hemen şimdi oyunu Build ederseniz, alacağınız APK dosyası imzalanacak ve Google Play’e yüklenmeye hazır halde olacak.
  9. Eğer Unity’den çıkıp daha sonra tekrar açarsanız ve yine imzalanmış bir APK dosyası build etmek isterseniz, bu sefer Use Existing Keystore deyip Browse Keystore ile keystore dosyasını seçin. Keystore password kısmına keystore şifresini girdikten sonra, oluşturduğunuz Alias‘ı seçin ve onun şifresini de altındaki Password kutucuğuna girin. Artık build alabilirsiniz.

NOT1: Keystore şifresi belirlerken, ben bu şifrenin kırılıp kırılamayacağından emin olamadığımdan, üyeliklerde kullandığım şifrelerden farklı, rastgele harf ve rakam kombinasyonundan oluşan bir şifre belirliyorum. Önemli bir nokta var burada: bu şifre bilgisayarınızda herhangi bir yerde kaydedilmiyor. Yani şifreyi bir yere not almalısınız. Ayrıca oluşturduğunuz keystore dosyasını da yanlışlıkla silmeyeceğiniz özel bir yere koymalısınız. Yoksa nolur? Uygulamanızı Google Play’e yükledikten sonra güncellemek istediğinizde, ya bu keystore dosyasını bulamazsınız ya da şifreyi bir türlü hatırlayamazsınız. Bu iki durumdan herhangi biri gerçekleşince de zaten siz o uygulamayı güncellemeyi unutun.

NOT2: Alias şifresi ile keystore şifresi aynı olabiliyormuş ama aynı olmamasını tavsiye ediyorlar. Yine bu şifre de uygulamayı güncellerken gerekeceği için, tıpkı keystore şifresinde olduğu gibi bu şifreyi de bir yere not edin.

NOT3: Tüm adımları aynen uyguladığınız halde, Google Play hâlâ “Hata ayıklama modunda imzalanmış bir APK yüklediniz.” hatası veriyorsa, Denetim Masası‘ndaki Saat ve Bölge ayarlarından Bölge‘nizin değerini “İngilizce (Amerikan)” yapmayı deneyebilirsiniz.

İmzalanmış Uygulamayı Google Play’e Yüklemek

Artık oyununuzu hazırladınız, imzaladınız ve build ettiniz. Çileli kısmı geride bıraktınız! Şimdi oyununuzu tüm dünyaya sunmaktan sadece bir adım uzaksınız. Bu aşamada, yazının başında da dediğim gibi, bir Google Play Developer hesabınızın olması gerekiyor. Hesabınız varsa o zaman bu ünlü Google Play’e uygulamalar nasıl yükleniyormuş adım adım bakalım.

1- Geliştirici konsoluna giriş yapın ve “UYGULAMA OLUŞTUR” butonuna tıklayın.

2- Eğer oyununuz İngilizce destekliyorsa, Varsayılan dil‘i “İngilizce (en-US)” yapmanızı tavsiye ederim, ama oyununuz sadece Türkçe dilini destekliyorsa dil listesinden Türkçe‘yi seçin. Başlık kısmına oyununuzun adını yazın ve OLUŞTUR butonuna tıklayın.

3- Karşınıza gelen Mağaza Girişi sayfasında doldurabileceğiniz bilgiler şöyle:

Başlık: oyunun ismi

Kısa açıklama: oyunla ilgili akılda kalıcı ama çok kısa (maksimum 80 harf) bir açıklama

Tam açıklama: oyunun Google Play sayfasında yer alacak olan ve oyunun özelliklerini vs. kullanıcıya tanıtan açıklama metni

Ekran görüntüleri: oyun içi görselleri ve ekran görüntülerini buraya yükleyebilirsiniz. TELEFON yazan kısma oyununuzun cep telefonlarından alınmış ekran görüntülerini, TABLET yazan yerlere de tabletten alınmış ekran görüntülerini ekleyebilirsiniz. Açıkçası ben TABLET’e de telefondan alınmış resimler yüklüyorum, çok kasmaya gerek yok bence. Dikkat edin kimse duymasın, aramızda casuslar olabilir

Yüksek çözünürlüklü simge: oyununuzun 512×512 çözünürlüklü PNG ikonunu buraya yükleyebilirsiniz. İkonun arkaplanını dilerseniz saydam bırakabilirsiniz. İkona çok özen göstermenizi tavsiye ederim; nasıl insanlar kitapların önce kapağını görüyorlarsa oyunlarınızın da önce ikonunu görüyorlar

Öne Çıkan Grafik: oyunun Google Play sayfasını ziyaret eden kullanıcıların ilk görecekleri şey olan 1024×500 çözünürlüklü grafik

Tanıtım Grafiği: gerçekten hiçbir fikrim yok; ancak yükleyip yüklememek size kalmış

Tanıtım Videosu: varsa oyununuzu tanıtan YouTube videosunun linki

Uygulama türü ve İletişim bilgileri gibi geriye kalan bilgileri de doldurduktan sonra TASLAĞI KAYDET butonuna tıklayın.

NOT: Uygulamanızın açıklamasının, Türkçe Android kullanan kullanıcılar için Türkçe, diğer kullanıcılar için İngilizce (ve belki Alman kullanıcılar için Almanca vb.) olmasını isteyebilirsiniz. Bu işlemi yapmak çok basit: sayfanın yukarısındaki Çevirileri yönet butonuna tıklayıp Kendi çeviri metninizi ekleyin seçeneğini seçin ve açıklamaları çevirmek istediğiniz dilleri seçin. Artık seçtiğiniz her dil için ayrı uygulama adı, uygulama açıklaması ve ekran görüntüleri girebilirsiniz. Diller arası geçiş yapmak için Diller butonuna tıklayın.

4- Sol menüden Uygulama sürümleri sekmesine geçiş yapın. Burada dilerseniz uygulamanız için alfa/beta test sürümleri oluşturup sadece belirli kişilerin bu test sürümlerini indirebilmesini sağlayabiliyorsunuz ama benim bunlarla hiç uğraşım olmadığından süreci bilmiyorum. Siz APK veya AAB’nizi yüklemek için Üretim kısmında yer alan YÖNET butonuna, oradan da SÜRÜM OLUŞTUR butonuna tıklayın. Burada “Google Play’den uygulama imzalama özelliği” kısmının tam olarak ne işe yaradığını ben bilemedim ama siz dilerseniz oradaki link vasıtasıyla bu sistem hakkında daha fazla bilgi edinebilirsiniz. Velhasılıkelam, ben Paint 360° uygulamamda bu kısımda DEVAM ET seçeneğini seçtim ve bir sıkıntı yaşamadım. APK’nızı yüklemek için DOSYALARA GÖZ AT butonuna tıklayın. Ardından Sürüm adı‘na 1.0 gibi bir sürüm kodu girip KAYDET butonuna tıklayın.

NOT: Eğer Unity’de Player Settings‘te Device Filter olarak “FAT (ARMv7+x86)” seçili ise, uygulama boyutunu düşürmek adına şöyle bir yol izlemenizi öneririm: önce Device Filter’ı ARMv7 yapıp bir build alın. Ardından Bundle Version Code‘u 1 artırıp Device Filter’ı x86‘ya çevirerek bir başka build daha alın. Google Play geliştirici konsolunda yeni bir sürüm oluştururken DOSYALARA GÖZ AT’tan hem ARMv7’li APK’yı hem de x86’lı APK’yı ayrı ayrı sunucuya yükleyin. Bu sayede “FAT (ARMv7+x86)”ın yaptığı işi, APK boyutunu büyütmeden yapmış olacaksınız.

5- Sol menüden İçerik değerlendirme sekmesine geçiş yapıp burada karşınıza gelen bilgileri doldurun. Vereceğiniz cevaplara bağlı olarak oyununuzun yaş kitlesi belirlenecek.

6- Sol menüden Fiyatlandırma ve dağıtım sekmesine geçiş yapın. Bu sekmede, uygulamanızın ücretli mi yoksa ücretsiz mi olacağına ve hangi ülkelerde indirmeye açık olacağına karar verebilirsiniz. Hiç ücretli uygulama yüklemediğimden, ücretli uygulama prosedürünü bilmiyorum. Bu sekmede yer alan diğer seçenekleri de istediğiniz gibi doldurun. En alttaki Onaylar kısmında yer alan, yıldızla işaretlenmiş tüm kutucuklara tik atın.

7- Tüm bu işlemler bittikten sonra Uygulama sürümleri menüsüne geri dönün ve oluşturduğunuz sürümün yanındaki DÜZENLE butonuna tıklayın. Gelen sayfada sağ alttan GÖZDEN GEÇİR butonuna tıklayıp son olarak da sağ alttan YAYINLA butonuna tıklayın. Bir sıkıntı olmazsa oyununuz bir gün içerisinde Google Play’de yayınlanacaktır. Hayırlı olsun!

Mevcut Bir Uygulamayı Güncellemek

Diyelim uygulamanız çok tutuldu ve siz de oyunu güncellemeye karar verdiniz. Yapmanız gereken şeyler sırayla şöyle:

1- Unity’de Player Settings‘e gelin ve buradan Other Settings sekmesini açın. Bu kısımda değiştirmeniz gereken iki değer var: Bundle Version (veya direkt Version) ve Bundle Version Code. Eğer Bundle Version 1.0 ise, onu örneğin 1.1 yapın. Ardından eğer Bundle Version Code 1 ise onu 2 yapın. Yani içindeki değeri 1 artırın.

NOT: Eğer yukarılarda bahsettiğim metodu kullanarak Google Play geliştirici konsoluna ARMv7 ve x86 için ayrı APK’lar yüklediyseniz, ve diyelim Bundle Version Code değeri ARMv7 için 1, x86 için 2 idiyse, o zaman yeni ARMv7’nizin Bundle Version Code’unu 3, x86’nızın ise 4 yapın.

2- Publishing Settings sekmesinden keystore ve alias şifrelerinizi girip oyunu Build edin.

3- Google Play geliştirici konsolunu açın ve oyun listesinden güncellemek istediğiniz oyuna tıklayın. Sol taraftaki menüden Sürüm yönetimi-Uygulama sürümleri yolunu izleyin. Üretim kısmındaki YÖNET butonuna tıklayın. Sağ üstteki SÜRÜM OLUŞTUR butonuna tıklayıp gelen sayfaya APK'(lar)ınızı yükleyin.

4- Bu sürümdeki yenilikler alanına, güncellemeyle oyuna eklediğiniz özellikleri ve(ya) düzelttiğiniz sorunları yazın.

5- İNCELE butonuna tıklayarak değişiklikleri onaylayın.

6- Harika! Yaptığınız bu değişiklikler, bir gün içinde dükkandaki uygulamanıza yansıyacak.

Bu yazıya da burada son vermek istiyorum. Umarım faydalı olmuştur. Sağlıcakla kalın!

Furkan için bir cevap yazın Cevabı iptal et


203 yanıt

  1. Barış Avatar
    Barış

    “Uygulamada Google Play Faturalandırma Kitaplığı’nın 6.0.1 veya sonraki bir sürümünün kullanılması gerekir. İhlali 31 Ağu tarihine kadar giderin”

    Hocam oyunumda IAP yok ve AdMob da kullanmıyorum, sadece Unity Ads var ama geliştirici konsolundaki oyunumda politika durumunda bu yazıyor. Ne yapmam gerekir, acaba sizin de başınıza geldiyse diye merak ettim hocam

    1. yasirkula Avatar

      Unity projenizin Library/PackageCache klasöründe IAP gözüküyor mu? Gözüküyorsa başka bir package tarafından otomatik import ediliyor olabilir. Onu tespit etmek lazım.

      1. Barış Avatar
        Barış

        Hocam halloldu sorunum sayenizde çok teşekkür ederim. Dediniz yerde unity purchasing klasörü vardı, o klasörü elle silmedim ama unity’de Services>Explore diyerek açılan yerden In App Purchase’yi ya update gerekiyor ya da remove gerekiyor benim oyunlarda IAP yoktu bu yüzden remove yaptım. Ayrıca orada version history’de denmiş ki: “GooglePlay – Billing Library updated to 6.2.1 (was previously 5.2.1). No new feature support was added. Subscriptions must still have only 1 base plan.” biz 6.2.1 google play faturalandırma kütüphanesi kullanıyoruz diye, google da 6.0.1 üstü olsun yeterli demişti yani update yapılırsa da sorun hallolur hocam.

      2. yasirkula Avatar

        Çözülmesine sevindim. İlerde kullanacak olursanız, dediğiniz gibi update yapmak yeterli olacak gibi geldi bana da.

  2. Barış Avatar
    Barış

    Yasir Bey merhaba, size de kasım 2023 gibi mutlaka gelmiştir mail, google herkesten hesap doğrulaması istiyor bu konuda ne yapmamız gerektiğini biliyor musunuz veya siz bu doğrulamayı yaptınız mı hocam? https://support.google.com/googleplay/android-developer/answer/14177239

    kimlik ve e devletten ikametgah alıp ekran fotoğrafı göndermeyi düşünüyorum kendi üstüme fatura yok, banka ekstresi de yollayabilirim.

    1. yasirkula Avatar

      Dün süreci tamamladım. Ehliyet ve e-devlet ikametgah belgesi kullandım. 1 günde onaylandı.

      1. Barış Avatar
        Barış

        Hocam ben de süreci tamamladım çoktan hemen onaylandı, fakat bugün bir oyunlarıma bakayım dedim play store’da “Geliştirici hakkında” kısmındaki yerde ev adresim detaylıca gözüküyordu, aslında ben bunu tahmin etmiştim gizli şekilde ayarlamaya çalıştım ama olmamış. Düzenlemeye çalıştım ama onaylandığı için form falan diyor, ki zaten sadece Türkiye yazsam onay vermezler diye düşünüyorum. Siz nasıl sadece Türkiye yazabildiniz sizin oyunlarının sayfasında sadece isminiz, mail ve Türkiye yazıyor keşke ben de öyle yapabilsem. Sizinki gibi birkaç daha oyun gördüm başka insanların onların da sadece Türkiye yazıyordu adresi. Bu arada onlar da onaylatmış bunu biliyorum çünkü onaylatmayan hesapların oyunlarında “Geliştirici hakkında” bölümü yer almıyor. Hem onaylı olup hem de nasıl Türkiye yazıyor başka insanlarda ona şaşırdım hocam 😀

      2. yasirkula Avatar

        Şurda yazdığına göre oyunlarınızdan para kazanıyorsanız (reklam dahil mi bilmiyorum) tam adres gözüküyormuş: “If you decide to monetize on Google Play then Google will display your full address.”

  3. Hıdır Avatar
    Hıdır

    Hocam ciddi bir problemim var,

    Bu uygulama için bir APK veya Android App Bundle yüklemeniz gerekiyor.

    error
    Hata
    Bu sürüm hiçbir uygulama paketi eklemiyor veya kaldırmıyor.

    adılu bu hataları alıyorum, öncelikle bunddle kulandığımı belirmek isterim yani apk yüklemiyorum, amr 7 64 v.s dediğiniz gibi aynı, anahtar dnilen gibi, tüm ayarlar dediğiniz ile aynı günlerdir her yollu deniyorum sorun neyde anlamıyorum..

    1. yasirkula Avatar

      Aldığınız hatanın İngilizcesi “This release does not add or remove any APKs or App Bundles”. Benim daha önce görmediğim bir hata ama google üzerinden çözüm bulabileceğinizi umuyorum.

    2. hasanberketin Avatar

      Hocam probleminizin sebebi play store mb sınırını açmanız bunun için obb ek formatıyla abb çıktısı almanız lazım. Player settingse gelin en alt kısımda split application binary yazıyor oraya tıklayın formatınız artık obb olarak açılıyor. Apklarınız çalışmayabilir apk deneme için çıktı alacaksanız bu seçeneği kapatıp alın çıktınızı. Bir sene geçmiş ama bu problemi yeni yaşayanlarda var buradan bulabilirler problemlerinin çözümünü saygılar sevgiler.

  4. Barış Avatar
    Barış

    Hocam Target API Level bölümünde automatic highest installed seçtim. Sizce Android 13.0 API level 33 mü seçeyim direkt? Bir de Android sürümü falan yazmadan direkt API level 34 diye de bir şey var onu ellemedim hiç.

    1. yasirkula Avatar

      Spesifik bir sürüm seçme ihtiyacım olmadığı sürece ben sizin gibi otomatik ayarda bırakıyorum. Daha yüksek bir Android sürümü yüklerseniz o zaten otomatik olarak seçilecek.

  5. Can Coşaner Avatar
    Can Coşaner

    “com.DefaultCompany.com.unity.template.mobile2D” zaten Google Play’de mevcut olduğundan farklı bir paket adı kullanmanız gerekiyor. Hocam böyle bir hata alıyorum, sebebini biliyormusunuz lütfen yardım edin.

    1. yasirkula Avatar

      Edit-Project Settings-Player’daki Bundle Identifier değerini değiştirebilirsiniz.

  6. Serkan Avatar
    Serkan

    Hocam selam,

    Ben oyunu App Bundle olarak build alıp google play’e yüklemeye çalışıyorum. “Android App Bundle imzalanmamış” uyarısı veriyor. Keystore dan imzalayarak tekrar yüklemeye çalışsam da aynı uyarıyı vermeye devam ediyor. Başka bir yerden mi imza yapmak gerekiyor.?

      1. Serkan Avatar
        Serkan

        Hocam merhabalar,

        Ben oyunu bitirdim google play’e yükledim. Şimdi güncelleme yapmak için bundle versiyonunu 1 attırdım build alırken gradle uyarısı veriyor. AndroidManifest dosyalarının içine baktığımda versioncode 1 görünüyor bunları 2 yapsamda aynı hatayı veriyor. Bir önceki Unity sürümünde her arttırdığımda sorunsuz build alıyordum ama anlamadım. Bir yönlendirmen olursa çok sevinirim.

      2. yasirkula Avatar

        Hem versiyon numarasını (1.0->1.1) hem de versiyon kodunu (1->2) artırdıysanız, aldığınız uyarı mesajı nedir?

  7. Barış Avatar
    Barış

    Hocam daha oyunum incelemedeyken böyle mail geldi Google dan

    Issue found: Invalid Data safety form

    We reviewed your app’s Data safety form in Play Console and found discrepancies between it and how the app collects and shares user data. All apps are required to complete an accurate Data safety form that discloses their data collection and sharing practices – this is required even if your app does not collect any user data.

    We detected user data transmitted off device that you have not disclosed in your app’s Data safety form as user data collected.
    We detected user data transmitted off device that you have not disclosed in your app’s Data safety form as user data collected.

    Issue details

    We found an issue in the following area(s):

    SPLIT_BUNDLE 4: Policy Declaration – Data Safety Section: Device Or Other IDs Data Type – Device Or Other IDs (some common examples may include Advertising ID, Android ID, IMEI, BSSID)
    Ne yapmalıyım sizce?

    1. yasirkula Avatar

      Formu bu linkteki gibi doldurmayı deneyebilirsiniz: https://docs.unity.com/ads/GoogleDataSafety.html

  8. Barış Avatar
    Barış

    Geliştirici konsolunda uygulama içeriğine tıklayınca altta Veri güvenliği kısmı var. O kısıma ne cevaplar vermeliyim bilginiz var mı hocam(unity ads kullanıyorum ve unity ads de veri topluyor diye bildiğim için mutlaka o kısmı doldurmalıyımdır diye düşünüyorum)? Ayrıca google playde oyunumun yayınlanmasını 1 gündür bekliyorum hala “incelemede” diyor bunun hakkında ne düşünüyorsunuz? Bu arada sizi mükemmel desteğiniz için Credits e ekledim. Şimdiye kadar gerçekten çok yardım ettiniz gerçekten Çok sağolun yayınlayınca atarım sizede:)

    1. yasirkula Avatar

      Doldururken şuradan faydalanabilirsiniz: https://docs.unity.com/ads/GoogleDataSafety.html. Credit için tekrardan teşekkür ederim ^^

      1. Ömer Şahan Avatar
        Ömer Şahan

        Hocam google play oyunu yükledim 15 gündür yayınlamıyor nedeni nedir acaba

      2. yasirkula Avatar

        Hâlâ incelemede diyorsa bence beklemek dışında yapabileceğiniz bir şey yok 😦

  9. Barış Avatar
    Barış

    Hocam aab dosyasını telefona attım ama açılmadı, apk hemen açılırdı. Bu normal mi?

    1. yasirkula Avatar

      AAB nasıl yükleniyor maalesef bilmiyorum. “how to install aab file in android” şeklinde arama yapabilirsiniz veya test aşamasında APK çıktı alabilirsiniz.

  10. Barış Avatar
    Barış

    Hocam oyunu aab olarak build aldığımda BackUpThisFolder_ButDontShipItWithYourGame diye de bi dosya oluşuyor. Önceden yoktu bu tarz bir şey acaba bir hata mı yaptım. Hem aab var hem bu klasör var bu klasörüde google playe yüklemem gerekmez değil mi?

  11. Bekir Batuhan KUNDAK Avatar

    Merhabalar hocam umarım iyisinizdir.Küçük bir sorum var işin içinden cıkamadım ve size geldim.
    Bir oyun yaptım ve oyunum 450mb.Unity ile bunu apk olarak cıkartabiliyorum android apple bundle(aap) olarak cıkartabiliyorum burada sorun yok.
    Lakin oyun boyutu 150mb dan fazla olduğu için google play yüklememi istemiyor.
    İnternette araştırdım bu tarz yüksek mb lı dosyaları apk+obb olarak ikiye ayırıp öyle yüklüyorlar.
    Bende bu şekilde dosyayı apk+obb ye dönüştürdüm 110mb apk ve 340mb obb dosyam oldu.

    Simdi sorun burada baslıyor artık google play apk kabul etmiyor insanlar bu şekilde ikiye ayırıp önce apkyı ardından obbyi yükleyerek bu sorunu çözmüş ama simdi google play diyor ki sadece android app bundle (aab) olarak yükleyebilirsin.Bende bu dosyayı küçük boyutlu bir aab ye dönüştüremiyorum veya aab+obb olarak ayıramıyorum ne yapabilirim hocam yardımınıza ihtiyacım var.

    1. yasirkula Avatar

      Şurada yazdığına göre AAB için de Split Application Binary seçeneği varmış ama OBB ile uğraşmadığım için, maalesef bu benim yardımcı olabileceğim bir konu değil: https://docs.unity3d.com/2021.2/Documentation/Manual/play-asset-delivery.html

      1. Bekir Batuhan KUNDAK Avatar
        Bekir Batuhan KUNDAK

        Anladım hocam teşekkür ederim

  12. Barış Avatar
    Barış

    Play Uygulama İmzalama’ya kaydolun diyor google, App Bundle ile yüklemek için. Oyunumu güncelleyemedim ne yapmalıyım sizce?

    1. yasirkula Avatar

      Play Uygulama İmzalama tercihe bağlı bir şey. Sizin yaşadığınız sıkıntı nedir bilemedim. Eğer keystore’unuzu veya bunun şifresini kaybettiyseniz kötü olmuş.

      1. Barış Avatar
        Barış

        Yok kaybetmedim, illa zorunlu tuttu google. Neyse bir kere daha deneyeyim

  13. mzmsyk Avatar
    mzmsyk

    hocam ben reklamlı bir oyun yükledim googleplaya indirip yüklediğimde oyun açılmıyor. acaba admobla alakalı bir şey mi? unitynin kendisinde oyunu açıp reklamların gerçek Id lerini girmeme rağmen test reklamları çıkıyor.

    1. yasirkula Avatar

      Logcat kullanarak aldığınız crash mesajını bulmanızı öneririm: https://yasirkula.com/2015/10/13/unity-android-oyunlarinizi-debug-etmek/

  14. Barış Avatar
    Barış

    Your app currently targets API level 29 and must target at least API level 30 to ensure it is built on the latest APIs optimized for security and performance. Change your app’s target API level to at least 30.

    Google play e aab formatında oyunumu yüklerken bu hatayı aldım. Ne yapmalıyım sizce?
    Minimum API Level i 30 mu yapayım?

    1. yasirkula Avatar

      Eğer bu sadece bir uyarı ise, hata değilse, siz bilirsiniz. Aksi taktirde SDK Manager’ınızdan Android 30 SDK’ini indirip Unity’deki “Target API Level”ın değerini 30 veya Automatic yapmalısınız. “Minimum API Level”ı kesinlikle 30 yapmayın, yoksa Android 11.0’ın altı cihazlarda oyununuz çalışmaz.

      1. Barış Avatar
        Barış

        SDK Manager da yok ki. NDK SDK ikisinide Unity HUB otomatik kurdu. Neyse bir daha deneyeyim.

      2. yasirkula Avatar

        SDK’i Unity Hub ile kurduysanız o zaman “Target API Level”ı 30 yapınca build alırken “Update Android SDK” diye soruyormuş. O butona tıklayınca otomatik güncelliyor gibi duruyor. Hata alırsanız şu video işinize yarayabilir: https://www.youtube.com/watch?v=3Qay9h14swM. Veya Android SDK’i Android Studio kullanarak kendiniz indirebilirsiniz ama önce Unity Hub ile gelen SDK’i güncellemeyi deneyin derim.

      3. Barış Avatar
        Barış

        Aynen 30 denedim o şekilde oldu. Sizde araştırdığınız için çok teşekkürler hocam.

  15. Barış Avatar
    Barış

    Maksimum cihazda oyunumun çalışması için armv7 + ARM64 seçiyorum(IL2CPP zaten seçili 64 bit için). Peki sadece ARM64 seçsem, armv7 yi seçmesem olur mu? armv7 yi seçmeyince yaklaşık %50 daha az cihazda mı çalışır oyunum?

    1. yasirkula Avatar

      ARM64’ün market payını bulmaya çalıştım ama güncel bir veri bulamadım. Benim önerim ARMv7’yi bırakmamanız yönünde.

      1. Barış Avatar
        Barış

        ARM64 + ARMv7 yaptım.

  16. Ahmet Avatar
    Ahmet

    Hocam merhabalar. Admob hesabında, reklam içerik derecelendirmesi bölümünden Genel kitleleri (G) seçtim. Oyun içerisinde gösterilen reklamların içeriği, buradaki filtrelerle birebir uyumlu olacak mı. Script içerisinde tekrardan bir satır daha kod yazmamız gerekiyor mu

    1. yasirkula Avatar

      AdMob’da çalışmadığım için buna kesin olarak cevap verememekle birlikte, bence başka bir ayar yapmanız gerekmiyor.

  17. programmer Avatar
    programmer

    hocam merhaba benim sorunum scripting backend i IL2CPP seçersem eger aldıgım apk telefonumda çalışmıyor seçmezsem build alamıyorum bilginiz varmıdır bu konuda.
    gradle build almak istemiyorum samsung seller portala yükleme yapmak istiyorum

    1. yasirkula Avatar

      Telefonunuzda neden çalışmıyor? Logcat’teki hata mesajı nedir?

      1. programmer Avatar
        programmer

        şu şekilde bi hata var hocam

        Exception: Unity.IL2CPP.Building.BuilderFailedException:
        error: D:/Unity3d Projects/Escaper Prison 3D/Library/il2cpp_android_armeabi-v7a/il2cpp_cache/3AB361F578AC8166466A137EA1CC6A69.o: section name section has wrong type: 2621440
        fatal error: D:/Unity3d Projects/Escaper Prison 3D/Library/il2cpp_android_armeabi-v7a/il2cpp_cache/3AB361F578AC8166466A137EA1CC6A69.o: attempt to map 1819042862 bytes at offset 1651076210 exceeds size of file; the file may be corrupt
        clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)

      2. yasirkula Avatar

        Bu bir build hatasına benziyor ama IL2CPP ile başarılı bir şekilde build alabildiğinizi söylediniz.

  18. Salih Arslan Avatar
    Salih Arslan

    Hocam merhaba,

    https://www.hizliresim.com/hz26aog

    3 defadır Play Store uygulamama(oyun) onay vermiyor. Çocuklar ve büyükler için olduğu için “Aile Politikalarına uymadığı” gerekçesiyle reddediliyor. Bir “privacy_policy” linki ekleyin diyor.

    Ekleyip tekrar gönderdim, aynı gerekçeyle reddedildi.

    Eklemeden önce READ_PHONE_STATE izni hatası veriyordu. Privacy Policy linli ekleyince artık o hatayı vermiyor ama sanırım sorun hala onunla ilgili.

    https://yasirkula.com/2018/02/28/unity-android-read_phone_state-izni-hakkinda/ sayfanızdaki talimatları uygulamaya çalıştım fakat olmadı, yapamadım yani. (Dosyalarda değişiklik yaptığımda tekrar build edince herşey eski haline dönüyor)

    Yardımcı olabilirseniz çok sevinirim.

    Şimdiden teşekkürler ve iyi çalışmalar.

    1. yasirkula Avatar

      Gizlilik poliçesi linkini Google Play konsoldaki Politika-Uygulama içeriği kısmına eklemeniz lazım. Ona rağmen birebir aynı hatayı veriyorsa, belki oyun içerisinde bir yere de linki koymanız gerekiyordur.

      Assets/Plugins/Android/AndroidManifest.xml sürekli resetleniyorsa bunu bir plugin yapıyordur. Açıkçası daha önce buna şahit olmamıştım. Bu durumda projenizdeki .aar uzantılı tüm dosyaları bulup bunlardan bir tanesini seçin ve onun içindeki AndroidManifest’e ilgili satırı ekleyin. Eğer .aar dosyayı Winrar ile çift tıklayarak açıp ardından içindeki AndroidManifest’i düzenlerseniz, Winrar’a geri döndüğünüzde yapılan değişiklikler arşive uygulansın mı diye otomatik olarak sorar.

  19. Muhammet Fatih Yılamz Avatar
    Muhammet Fatih Yılamz

    Hocam merhaba.
    Oyunu 64 bit olarak build etmeye çalıştığımda succeed yazıyor ancak herhangi bir build dosyası çıkarmıyor. UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) şeklinde bir yazı consoleda yazıyor. Yukarıda belirttiğiniz tüm adımları yaptım ancak bu şekilde bir sorunla karşılaşıyorum. Unity forumda araştırma yaptım ancak bir sonuca ulaşamadım. Unity 2018.3.0f2 versiyonunu kullanıyorum.

    1. yasirkula Avatar

      Boş bir klasöre build almayı dener misiniz?

      1. Muhammet Fatih Yılamz Avatar
        Muhammet Fatih Yılamz

        Hocam cevap için teşekkürler öncelikle. Boş bir klasöre build etmeyi denemiştim ancak olmamıştı. Unity sürümünü güncelleyip projeyi sürüme uyarlayıp tekrar denedim ve oldu.

  20. atillaalagoz Avatar

    Hocam merhaba,

    Oyunumu birkaç gün önce Google Play Store’da yayımladım. Daha önce kapalı test olarak yayımladığımda Google Play Game Services içindeki leaderboardlar çalışıyordu. Oyuncuların puanları leaderboardlara yansıyordu. Oyunu üretim sürümü olarak yayımladıktan sonra leaderboardlara veri gitmemeye başladı. (Projede CloudOnce kullanıyorum bu arada.) Android Logcat ile kontrol ettim. Failed to Log-in Google Play Game Services şeklinde Warning logu veriyor. İnternetten çözüm bulmaya çalıştım. Emin olmamakla birlikte, üretim öncesi kullandığım keystore belgesi ile üretimde kullandığım keystore belgesinin ve bu belge ile oluşturulan OAUTH imzasının(Google Play Game Service için) aynı olmasının bu hataya sebep olabileceğini öğrendim. Unity üzerinden yeni keystore alıp oyunun bu keystore ile yeni bir buildini aldım. Aynı zamanda bu keystore ile Google Play Game Services içindeki SHA1 şifresini yeniden oluşturdum ve oyuna play storeda güncelleme yapmaya çalıştım ama bu sefer de oyunun yeni versiyonunun eski versiyon ile aynı belge tarafından imzalanması gerektiği şeklinde uyarı veriyor ve oyunu güncelleyemiyorum. Bu konu hakkında bilgi ve tecrübeniz var mıdır acaba? Nasıl bir çözüm bulabilirim Google Play Game Services’e bağlanmak için?

    1. yasirkula Avatar

      Yayımladığınız uygulamanın keystore’unu değiştirmek mümkün mü bilmiyorum. Keystore değiştirmediğiniz için hata almanız bana mantıklı gelmedi. Google Play Game Services tecrübem maalesef yok.

  21. Ahmet Avatar
    Ahmet

    Teşekkür ederim numaranın başına sadece +90 eklemem yeterli oldu.

  22. Ahmet Avatar
    Ahmet

    Yasir hocam ben bu keystore dosyasının olayını tam anlayamadım. Kafama bir soru takıldı. Oyunumu play store yayınladıktan sonra bilgisayarımın format yediğini varsayalım. Flash bellekteki kopya keytore dosyası ile oyunumu güncelleyebilir miyim?
    Bir diğer sorumda şu. Geliştirici hesabı oluştururken bizden telefon numarası istiyor. Cep telefonunu kabul etmiyor. Rastgele bir ev telefonu yazdığımda kabul ediyor. Bunun için bir ev telefonu mu bağlatmamız gerekiyor.

    1. yasirkula Avatar

      Dediğiniz gibi her ihtimale karşı, keystore’u kopyalayıp flash bellek gibi birkaç yerde yedeğini tutun bence de. Telefon olarak cep numarası kabul etmemesi beni şaşırttı, numarayı +90 ile başlatmayı deneyin.

  23. Ferhan Avatar
    Ferhan

    Google Play’de yayınlanmış bir oyun için yeni bir Unity projesi oluşturup bu projeyi aynı keystore ile imzalarsak bu yeni projeyi güncelleme olarak yayınlayabilir miyiz?

    1. yasirkula Avatar

      Benim bildiğim kadarıyla, aynı keystore ve aynı Bundle Identifier olduğu sürece güncelleyebilirsiniz.

      1. Ferhan Avatar
        Ferhan

        Aynı Bundle Identifier’ı nasıl sağlarım?

      2. Ferhan Avatar
        Ferhan

        Pardon çok saçma bir soru sormuşum. Aklım başka yere gitti. 🙂

      3. Ferhan Avatar
        Ferhan

        Merak eden olursa sonucu bildireyim. Dediğiniz gibi aynı keystore ve aynı bundle identifier ile yeni oluşturduğunuz bir projeyi eski projenize güncelleme olarak atabiliyorsunuz. “Buna ne gerek var?” derseniz uygulamaya entegre edilen AdMob, Firebase gibi araçları silmek isterseniz oyun hata vermeye başlıyor (Google bu konuda paketleri silme desteği sağlamamış). Bu gibi durumlarda oyunu temiz bir projeye geçirmek gerekiyor. Bu gibi durumlar için aklınızda bulunsun.

  24. Ömer Faruk Avatar
    Ömer Faruk

    oyunumu google playe atmadan önceki buildlerde telefonumda oyundan atmadan oynanılırken google playe attıktan sonra kullanıcılarımdan oyundan attığına dair yorumlar aldım sebebi ne olabilir.

    1. yasirkula Avatar

      Bu kadar bilgi ile söylemesi çok zor. Oyuncuların telefonları çok eski olup da oyunun gerektirdiği donanımı sağlayamamış olabilir, reklam/analitik gibi SDK’ler hata vermiş olabilir, Unity bug’a girmiş olabilir, kodunuz bir şekilde oyunu çökertmeyi başarmış olabilir. Çökme raporunu Google Play’e yollayan oyuncular için, bu çökme raporlarını şu şekilde görebilirsiniz: https://stackoverflow.com/a/63612270/2373034. Bu raporlar, hangi plugin’in veya kodun çökmeye sebep olduğu konusunda fikir verebilir.

    2. Ömer Faruk Avatar
      Ömer Faruk

      ve bu arada oyunumun değerlendirmesini yapıp fikirlerini benimle paylaşırsan sevinirim. oyunu yapım esnasında çok yardımın dokundu.
      https://play.google.com/store/apps/details?id=com.arctech.CandyColor

      1. Ömer Faruk Avatar
        Ömer Faruk

        https://hizliresim.com/ilnI2n
        bu linkteki hatalar görünüyor nasıl çözebilirim.

      2. yasirkula Avatar

        Hataya tıklayarak hatanın tüm detaylarını görmeniz lazım. Hatanın çözümünü bana değil Google’a sorun çünkü crash veren hatalar konusunda benim bilgim yok.

  25. Barış Avatar
    Barış

    https://hizliresim.com/WHxumq Unity tamamen sildim visual studio ile birlikte tekrar yükledim şimdi 2020.1.9 sürümü önceden 2020.1.2 vardı ama şimdi visual studio nun tüm kodları böyle kırmızı sizce ne yapmalıyım? (Bütün scriptler böyle)

    1. yasirkula Avatar

      Şurada yazdığına göre, Unity ve Visual Studio’yu kapatıp projedeki .sln ve .csproj dosyalarını silmek; veya Visual Studio’da yukarıdan Debug modu Release yapıp sonra geri Debug’a çekmek işe yarayabiliyormuş.

  26. Barış Avatar
    Barış

    Oyunumun içine örneğin menüsüne privacy policy eklemeli miyim? Bir defasında oyunum kaldırılmıştı sıkıntı çıkmadı güncelleyip tekrar yolladım. Ama hem oyunun içine hemde geliştirici konsolundaki privacy policy ye koydum. Sadece geliştirici konsolunda privacy policy bölümüne linki koysam ve oyunun içine privacy policy butonu koymasam acaba sıkıntı çıkar mı? Google Play politika ihlali vs.

    1. Barış Avatar
      Barış

      https://support.google.com/googleplay/android-developer/answer/9815348?hl=tr
      https://support.google.com/googleplay/android-developer/answer/9888076?hl=tr
      Bu iki linke göre sanırım mikrofon kamera erişimi vs. veya özel bilgi toplamıyorsam finans ve ödeme bilgileri, kimlik doğrulama bilgileri, telefon rehberi vs. ki zaten bunlar da yok herhalde oyunun içine koymasam da olur? Birde benim bir websitem yok bu yüzden google document da kendim bir yerden kopyalayarak bir metin hazırladım umarım sıkıntı çıkmaz.

    2. yasirkula Avatar

      Linklerden anladığım kadarıyla, bahsettiğiniz hassas verilere erişiyorsanız veya Google Play’de “Aileler için” (Designed for Families) programına katıldıysanız oyun içinde privacy policy linki koymanız zorunlu. Bu durumlar harici için bir şey diyemiyorum çünkü Google’ın sağı solu belli olmaz, belki atladığımız başka bir doküman vardır. Eğer oyun içerisine privacy policy koyabiliyorsanız koymaya devam edin derim.

  27. Barış Avatar
    Barış

    https://docs.unity3d.com/ScriptReference/Application-targetFrameRate.html bu linkte mobil için genelde 30 fps olur demiş ama elle 60 fps mi yapsam çok kararsız kaldım? Bunu yapmalı mıyım sizce mobil fps oyunu? Cihazın ısınmasını etkiler sanırım etkilerse aslında hiç ellememek de makul.

    1. yasirkula Avatar

      Şu asset ile FPS’i kontrol etmenizi öneririm çünkü varsayılan değer 30 olmayabilir (belki sadece bazı cihazlarda, sadece belli başlı ayarlarda veya sadece eski Unity sürümlerinde öyledir). Ben hypercasual oyunlarda şahsen bu değeri 60 yapıyorum.

  28. Barış Avatar
    Barış

    Size daha önce in app purchase sistemi anlatır mısınız diye sormuştum siz IAP ile ilgilenmediğinizi söylemiştiniz ben sadece şunu soracağım ben zaten bu IAP sistemini yaptım ama internette dolaşırken “how to stop iap hacks my game” diye bir yazı gördüm ve biraz araştırdım bunlar IAP’ları hackliyorlarmış tamam ama bunu nasıl yapabiliyorlar? Yani şunu diyeceğim bunu IAP olarak okumayın normal bir özellik hilesi de olabilir sonuçta. Acaba Keystore şifresinin zorluğu hacklenmeyi de zorlaştırır mı acaba?+ App Bundle olarak yüklemek engeller mi hack olayını? Yoksa encryption falan mı yapmalıyım(youtube da gördüm ama hiçbirşey anlamadım ve sadece 1 video vardı anlatan)? (IAP olarak düşünmeyin herhangi özellik hilesi olarak soruyorum)

    1. yasirkula Avatar

      Hile teknikleri konusunda bilgim yok ama tahmin yürütecek olursam, Cheat Engine’de olduğu gibi RAM’deki önemli değerleri (mesela coin sayısı) değiştiriyor olabilirler. PlayerPrefs kullanan oyunlar için, PlayerPrefs’deki değerleri değiştiriyor olabilirler. Ya da IAP tamamlanınca CoinVer fonksiyonu çağrılıyorsa, o fonksiyonu bir şekilde elle çağırıyor olabilirler.

      Bahsettiğim ilk iki olay için gördüğüm en popüler asset şu: https://assetstore.unity.com/packages/tools/utilities/anti-cheat-toolkit-152334. Buradaki ObscuredInt ve ObscuredPrefs konuyla alakalı veri türleri. Üçüncü sorun için ise IL2CPP ile build almak ve/veya bir code obfuscation aracı kullanmak faydalı olur.

      Hile yapan insan %’sinin kayda değer olup olmadığını bilmiyorum ama oyununuz hatırı sayılır bir kullanıcı kitlesine erişene kadar, oyununuza has hileler çıkacağını düşünmüyorum. Bu yüzden isterseniz hileye karşı korunma işlemini, oyununuzdan güzel para kazanmaya başlayana kadar erteleyebilirsiniz. Ardından Asset Store’daki kaliteli anti-cheat asset’lerini entegre edersiniz.

      1. Barış Avatar
        Barış

        Aslında ilk başta bu hack olayının kullanıcılara nasıl ulaşabildiğine bakmak lazım. Çünkü zaten bizim oyunlarımız bir Clash Of Clans değil. Yani kişi Play Store da oyunumu görecek ve onun hack ini diyelim kendi programının arama motorunda aratacak ve diyelimki çıktı. Sonra onu indirir ama ilk kesinlikle play store da bulması gerekli. Yani ben 1.0 yayınlayınca 1.1 bile yayınlasam zaten 1.0 sürümü hackerların elinde olacak benim sonradan güncellemeyle bu hack sorununu çözebilmem için en azından oyuna yeni bir versiyon çıktığı zaman eski olan versiyonu iptal ettirmem gerekir mesela internete bağlandı diyelim cihaz ve 1.1 çıkmasına rağmen hala 1.0 yüklüyse hemen bunu kaydedecek oyuna (değer olarak) ve her sahnede yeni sürüm yükle diyecek. Bunu benim yapabilmem için bir server a ihtiyacım var mıdır? Ama şu da var sanki herkes aratacak mı yani tabiki hayır ama ilk kez yayınlacağından sorunsuz olsun istedim.

      2. Barış Avatar
        Barış

        Aslında dediğiniz çok mantıklı, “tutmaya başlarsa” ama işte tutmadan zaten bütün sitelere o apk gidiyor zaten. Bu yüzden tutarsa güvenlik önlemi alırım deyip sadece yeni sürüm gelirse bu sürüm eskidi diyebileceğim bir sistem sizce mantıklı mıdır? Mantıklıysa bunu nasıl yapabilirim sadece sürümü ilk nete bağlanır bağlanmaz kontrol edecek ve yeni sürüm varsada oyunu açmayacak?

      3. yasirkula Avatar

        Önceki yoruma cevap yazarken bu sistem benim de aklımdaydı ama kafa bulandırmamak için yazmadım. Unity’nin Remote Config servisi ile, bildiğim kadarıyla ücretsiz bir şekilde sunucuda istediğiniz veriyi tutabilirsiniz. Mesela oyunun son sürümünü string olarak sunucuda tutabilirsiniz. Ardından bunu oyunun mevcut versiyonu (Application.version) ile kıyaslayarak oyunun güncel olup olmadığına karar verebilirsiniz. Kıyaslama esnasında iki değeri float.TryParse ile float’a çevirmeniz lazım.

      4. Barış Avatar
        Barış

        Ama aklıma şimdi geldi de ben bununla en iyisi uğraşmayayım çünkü çok zor olacak gibi çünkü zaten oyun internet bağlantısı istemiyor zorunlu tutsam insanlar zaten tepki gösterir niye diye ki zaten hack i yapan kişi internetsiz oynayın diye bir yazı da ekleyebilir bu çok zor değil. Bu yüzden bence hiç girmeyeyim bu işe önceki yorumlarımı da silin isterseniz(çok yer kapladı kusura bakmayın). Ama dediğim gibi güncelleme de yapsak hep zaten 1.0 onlarda olur ve kendi free mağazalarında hep bulunur… free oynayacak olanlar ise aratıp indirebilir… Yani güncelleme de çözüm değil gibi.

      5. Barış Avatar
        Barış

        Tamam öyle yapayım bir bakayım o sisteme ayrıca sadece oyunun en başında eğer kullanıcı nete bağlı değilse ondan bağlanmasını rica edebiliriz bunun çok tepki çekeceğini sanmıyorum. En iyisi böyle yapayım çok sağolun teşekkürler yardımınız için.

  29. abdullahakduman Avatar

    Hocam dediklerinizi yapıp Build aldım fakat olmadı. Ne hata verdi ne de iptal oldu. Compiling native assemblies for ARM64 diye bir yazıda takılıp kaldı. 1 saat oldu fakat halen build işlemi tamamlanamadı. Yardım ederseniz çok mutlu olurum.

    1. yasirkula Avatar

      Projeniz büyük ve bilgisayarınız güçsüz ise, IL2CPP ile alınan build’ler uzun sürebilir. Eğer projenizin olduğu konumda Türkçe karakter veya boşluk varsa, onları silmeyi deneyin. C:\Kullanıcılar\KULLANICI_ADI\AppData\Local\Unity\Editor\Editor.log dosyasını açıp en sonunda bir hata mesajı var mı kontrol edin, varsa o hatayı google’da aratın. Hiçbir şey işe yaramazsa build’e gece başlayıp bilgisayarı açık bırakın ve sabah bir hata var mı kontrol edin.

  30. Ahmet Avatar
    Ahmet

    teşekkür ederim

  31. Ahmet Avatar
    Ahmet

    Hocam Unity’nin 2019.3 versiyonunu kullanıyorum. Boş bir projeyi bile android’e build etmem 20-25dk zamanımı alıyor. Bunun için ne yapılabilir.

    1. yasirkula Avatar

      IL2CPP kullanıyorsanız o build süresini epey uzatıyor. Hem ARMv7 hem ARM64 build almak da uzatır. İlaveten ilk build esnasında Standard shader’ın compile edilmesi uzun sürebilir, sonraki build’lerde bu süre epey düşer.

  32. Erdinç Avatar
    Erdinç

    Hocam şuradaki hatanın aynısını alıyorum. https://www.technopat.net/sosyal/konu/unity-required-api-level-26-hatasi.767566/ ne yapabilirim?

    1. yasirkula Avatar

      Android SDK’inizde en son Android sürümlerinden en azından 2 tanesini kurduğunuzdan emin olun. Bu pencere yine gelirse Use Highest Installed seçeneğini seçin. Ayrıca şuradaki yorumlara da bakmanızı öneririm: https://answers.unity.com/questions/1524254/required-api-level-26-android-sdk.html

  33. Furkan Avatar
    Furkan

    Hocam merhabalar, dediğiniz ayarları titizlikle yaptım ve çıktımı aldım lakin cihazımda açarken paket çözümleme hatası alıyorum. Yardımlarınızı bekliyor, şimdiden teşekkürlerimi sunuyorum.

    1. yasirkula Avatar

      Daha önce hiç denk gelmediğim bir hata. İnternetten hatayı aratmanızı ve logcat’te bir hata mesajı var mı bakmanızı öneririm: https://yasirkula.com/2015/10/13/unity-android-oyunlarinizi-debug-etmek/

  34. fatih Avatar
    fatih

    hocam unity den yapmış olduğumuz uygulama her cihazda çalışmıyor. Uygulama cihaza yükleniyor açılış ekranından sonra donma oluyor ve çalışmıyor sebebi nedir çözüm yolu var mıdır ?

    1. yasirkula Avatar

      Öncelikle logcat’e bakarak hata var mı kontrol etmenizi öneririm: https://yasirkula.com/2015/10/13/unity-android-oyunlarinizi-debug-etmek/
      Hiçbir hata yoksa, o zaman Profiler’dan bir şey tespit edebilir misiniz kontrol etmenizi öneririm: https://yasirkula.com/2020/03/26/unity-profiler-kullanimi/

    2. destekverblog Avatar

      ARMv7 ve ARM64 Tikli değildir.

  35. Erdinç Avatar
    Erdinç

    Merhaba hocam, oyunu build ettikten sonra şu uyarıları görüyorum nedir bunlar?

    Link 1.1 1.2 1.3

    1. yasirkula Avatar

      Aldığınız hata mesajı “invalid keystore format”. İnternette aratınca, JDK sürümünü 1.7’den 1.8’e güncelleyerek sorunu çözenler olduğunu gördüm. Eğer Build System olarak Gradle değil de Internal kullanıyorsanız, Gradle’a geçmeyi de deneyin. Oyunu henüz yayımlamadıysanız, yeni bir keystore ile oyunu imzalamayı da deneyebilirsiniz.

      1. Erdinç Avatar
        Erdinç

        Olmuyor hocam. Yeni bir keystore oluşturabiliyorum ama oyunu daha önce yayımlamıştım. Bilgisayardaki verilerim daha önce silinmişti. keystore dosyasını da kurtarma programlarını kullanarak kurtarmıştım. Acaba dosya hasar görmüş olabilir mi?

      2. yasirkula Avatar

        Hasar gören keystore’lar için de aynı hata mı veriliyor bilmiyorum. Yeni oluşturduğunuz keystore’u Notepad ile açıp içinden 1-2 harf silin ve o keystore ile build almayı deneyin. Aynı hatayı alıyorsanız, kurtardığınız keystore bozuk olabilir. Yaşamadığım bir sıkıntı olduğundan ben yardımcı olamıyorum, isterseniz sorunu google’da da biraz araştırabilirsiniz.

  36. Ali Akgün Avatar
    Ali Akgün

    Merhabalar Yasir bey.. Elinize, emeğinize sağlık. Benim öğrenmek istediğim Google Play Console da uygulama imzasını yüklemek.. Bizden istediği dosya sizin de yukarıda anlattığınız keystore dosyası oluyor sanırım? Bu kısımda karşımıza 3 seçenek çıkıyor..

    1-Android Studio’dan dışa aktarılmış bir anahtar yükle
    2-Java anahtar deposundan bir anahtar dışa aktar ve yükle
    3-Bir anahtar dışa aktar ve yükle (Java anahtar deposu kullanmadan)

    Java anahtar deposu ??

    Bu konuda, Play Console’a anahtarı yükleme ile aydınlatırsanız memnun olurum.
    Teşekkürler..

    1. yasirkula Avatar

      Java anahtar deposu benim bildiğim kadarıyla .keystore dosyası oluyor. 2. seçeneği seçip oradaki talimatları izleyerek, bu keystore’u Google Play’in istediği formata dönüştürebilirsiniz.

      1. Ali Akgün Avatar
        Ali Akgün

        Talimatları izledim ve uygulama anahtarını oluşturdum. Teşekkürler..

  37. asiborabora200 Avatar

    Başarılı bir yazı olmuş. Yazınız için teşekkür ederim

  38. incsoft Avatar
    incsoft

    version yükseltirken aşağıdaki hataları alıyorum.
    https://hizliresim.com/uasVeE
    https://hizliresim.com/V5MiU0
    https://hizliresim.com/tkmrOQ
    https://hizliresim.com/RSp5TY
    https://hizliresim.com/49aLJE

    araştırırken bir sitede Publisher Settings, under Build “Custom Graddle Template” etkin yapın diye bir yazıyla karşılaştım. denedim sorun çözüldü. ama manifest dosyasını yeni versiyona göre düzenlmemiştim. manifest dosyasını düzenleyince yine hata vermeye başladı. 2.0 a geri çevirsemde hata veriyor artık.

    yardımcı olabilir misiniz?

    1. yasirkula Avatar

      Unity Ads’i hem Package Manager’dan/Asset Store’dan import edip hem de Window-Services’tan açmış olabilirsiniz. Window-Services’ta Unity Ads açık ise, kapatmayı deneyin.

  39. emrullo Avatar

    Merhaba,

    Hocam Unity2D oyunumuza google play ile bağlantılı kullanıcı girişli leadboard score nasıl yaparız?

    1. yasirkula Avatar

      Play Games Services plugin’ini kullanabilirsiniz: https://github.com/playgameservices/play-games-plugin-for-unity. Bu konuda internette birkaç Türkçe ders de olabilir. Ben en son leaderboard yapalı çok uzun zaman oldu o yüzden detayları hatırlamıyorum.

  40. ömer faruk kulaoğlu Avatar
    ömer faruk kulaoğlu

    Selamlar Yasir bey bir sorum olucaktı.Mobil uygulamlarda daha iyi performance alabilmek için önerebileceğiniz basit yöntemler nelerdir acaba?

    Ayrıca attığınız bir tweet var ordaki kodu nasıl kullanıcağımızı biraz daha açıklarmısınız?

    1. yasirkula Avatar

      Henüz birkaç gün önce optimizasyon dersimi büyük ölçüde güncelledim (attığım tweet’teki kod da dahil olmak üzere), o ders işinize yarayacaktır diye umuyorum: https://yasirkula.com/2016/06/19/unity-optimizasyon-onerileri/

      1. ömer faruk kulaoğlu Avatar
        ömer faruk kulaoğlu

        Çok teşekkürler gerçekten faydalı bir yazı olmuş ellerinize sağlık.

  41. ERHAN POLAT Avatar
    ERHAN POLAT

    merhaba; yukarıdakilere benzer bir sorun yaşıyorum:
    1- Unity ile imzalayarak APK alıyorum ve upload ederken “Geçerli olmayan bir sertifika ila imzalamış……” hatası alıyorum.

    2- App Bundle olarak çıktı alıyorum, store a yüklemeye çlışıyorum hata vermiyor ama Saatlerce bekletiyor… hata da vermiyor, yüklemiyor da…

    3- Play Store daki imza anahtarını indirip onunla Windows consoldan komutları girerek imzalıyorum. ona da aynı hatayı alıyorum…

    ne yaptıysam olmadı… yukarıdaki yorumlarda seçenekleri de denedim..
    Unity nin imza anahtarını kablul etmiyor mu acaba? bir yerde hata yapıyouz ama ne?

    YARDIMCI OLURSANIZ SEVİNİRİM..

    1. yasirkula Avatar

      Unity’de oluşturduğunuz keystore’u kullanarak konsol vasıtasıyla imzalamayı da deneyebilirsiniz. Veya belki sıkıntı sizde değil Unity sürümünüzdedir. Benim önerim birkaç Unity sürümü ile, boş bir proje açıp onu imzalayıp Google Play’e yüklemeyi deneyin. Ardından sorun çıkarmayan Unity sürümüne geçiş yapın. Bunun haricinde, bu sıkıntı benim hiç başıma gelmediği ve daha önce böyle bir sorunla ilgili bir şey duymadığım için yardımcı olamayacağım.

      1. Erhan Avatar
        Erhan

        Teşekkür ederim..sorunu çözdüm. Yorumlarda onerilenleri yaptım
        Sanirim sistem saati, bölge ve dil seceneklerini ABD te göre ayarladiktan sonra düzeldi.

  42. onur Avatar
    onur

    Sa dostum bu hata ile karşılaşıyorum yardımcı olursan çok sevinirim
    https://hizliresim.com/yGb6B7

    1. yasirkula Avatar

      Bu bir hata değil, isterseniz yoksayabilirsiniz. Uyarı gitsin istiyorsanız Build Settings’teki “Build AppBundle” seçeneğini işeretleyip oluşan .aab dosyasını Google Play’e upload edebilirsiniz (bu seçenek sizde yoksa Unity’nin daha güncel bir sürümüne geçmeniz gerekiyor olabilir).

  43. Recep Avatar
    Recep

    Hocam merhabalar. Bu sürüm Google Play 64 bit gereksinimi ile uyumlu değil

    Aşağıdaki APK’ler veya Uygulama Paketleri, 64 bit cihazlarda kullanılabilir ancak yalnızca 32 bit yerel koda sahipler. Bu tarz bir hata aldım . IL2CPP seçili , ARm64 ve ArmV7 tikli olursa çözüldüğünü söylediler unity forumlarında ancak ben hala aynı hatayı almaktayım . Bir öneriye çok ihtiyacım var.

    1. yasirkula Avatar

      x86’nın başındaki tiki kaldırdınız mı?

      1. Recep Avatar
        Recep

        Evet hocam kaldırdım . Sdk ve ndk’larda uyumlu ve Unity Game Engine’de güncel

      2. yasirkula Avatar

        Şu yorumu atan kişi de benzer sorun yaşamış: https://forum.unity.com/threads/successful-unity-aab-build-not-compliant-with-the-google-play-64-bit-requirement.729035/#post-4876265. x86’yı kapatmasına rağmen Firebase x86 kütüphanelerini APK’ya eklemeye devam ettiği için, build.gradle’dan zorla x86’yı devre dışı bırakmak zorunda kalmış. Projenizde build.gradle dosyası var mı bakın, yoksa Player Settings-Publishing Settings’teki “Custom Gradle Template”i açın ve oluşan build.gradle’ın içine yorumdaki x86’lı satırları ekleyin.

    2. Recep Avatar
      Recep

      Hocam satırları aynısını kopyalayıp yapıştırdım , güncelledğimde yine aynı hatayı aldım

    3. Recep Avatar
      Recep

      Hocam çok teşekkürler çözüldü , Mozilla üzerinden uygulama güncellemesi yaptığım zaman eski hataları ekrana getirip uygulama yayınlamayı engelliyor bu yüzden uygulamayı Console’dan silip tekrar yüklediğim de sorun çözüldü.

  44. tayfun Avatar
    tayfun

    Exception: C:\Program Files\Unity\Hub\Editor\2018.4.13f1\Editor\Data\il2cpp/build/il2cpp.exe did not run properly!

    bu hatayı alıyorum neden olabilir

    1. yasirkula Avatar

      Projenizin konumunda ü, ı, İ gibi Türkçe karakter olmadığından emin olun.

  45. Gençdevelop Avatar
    Gençdevelop

    Hocam oyunumun apk sını koydum play consola diğer istenilen herşeyi yaptım ama 18 gün oldu halen yayınlanmadı

    1. yasirkula Avatar

      Eğer durumla ilgili size bir mail gelmediyse, teknik destek ile görüşüp neler olup bittiğini öğrenmeye çalışabilirsiniz: https://support.google.com/googleplay/android-developer/answer/7218994?hl=tr

      1. Gençdevelop Avatar
        Gençdevelop

        https://imgyukle.com/i/RIEDJc
        https://imgyukle.com/i/RIEBMt

        Hocam play consoleda sürüm yönetimi-üretim kanalı-sürümü düzenleyeye girdim bunları gördüm.

      2. yasirkula Avatar

        “64-bit APK Desteği Eklemek” başlığındaki adımları uyguladınız mı (orada yazan NOT da dahil)? İlk resimdeki uyarıyı yoksayabilirsiniz ama uyarı gitsin isterseniz, Unity’nin son sürümleri ile gelen “Build App Bundle” seçeneğini Build Settings’ten açabilirsiniz.

  46. Enes Avatar
    Enes

    Oyun ilerlemesini Google Play hesabına nasıl kaydedebiliriz bir rehber yok galiba bununla alakalı

    1. yasirkula Avatar

      Play Games Services’ın Saved Games diye bir servisi var ama benim bu konuda hiç tecrübem yok: https://github.com/playgameservices/play-games-plugin-for-unity#saving-game-state-to-the-cloud

  47. Süleyman Bucuk Avatar
    Süleyman Bucuk

    Merhaba, Unity de yapmış olduğunuz oyunu Google Play’ e yüklerken APK’nızı veya Android APP Bundle’izi şu anda geçerli olan bir sertifikayla imzalamanız gerekiyor diye bir hata alırsanız şu yöntemi deneyebilrsiniz.

    Eğer Play Store’ a oyununuzun ana dilini En(US) olarak kaydettiyseniz APK’ nızı Google Play’ e yüklemeden önce Windows’ ta başlat menüsüne tıklayıp arama kısmına bölge yazdığınızda karşınıza çıkan Bölge ve Dil ayarına tıklayıp Biçim: menüsünden İngilizce(Amerikan) seçeneğini seçip kaydedin ve kullandığınız tarayıcının cookies temizliğini yapın. Yani geçmişini tamamen silin tarayıcıyı kapatıp açın ve sonrasında apk nızı play store a yükleyin. 3 gündür bu hata nedeniyle oyunumu play stora a yükleyemedim, kayayı yemek üzereyken en sonunda hatayı bu şekilde çözdüm.

    Burdan yola çıkarak yorum yapıyorum: Eğer Play Store’ da ana diliniz türkçe ise yukarıda anlattığım bölge ve dil ayarlarını türkçeye çevirmeniz gerekebilir. Ayrıca bilgisayarınızın saatinin doğru olduğundan ve doğru saat diliminde yer aldığınızdan emin olun.

    Kolay gelsin.

    1. yasirkula Avatar

      Paylaştığınız için teşekkür ederim.

      1. Süleyman Bucuk Avatar
        Süleyman Bucuk

        Bu konu ile alakalı bir sorunla daha karşılaştım ve aynı çözümle hatayı aştım, bunu da belirtmek istiyorum. Yeni Google Play sürümünde oyun yükleyebilmek için Build App Bundle ile oyunu derlemeniz, bunu yapmak için de Player Settings’ te Other Settings – Configuration – Scripting BackEnd kısmını Mono dan IL2CPP’ ye çevirmeniz gerekiyor. Bu şekilde oyunu derlemeye çalıştığınızda eğer yukarıda anlattığım Bölge Ayarları’ nız Türkiye(TR) olarak görünüyorsa derlemenin sonunda UnityLinker.exe did not run properly … gibi bir hata alıyorsunuz. Diğer tüm seçeneklerin doğru olduğunu varsayarak Bölge Ayarlarına girip İngilizce(Amerikan) olarak bölgeyi değiştirip onaylarsanız ve oyunu tekrar derlerseniz UnityLinker hatasını geçmiş olursunuz.

        Hazır değinmişken, Google Play’ e oyunu yükleyebilmeniz için derleme aşamasında Player Settings’ te Other Settings Version ve Bundle Version Code kısmındaki versiyon numaranız Google Play’ e daha önce yüklediğiniz bir versiyon kodu ile çakışmayacak, yoksa Google Play’ e oyunu yükledikten sonra size versiyon kodu zaten yüklü hatası verecek.

        Ayrıca bundan sonraki süreçte 64 bit destekli cihazlar için de derleme zorunluluğu geldiğinden sadece ARMv7 olarak derlediğiniz oyunlarda yine Google Play’ e yükledikten sonra oyununuz 64 bit cihazları desteklemiyor vs.vs. hatası verecektir. Bunun için Player Settings’ te Other Settings – Configuration – Scripting BackEnd kısmını monodan IL2CPP’ ye çevirin ve hemen altında Target Architecture bölümünde ARMv7 ve ARM64′ ü işaretleyin. x86 nın işaretini kaldırın yani x86 ya derleme yapmayın. x86 işaretli derlerseniz yukarıdaki hatanın aynısını yine almaya devam edeceksiniz.

        Umarım yardımcı olur. 1 haftalık araştırmalarımda bu seçeneklerle hataları geçtim ve oyunum sonunda yayınlandı. İnceleme süresi 3 tam gün sürdü.

        Kolay gelsin.

    2. Süleyman Bucuk Avatar
      Süleyman Bucuk

      Arkadaşlar oyunu derlerken il2cpp.exe –convert-to-cpp –emit-null-checks –enable-array-bounds-check –dotnetprofile=”unityaot” hatası alırsanız projenizin yüklü olduğu klasör ismindeki ingilizce olmayan karakterleri ingilizce karakterlerle değiştirin. mesela benim oyun klasörümün isminde Ö karakteri olduğundan bu hatayı aldım ve O ile değiştirince düzeldi hata.

      Kolay gelsin.

  48. M Resul Talas Avatar
    M Resul Talas

    Selamlar, unity de yaptığım uygulamayı google play e yüklüyorum tabletler için resimlerde eklediğimde uygulamanız tabletler için tasarlanmamıştır diyor. ne yaptıysam olmadı. Yardımcı olursanız sevinirim. Teşekkürler…

    1. yasirkula Avatar

      Şurada yazdığına göre Player Settings’teki “Enable Android Banner” seçeneğini işaretleyip oraya istenen ebatlarda bir ikon koyunca sorun düzeliyormuş: https://stackoverflow.com/a/55487263/2373034

      1. M Resul Talas Avatar
        M Resul Talas

        Cevapladığınız için teşekkürler, onu geçmişte yapmıştım ancak tekrar deneyip size sonucu bildireceğim.

  49. kullanıcıı Avatar
    kullanıcıı

    Optimize edilmemiş APK
    Uyarı:

    Bu APK, kullanılmayan kod ve kaynakların kullanıcıya gönderilmesine neden oluyor. Android App Bundle işlevini kullanırsanız uygulamanız daha küçük olabilir. Uygulamanızı cihaz yapılandırmalarına göre optimize etmediğinizden, uygulamanızın kullanıcıların cihazına indirilip yüklendiği boyut, olması gerekenden daha büyük. Büyük boyutlu uygulamaların yüklenme başarı oranı daha düşük olur ve kullanıcıların cihazlarında daha fazla yer kaplarlar.

    Çözünürlük:

    Cihaz yapılandırmalarını otomatik olarak optimize etmek veya birden fazla APK ile kendiniz yönetmek için Android App Bundle’ı kullanın.

    bu hatayı alıyorum yardımcı olur musun?

    1. kullanıcıı Avatar
      kullanıcıı

      device filter ayarı bende görünmüyor o yüzden yapmadım onunla bir alakası var mı?

    2. yasirkula Avatar

      Bu bir uyarı mesajı olduğu için yoksayabilirsiniz. Ama Android App Bundle kullanmak istiyorum diyorsanız, Build Settings’te bu ayarı bulabilirsiniz.

      1. Kullanıcıı Avatar
        Kullanıcıı

        Onu hallettim yayınlandı ama bazı telefonlarda cihazınız bu sürümle uyumlu değil diyor 64bit olduğu için mi?Bu sorunu nasıl halledebilirim?

      2. yasirkula Avatar

        Eğer Intel x86 işlemcili bir cihazda bu sıkıntıyı yaşıyorsanız, buna yapacak bir şey yok gibi maalesef. Intel işlemcili cihazların market payı çok düşük olduğu için, Unity’nin x64 işlemci (x86’nın 64-bit sürümü) desteği yok. Bu yüzden de 32-bitlik x86’yı da oyununuza dahil edemiyorsunuz.

        Oyununuz diğer cihazlarda çalışmıyorsa ya Player Settings-Target Architectures’ta hem ARMv7 hem de ARM64’ü seçmeyi unutmuşsunuzdur ya da Player Settings-Minimum API Level değeriniz, test ettiğiniz cihazın Android sürümünden daha yüksektir. Kullandığınız bazı Android plugin’leri AndroidManifest.xml kullanarak bu değeri otomatik olarak yükseltmiş de olabilir (daha altını desteklemedikleri için), bu durumda o plugin’i silmek dışında bir çözüm yolu bulunmuyor.

      3. kullanıcıı Avatar
        kullanıcıı

        Evet sorun yaşayan cihazlar x86 işlemcili.Hiç yolu yok mu ya?32bit destekli12k civarı cihaz varken 64bit olanı yükleyince 3-4k civarı cihazda kullanılabilir gösteriyor.

      4. yasirkula Avatar

        Intel işlemcili (x86+x64) cihazların sayısının belki de 1000’i bulmaması lazım. Bu istatistik bana mantıklı gelmedi ama sebebini bilmiyorum.

      5. kullanıcıı Avatar
        kullanıcıı

        max sayıda cihazda çalışması için 3 kutucuktan hangilerini işaretleyerek build edeyim?armv7 arm64 x86

      6. yasirkula Avatar

        ARMv7 ve ARM64. x86’yı işaretlerseniz Google Play 64-bit hatası verecektir.

      7. kullanıcıı Avatar
        kullanıcıı

        Çok teşekkür ederim gerçekten çabalıyorsunuz insanlara bir şey öğretebilmek yardımcı olmak için.Her mesajı cevaplıyorsunuz dua edicem size 🙂

      8. yasirkula Avatar

        Siz de sağolun.

      9. kullanıcıı Avatar
        kullanıcıı

        Hocam dediğiniz gibi o iki kutuyu işaretleyerek güncelleme yaptım önceden uyumlu olmayan bir cihazdan indirdim açınca failed to load ıl2cpp diye hata verdi

      10. yasirkula Avatar

        Bu konuyla ilgili bulabildiğim tek kaynak şu: https://forum.unity.com/threads/2019-1-8f1-failed-to-load-il2cpp-unity-on-windows-7-machines.701273/. Burada da Unity’nin 2018.4.4f1, 2019.1.10f1, 2019.2.0b10 ve 2019.3.0a9 sürümlerinden itibaren sorunun çözüldüğü yazıyor.

      11. kullanıcıı Avatar
        kullanıcıı

        Build sırasında windows bellek doldu şu programı kapatın: unity editor şeklinde hata vermişti ben de hatayı kapatıp builde devam etmiştim sanırım orada buildde bir hata olmuş.Tekrar düzgün bir şekilde build etmeyi denedim sorun çıkmadı.

  50. Nuri Avatar
    Nuri

    Hocam google play services hakkında bilginiz carmı Türkçe kaynak bulamadım.

    1. yasirkula Avatar

      Bu konuda hemen hiç güncel tecrübem yok maalesef.

  51. Oguzhan Avatar
    Oguzhan

    Hocam ben 64 bit uyumlu yaptım oyununu attım bişey olmadı fakat şimdi guncelleme attım bu sefer hata verdi 64bundle diye nedenini biliyormusinuz

    1. yasirkula Avatar

      Player Settings’teki Target Architectures listesinde yer alan x86’nın başındaki işaretin kapalı, ARM64’ün başındaki işaretin ise açık olduğundan emin olun. Benim önerim ayrıca ARMv7’nin başındaki işaretin de açık olması yönünde.

  52. yazilimcitr Avatar

    Selamun aleyküm abi oyunumu yaklaşık 4 gün önce güncelledim normalde en fazla 1 gün içinde olumlu veya olumsuz bir dönüş alırdım fakat güncelleme hala bekliyor diyor ne yapabilirim. Yardım sayfadasında da mail atabileceğim bir adres bulamadım

    1. yasirkula Avatar

      Şurada yazdığına göre bu süreç bir haftaya kadar uzayabiliyormuş: https://support.google.com/googleplay/android-developer/answer/6334282

      E-posta veya chat yoluyla yardım almak için şu linke göz atabilirsiniz: https://support.google.com/googleplay/android-developer/answer/7218994?hl=en

  53. Mucahit Avatar

    Selamun aleyküm abi oyunumu build ederken “Required API level 26.” bu hatayı alıyorum ve sdk kontrolleri yaptım herşey normal görünüyor hatanın sebebi nedir acaba veya ne yapmam gerekir?
    Oyunumu daha önce google playe yüklemiştim zaten sorun yoktu.

    1. yasirkula Avatar

      Bir ihtimal Unity’nin entegre SDK’sını kullanıyorsunuzdur. Şuradaki 2.1 maddesini kontrol etmenizi öneririm: https://yasirkula.com/2013/07/17/unity-android-sdk-kurulumu-resimli-anlatim/

  54. ERSAN KARAN Avatar
    ERSAN KARAN

    Çok garip ya 64 bit build alıyorum developer consola attığımda 64 bit uyumlu değil diyor ilginç.

    1. yasirkula Avatar

      ARM64’ü seçebilmek için IL2CPP ve/veya Gradle kullanmanız gerekiyor olabilir, sistem değiştiğinden beridir kendim henüz uygulama koymadığımdan şu anda tam gereksinimleri bilmiyorum.

    2. Cemil Avatar
      Cemil

      Merhaba,
      aynı sorunu ben de yaşıyordum 2 gündür çözüm bulamıyordum. Bugün bir sitede inşa aşamasında x86 platformunu kaldırınca sorunun çözüldüğü yazıyordu. Denedim ve oldu, sadece birkaç tane desteklenen cihaz azalıyor ama çok önemli değil siz de deneyebilirsiniz.

  55. Barış Avatar
    Barış

    Yayınladığım oyun geliştirici konsolunda google play de görüntüle ye tıkladığımda çıkıyor fakat nedense oradan geliştirici adıma tıklayınca çıkmıyor bunun sebebi ne olabilir? Diğer oyunlar geliştirici sayfasının altında listeleniyor sadece son yayınladığım çıkmıyor.

    1. Barış Avatar
      Barış

      Tamam artık çıkıyor sanırım biraz beklemek lazımmış.

  56. Mustafa Attila Avatar

    Merhaba Arkadaşlar,

    Biliyorsunuzdur ki 1 Ağustos 2019 tarihinden itibaren Google Play Store x64 build istiyor. Siz de benim gibi;

    Android build için IL2CPP’yi seçip ve ARM64’ü dahil veya yanlızca ARM64 türü build alırken,
    .apk veya .aab [Build App Bundle (Google Play)] türü fark etmeksizin,

    “Building Player” başlıklı,
    İçerik olarak da “Building native binary with IL2CPP…” PopUP’u görüntülendikten sonrasında kendi kendine PupUP’un kapanma durumu,
    veya;
    “Build failure” başlıklı,
    İçerik olarak da “Failed to link ‘libunity.so’. See the Console for details.” türü aktif PopUP karşınıza çıkartan sorunla karşılaştıysanız,

    Bu iki hatanın nedeni benim için ‘NDK’ uyumsuzluğuydu.
    (Öyle düşünüyorum ki:)Unity’nin build sistemi ‘NDK-r16b’ ya göre kodlanmış ve ‘r16b’ haricini kabul etmiyor olabilir.

    NDK’yı test ettiğim iki farklı Unity sürümünde(2019.1.6f1 ve 2018.4.4f1) çözüm NDK-r16b’yı kullanmaktır.

    Bu NDK’yı (r16b) indirebileceğiniz adres;
    https://dl.google.com/android/repository/android-ndk-r16b-windows-x86_64.zip
    dir.

    Unity içerisinde NDK seçimi (2019.1.6f1 için) Edit > Preferences…> External Tools ardından NDK’dır.

    Unity içerisinde NDK yolunu değiştiremiyorsanız NDK yolu;
    C:\Program Files\\Editor\Data\PlaybackEngines\AndroidPlayer\NDK
    veya Unity Hub ile indirilen bir Unity sürümü kullanıyorsanız;
    C:\Program Files\\Editor\\Editor\Data\PlaybackEngines\AndroidPlayer\NDK
    dur.

    Halihazırda kullandığınız NDK klasörüne bir tire koyarak ‘NDK-‘ indirdiğiniz ve .zip’ten çıkardığınız ‘android-ndk-r16b’ nin ismini ‘NDK’ yaparak kopyalayın/kesin ardından ‘NDK-‘ yaptığınız klasörün yanına yapıştırın.

    NDK yolunu değiştirebiliyorsanız istediğiniz yerden ‘android-ndk-r16b’ yı seçerek build için aktif etmiş olursunuz.

    Sizden bir ricam var. -Bir Android oyun yazma projenize ne kadar süre ayırdınız bilmiyorum lakin 1 Ağustos sonrasında buil alamasaydınız projeniz riske girebilirdi.- aynı sorunla başı dertte olan kişiler için gruplarınızda paylaşırsanız sevinirim.

    1. yasirkula Avatar

      Özenerek güzel bir paylaşımda bulunmuşsunuz, elinize sağlık.

  57. Seçkin Ayhan Avatar

    Hocam nolur yardım edin valla çıldırıcam 64 bit buildi almak için uygulanması gereken adımları uyguladım kaçıncıya aynı hatayı alıyorum aylardır harcadığım emeği boşvericem artık 2-3 denemeden daha sonra.Build ederken aldığım hata aynen şöyle.

    UnityEditor.BuildPlayerWindow+BuildMethodException: 3 errors

    at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x00242] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:194

    at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x0007f] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:97
    UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

    1. yasirkula Avatar

      Aldığınız tüm hata mesajlarını (birkaç tane olması lazım) yasirkula@gmail.com‘a atınız.

    2. Astech Avatar
      Astech

      ndk r-16b indir.. Sorun cozulecektir. Ondan sonra Preferences kısmında manual olarak ndk r-16b yi sec. Yuklemeye basla sorun cozulecektir

  58. yasirkula Avatar

    Bundle Identifier hatasını çözdüğünüzü varsayıyorum. Aldığınız diğer hatada, JAVA_HOME konumunun jdk1.8.0_131 olduğu belirtilmiş ama belki Java’nız başka bir yere kuruludur. O güncel konumu JAVA_HOME’a girin: https://yasirkula.com/2013/07/17/unity-android-sdk-kurulumu-resimli-anlatim/

    64-bit ile ilgili Google Play’in uyarı verdiğini söyleyenler oldu, artık 64-bit desteklemeyen uygulamaları Google Play’e yükleyemiyor olabilirsiniz. Tek çaresi Unity 2018.2 veya sonrasına geçiş yapmak gibi duruyor.

    1. yasirkula Avatar

      – Bence Android SDK hatası JAVA_HOME’u düzeltince kendiliğinden gider
      – Bilgisayarınızda aynı anda birden çok Unity sürümü olabilir, hepsini farklı klasörlere kurmanız yeterli. Eski sürümleri silmenize gerek yok. Sadece projenizin yedeğini alın (ne olur ne olmaz) ve projeyi yeni Unity sürümü ile açın

    2. yasirkula Avatar

      Player Settings’te “Scripting Runtime Version”ı “.NET 4.x Equivalent” yapabilirsiniz. Eğer bu seçenek gözükmüyorsa eski bir Unity sürümü kullanıyor olabilirsiniz.

    3. yasirkula Avatar

      SDK Manager’dan Android’in 24. versiyonunu kurmanız lazımmış.

    4. yasirkula Avatar

      Proje konumunuzda Türkçe karakter olmadığından emin olun (ö, ş gibi).

  59. Mucahit Avatar
    Mucahit

    oyunumu yüklerken şu hataları aldım nasıl giderebilirim?

    Hata
    Uygulamanızın, şu izinleri isteyen 2 sürüm koduna sahip bir APK’sı var: android.permission.READ_PHONE_STATE,android.permission.GET_ACCOUNTS. Bu izinleri bir APK’da kullanan uygulamaların gizlilik politikası olması gerekir.

    1. Mucahit Avatar
      Mucahit

      Hallettim abi

    2. yasirkula Avatar

      Elinize sağlık. Eğer o izinlere ihtiyacınız yoksa o izinleri istemeyin çünkü kullanıcı niye bu izinleri istiyor oyun diye şüphelenebilir. Büyük olasılıkla kullandığınız bir plugin’den dolayı isteniyordur ama hangi(ler)i bilmiyorum.

  60. Mucahit Avatar
    Mucahit

    Hocam merhaba oyunumu google playe yüklerken şöyle 2 tane hata aldım ne yapmam gerek.

    Bu sürüm Google Play 64 bit gereksinimi ile uyumlu değil

    Aşağıdaki APK’ler veya Uygulama Paketleri, 64 bit cihazlarda kullanılabilir ancak yalnızca 32 bit yerel koda sahipler: 2 ve 3.

    Tüm sürümlerin, 1 Ağustos 2019 tarihinden itibaren Google Play 64 bit gereksinimiyle uyumlu olması gerekir.

    Uygulamanıza 64 bit ve 32 bit yerel kod dahil edin. Her cihaz mimarisinin yalnızca ihtiyaç duyduğu yerel kodu almasını otomatik olarak sağlamak için Android App Bundle yayınlama biçimini kullanın. Bu sayede, uygulamanızın genel boyutunu büyütmekten kaçınmış olursunuz.

    ————————————————————————————————————————-

    Uyarı:

    Bu APK, kullanılmayan kod ve kaynakların kullanıcıya gönderilmesine neden oluyor. Android App Bundle işlevini kullanırsanız uygulamanız daha küçük olabilir. Uygulamanızı cihaz yapılandırmalarına göre optimize etmediğinizden, uygulamanızın kullanıcıların cihazına indirilip yüklendiği boyut, olması gerekenden daha büyük. Büyük boyutlu uygulamaların yüklenme başarı oranı daha düşük olur ve kullanıcıların cihazlarında daha fazla yer kaplarlar.

    Çözünürlük:

    Cihaz yapılandırmalarını otomatik olarak optimize etmek veya birden fazla APK ile kendiniz yönetmek için Android App Bundle’ı kullanın.

    1. yasirkula Avatar

      Unity’nin son sürümlerinde 64-bit ARM ve Android App Bundle desteği gelmiş, onları aktifleştirmeyi deneyebilirsiniz: https://blogs.unity3d.com/2019/03/05/android-support-update-64-bit-and-app-bundles-backported-to-2017-4-lts/

      1. Mucahit Avatar
        Mucahit

        Abi yazanları yapmama rağmen sürekli hata veriyor build alamıyorum

      2. muhammet Avatar
        muhammet

        hocam internal olarak export alıyorum gradle da hata veriyor ve internalda bundle diye seçenek yok ve ayriyetten gradle daykende arm64 var ama işaretleyemiyorum

      3. yasirkula Avatar

        ARM64’ü seçebilmek için Scripting Backend olarak Mono değil de IL2CPP seçmeniz gerekiyor olabilir. Ama bunun için de Android SDK’ye ilaveten Android NDK de gerekecek. Zaten NDK kurulu değilse Unity NDK kurmanız konusunda size uyarı verecektir. Gradle’dayken aldığınız hataları, hatalar kısaysa burada paylaşabilir, uzunsa yasirkula@gmail.com adresine yollayabilirsiniz.

    2. zertel Avatar

      Öncelikle yeni bir proje açıp, aynı build ayarlarında boş bir apk build almayı deneyiniz. Yalnız (release olsun) publisher ayarları boş olmasın.
      Eğer build alabiliyorsanız ana projenizdeki hatayı paylaşın.
      64 bit için unity sürümünüzü değiştirdiyseniz. Varsa kullanılan servisler sürüm problemi çıkartıyor olabilir ve yerine göre illet sıkıntı.

      1. Mucahit Avatar
        Mucahit

        verilen ilk hatayı giderdim unitynin versiyonundan kaynaklıymış ancak 2.hata hala devam ediyor

      2. Mucahit Avatar
        Mucahit

        build almada sıkıntı yok google playe yüklerken hata veriyor

  61. emrullo Avatar

    Merhaba hocam ben butun herseyi yapiyorum keystore harfi hargine yaptim apk build yaptim ama google playe yuklerken apk yuklenemesi baska bir apk deneyiniz diyor ayrica blustack programinda yuklerken bu surum uygun degil hatasi veriyor keystre silinve bluestack aciyor hata vermiyorrr

    1. yasirkula Avatar

      Chrome’dan veya IE’den yüklerken sıkıntı yaşayıp da Firefox’tan yükleyince sorunu çözülen insanlar varmış, siz de başka tarayıcılar kullanmayı deneyebilirsiniz. Bluestacks için ise “bluestacks bu sürüm uygun değil” şeklinde arama yapmanızı öneririm.

  62. Uğur Adnan Avatar
    Uğur Adnan

    Henüz geçerli olmayan bir sertifikayla imzalanmış APK veya Android APP Bundle yüklediniz. APK’nızı veya Android APP Bundle’izi şu anda geçerli olan bir sertifikayla imzalamanız gerekiyor. böyle bir hata aldım nasıl çözebilirim

    1. yasirkula Avatar

      Bir kaç saat (ya da bir gün) bekleyince sorunu çözülenler, bilgisayarın saati bozuksa onu düzeltince sorunu düzelenler ve başka bir isimle APK build alınca sorunu düzelenler olmuş. Daha fazla detay veya çözüm yolu için “You uploaded an APK or Android App Bundle signed with a certificate that is not yet valid” şeklinde arama yapabilirsiniz.

  63. Oğuzhan Avatar
    Oğuzhan

    Hocam apk alırken hataile karşılaşan arkadaşlar için yazıyorum;
    Hocamızın da yazısında yer verdiği gibi eğer allias kısmında şifreyi belirledikten sonra kalan kısımları boş bıraktığımda GRADLE BUILD FAILED hatası aldım.
    Tekradan boş kalan kısımları doldurduğumda hata ortadan kalktı.

  64. umut Avatar
    umut

    Hocam unity’den oyun satın alıp google playe yüklesem sıkıntı yaparlar mı bi sorun olur mu ?

    1. yasirkula Avatar

      Asset Store’dan diyorsanız, asset’in içinde aksini söyleyen bir yazı olmadığı sürece sıkıntı olmaması lazım. Ama büyük ihtimalle aynı oyun başkaları tarafından da yüklenmiş olacağı için, oyununuza klon oyun gözüyle bakılabilir.

  65. layemutane Avatar

    https://play.google.com/store/apps/details?id=com.getouttaway.game Oyunu yeni tamamladım yazılarınız blogunuz bir çok konuda bana yardımcı oldu. teşekkürler.. 🙂

    1. yasirkula Avatar

      Oyununuz hayırlı olsun 🙂 Umarım beklediğiniz ilgiyi görür.

      1. layemutane Avatar

        Sağolun size de iyi çalışmalar.. 🙂

  66. Ferdi Avatar
    Ferdi

    hocam unity de oyunumu bitirdim ama google play e yüklerken bi nokta var orayı anlayamadım
    Fiyatlandırma ve dağıtım kısmında COPPA diye birşey var ona evet desem ne olur hayır desem ne olur.

    1. yasirkula Avatar

      Eğer uygulamanız özellikle 13 yaş altı çocuklara hitap ediyorsa (mesela 1. sınıflara matematik öğretmeye yarayan bir program) evet, yoksa hayır demeniz lazım. Evet demeniz gereken yerde hayır derseniz ne tarz yaptırımı olur bilmiyorum.

  67. Levent Avatar
    Levent

    Yasir bey gradle mi yoksa ınternal lemi çıktı almalıyız mağaza yayını yapmak için

    1. yasirkula Avatar
      1. Levent Avatar
        Levent

        Cevabınız için teşekkürler .