Unity Android Oyununuzu Google Play’e Yüklemek

Yayınlandı: 17 Nisan 2014 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

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!

yorum
  1. Can Coşaner dedi ki:

    “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.

  2. Serkan dedi ki:

    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.?

  3. Barış dedi ki:

    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?

  4. Barış dedi ki:

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

  5. Barış dedi ki:

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

    • yasirkula dedi ki:

      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.

  6. Barış dedi ki:

    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?

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

  8. Barış dedi ki:

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

    • yasirkula dedi ki:

      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ş.

      • Barış dedi ki:

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

  9. mzmsyk dedi ki:

    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.

  10. Barış dedi ki:

    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?

    • yasirkula dedi ki:

      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.

  11. Barış dedi ki:

    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?

  12. Ahmet dedi ki:

    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

  13. programmer dedi ki:

    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

    • yasirkula dedi ki:

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

      • programmer dedi ki:

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

      • yasirkula dedi ki:

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

  14. Salih Arslan dedi ki:

    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.

    • yasirkula dedi ki:

      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.

  15. Muhammet Fatih Yılamz dedi ki:

    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.

    • yasirkula dedi ki:

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

      • Muhammet Fatih Yılamz dedi ki:

        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.

  16. atillaalagoz dedi ki:

    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?

    • yasirkula dedi ki:

      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.

  17. Ahmet dedi ki:

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

  18. Ahmet dedi ki:

    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.

    • yasirkula dedi ki:

      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.

  19. Ferhan dedi ki:

    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?

    • yasirkula dedi ki:

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

      • Ferhan dedi ki:

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

      • Ferhan dedi ki:

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

      • Ferhan dedi ki:

        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.

  20. Ömer Faruk dedi ki:

    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.

  21. Barış dedi ki:

    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)

    • yasirkula dedi ki:

      Ş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ş.

  22. Barış dedi ki:

    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.

    • Barış dedi ki:

      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.

    • yasirkula dedi ki:

      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.

  23. Barış dedi ki:

    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.

    • yasirkula dedi ki:

      Ş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.

  24. Barış dedi ki:

    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)

    • yasirkula dedi ki:

      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.

      • Barış dedi ki:

        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.

      • Barış dedi ki:

        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?

      • yasirkula dedi ki:

        Ö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.

      • Barış dedi ki:

        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.

      • Barış dedi ki:

        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.

  25. abdullahakduman dedi ki:

    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.

    • yasirkula dedi ki:

      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.

  26. Ahmet dedi ki:

    teşekkür ederim

  27. Ahmet dedi ki:

    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.

    • yasirkula dedi ki:

      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.

  28. Erdinç dedi ki:

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

  29. Furkan dedi ki:

    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.

  30. fatih dedi ki:

    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 ?

  31. Erdinç dedi ki:

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

    Link 1.1 1.2 1.3

    • yasirkula dedi ki:

      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.

      • Erdinç dedi ki:

        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?

      • yasirkula dedi ki:

        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.

  32. Ali Akgün dedi ki:

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

    • yasirkula dedi ki:

      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.

      • Ali Akgün dedi ki:

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

  33. asiborabora200 dedi ki:

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

  34. incsoft dedi ki:

    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?

    • yasirkula dedi ki:

      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.

  35. emrullo dedi ki:

    Merhaba,

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

  36. ömer faruk kulaoğlu dedi ki:

    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?

  37. ERHAN POLAT dedi ki:

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

    • yasirkula dedi ki:

      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.

      • Erhan dedi ki:

        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.

  38. onur dedi ki:

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

    • yasirkula dedi ki:

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

  39. Recep dedi ki:

    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.

  40. tayfun dedi ki:

    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

  41. Gençdevelop dedi ki:

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

  42. Enes dedi ki:

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

  43. Süleyman Bucuk dedi ki:

    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.

    • yasirkula dedi ki:

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

      • Süleyman Bucuk dedi ki:

        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.

    • Süleyman Bucuk dedi ki:

      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.

  44. M Resul Talas dedi ki:

    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…

  45. kullanıcıı dedi ki:

    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?

    • kullanıcıı dedi ki:

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

    • yasirkula dedi ki:

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

      • Kullanıcıı dedi ki:

        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?

      • yasirkula dedi ki:

        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.

      • kullanıcıı dedi ki:

        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.

      • yasirkula dedi ki:

        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.

      • kullanıcıı dedi ki:

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

      • yasirkula dedi ki:

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

      • kullanıcıı dedi ki:

        Ç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 🙂

      • yasirkula dedi ki:

        Siz de sağolun.

      • kullanıcıı dedi ki:

        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

      • yasirkula dedi ki:

        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.

      • kullanıcıı dedi ki:

        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ı.

  46. Nuri dedi ki:

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

  47. Oguzhan dedi ki:

    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

    • yasirkula dedi ki:

      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.

  48. yazilimcitr dedi ki:

    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

  49. Mucahit dedi ki:

    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.

  50. ERSAN KARAN dedi ki:

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

    • yasirkula dedi ki:

      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.

    • Cemil dedi ki:

      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.

  51. Barış dedi ki:

    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.

  52. Mustafa Attila dedi ki:

    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.

  53. Seçkin Ayhan dedi ki:

    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)

  54. Abdullah Eymen dedi ki:

    UnityException: Bundle Identifier has not been set up correctly

    • Abdullah Eymen dedi ki:

      CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct.
      C:/android-sdk\tools\bin\avdmanager.bat list target -c

      stderr[

      ]
      stdout[

      ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files (x86)\Java\jdk1.8.0_131

      Please set the JAVA_HOME variable in your environment to match the
      location of your Java installation.
      ]
      exit code: 1

      Hataları vermeye başladı ne yapmam lâzım acaba? Yardım ederseniz?

      Ben bunu UNİTY 2018.1.0f2 sürümünde bulamadım. Bu işlemi yapmadan Google Play’e sürebilir miyiz?

    • yasirkula dedi ki:

      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.

      • Abdullah Eymen dedi ki:

        Teşekkürler.

      • Abdullah Eymen dedi ki:

        Bu arada orada şu hata da vardı:

        CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct.
        C:/android-sdk\tools\bin\avdmanager.bat list target -c

        stderr[

        Bu hatayı nasıl çözeceğiz? SDK hatasını..

      • Abdullah Eymen dedi ki:

        Birşey soracaktım. Biz Unity güncellenen eski sürümü silmeli miyiz? Eğer ki güncellersek yaptığımız uygulama silinir mi? Bunun hakkında bir bulgi verir misiniz?

      • yasirkula dedi ki:

        – 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

      • Abdullah Eymen dedi ki:

        Deneyicem. İnşallah play store yükleyebilirim?

      • Abdullah Eymen dedi ki:

        C:/Users/Abdullah Eymen Asru/Documents/Kaz Çöz/Library/PackageCache/com.unity.textmeshpro@2.0.1/Scripts/Runtime/FastAction.cs(24,45):error CS1644: Feature `out variable declaration’ cannot be used because it is not part of the C# 4.0 language specification

        Buna benzer hatalar veriyor ne yapmam lâzım?

      • yasirkula dedi ki:

        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.

      • Abdullah Eymen dedi ki:

        Ben 2019’a geçtim. Yeni sürümlere yani.

      • Abdullah Eymen dedi ki:

        UnityException: Target Android SDK not installed
        Android SDK does not include your Target SDK of 24.

        Please use the Android SDK Manager to install your target SDK version.

        UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

        Bu hata nasıl çözülür?

      • yasirkula dedi ki:

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

      • Abdullah Eymen dedi ki:

        UnityEditor.BuildPlayerWindow+BuildMethodException: 19 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)

        Texture Knob (android banner) has resolution (64 x 64) lower than expected (320 x 180). This might compromise visual quality of the final image. Please consider using a native size texture and appropriate import options (NPOT).
        UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

        Script attached to ‘PlayerCallbacksOrderOnTheHost_PlayerPrefab’ in scene ” is missing or no valid script is attached.
        UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)

        Bu hatayı çömeme yardım eder misiniz?

      • yasirkula dedi ki:

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

      • Abdullah Eymen dedi ki:

        Bu arada Google Play Bunddle indifine çıktısı alırken .aab dosya oluşturuyor. Peki bu dosyayı Play Store yüklenebilir mı?

  55. Mucahit dedi ki:

    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.

    • Mucahit dedi ki:

      Hallettim abi

    • yasirkula dedi ki:

      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.

  56. Mucahit dedi ki:

    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.

    • yasirkula dedi ki:

      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/

      • Mucahit dedi ki:

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

      • muhammet dedi ki:

        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

      • yasirkula dedi ki:

        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.

    • zertel dedi ki:

      Ö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ı.

      • Mucahit dedi ki:

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

      • Mucahit dedi ki:

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

  57. emrullo dedi ki:

    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

    • yasirkula dedi ki:

      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.

  58. Uğur Adnan dedi ki:

    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

    • yasirkula dedi ki:

      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.

  59. Oğuzhan dedi ki:

    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ı.

  60. umut dedi ki:

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

    • yasirkula dedi ki:

      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.

  61. layemutane dedi ki:

    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.. 🙂

  62. Ferdi dedi ki:

    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.

    • yasirkula dedi ki:

      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.

  63. Levent dedi ki:

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

Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.