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): 64-bit APK’lar ile alakalı bir kısım eklendi.

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!

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.

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

Ayrıca artık Google Play’in tavsiye ettiği “App Bundle” formatında build almak 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. Ne işe yaradığını bilmiyorum ama 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:

1- Create New Keystore seçeneğini seçin.

2- Browse Keystore‘a tıklayın, oluşturulacak dosya için bir isim ve konum belirleyin.

3- Keystore password ve Confirm password alanlarına, keystore için bir şifre girin. Bu noktada 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 2. aşamada 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.

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 uygulama adını girip ardından alttaki iki yere Alias için bir şifre girin. 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. 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.

NOT: 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. Ardında keystore şifresini girip oluşturduğunuz Alias‘ı seçin. Son olarak, Alias şifresini de ilgili boşluğa girip oyunu build edin.

İ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’nızı 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. 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ı

  2. Enes dedi ki:

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

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

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

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

  6. Nuri dedi ki:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  23. Levent dedi ki:

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

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

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 )

Google fotoğrafı

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

Twitter resmi

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