GÜNCELLEME (02.07.2018): Yazı Google Play’in son sürümüne göre 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!

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.

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. Mucahit dedi ki:

    Selamun aleykum abi az once Google Play’den 2 tane oyunum kaldirildi biri 100bin indirmesi vardi ve boyle bi mail aldim hatayi duzeltirsem indirmeler geri gelir diyor ama sorunu tam anlayamadim oyunda izin istenecek herhangi bisey yok lutfen yardimci olur musun

    Hi developers at Mucahit İnci,

    After review, Color Tiles 2048, com.Mucahitinci.RGBTiles, has been removed from Google Play due to a policy violation. This app won’t be available to users until you submit a compliant update.

    Issue: Violation of Usage of Android Advertising ID policy and section 4.8 of the Developer Distribution Agreement

    Google Play requires developers to provide a valid privacy policy when the app requests or handles sensitive user or device information. We’ve identified that your app collects and transmits the Android advertising identifier, which is subject to a privacy policy requirement. If your app collects the Android advertising ID, you must provide a valid privacy policy in both the designated field in the Play Console, and from within the app.

    Next steps: Submit your app for another review

    Read through the Usage of Android Advertising ID and User Data policies, as well as the Developer Distribution Agreement, and make appropriate changes to your app. If you decide to collect sensitive user information, be sure to abide by the above policies, and include a link to a valid privacy policy on your app’s store listing page and within your app.
    Make sure that your app is compliant with all other Developer Program Policies. Additional enforcement could occur if there are further policy violations.
    Sign in to your Play Console and submit the update to your app.
    Alternatively, you may opt-out of this requirement by removing any requests for sensitive permissions or user data.

    If approved, your app will again be available with all installs, ratings, and reviews intact.

    If you’ve reviewed the policy and feel this removal may have been in error, please reach out to our policy support team. One of my colleagues will get back to you within 2 business days.

    Thanks for helping us provide a clear and transparent experience for Google Play users.

    Regards,

    Kaitlin

    The Google Play Team

    • yasirkula dedi ki:

      Bu sıkıntı ile son bir hafta içerisinde bayağı kişinin karşılaştığını fark ettim.

      Görünüşe göre bu sorunu çözmenin en garanti yolu, web sitenizde İngilizce bir gizlilik poliçesi (privacy policy) yayımlamanız. Bunun için internette ücretsiz siteler mevcut, “generate privacy policy” diye aratınca görürsünüz. Gizlilik poliçesini yayımladıktan sonra oyununuzun Play Store sayfasındaki Privacy Policy’e değer olarak poliçenizin linkini vermelisiniz. İşinizi sağlama almak için oyununuzun içerisinde bir yere de poliçenizin linkini ekleyebilirsiniz.

      Alternatif olarak, şurada anlatıldığı gibi AndroidManifest’inizin application etiketine şunu eklemeyi deneyebilirsiniz:

      <meta-data android:name="google_analytics_adid_collection_enabled" android:value="false" />
      
  2. zertel dedi ki:

    Kolay gelsin hocam, benim bir problemim var. Daha geçen hafta build alıp güncellemesini attığım proje bu hafta play console’de “Hata ayıklama modunda imzalanmış bir APK veya Android App Bundle yüklediniz. APK’nızı veya Android App Bundle’ınızı yayınlama modunda imzalamanız gerekiyor. ” hatasını alıyorum. — — — geçen haftaki apk yı yüklüyorum, bu apk zaten mevcut hatasından önce “Hata ayıklama modunda imzalanmış” hatasını yine de alıyorum.
    Bir de bu uygulama için ilk değil 36. güncellemem.
    Aklınızda bir öneri var mıdır?

    • yasirkula dedi ki:

      Uygulamanın imzalanması adımlarını bir daha dikkatlice gözden geçirin derim, ben yakın zamanda uygulamamı birkaç defa güncelledim ama henüz bu tarz bir hata almadım.

      • zertel dedi ki:

        Haklısınız hocam, problem bendeymiş. Yeni proje açıp yeni keystore dosyası ile yeniden yükleyip eski projeyi mağazadan kaldırdım(30 indirmedeydi).
        Şimdi unityim niye bilmiyorum her açtığımda keyimin şifre kutucuklarını boşaltıyor, build almaya çalışırken her defasında şifreni gir diyor ben de girip devam ediyorum.
        Şimdi izninizle arkadaşlarıma da şöyle bir tavsiyede bulunmak istiyorum. Arkadaşlar;
        • Projenizin keystore dosyasını oluşturun.
        • Oluştururken iki şifre soruyor ona çok dikkat edin (önerim ikisini aynı yapın)
        • Oluşturduğunuz keystore dosyasını unityde aktif edip bir build alın.
        • (Başarılı şekilde) build alındıysa unity ye dönün ve key store seçiliyken şifrelerinizi bozun, projeyi kaydedin kapatın.
        • Tekrar programı açın build almaya çalışın şifrenizi girin hatası almanız lazım, şimdi az önce belirlediğiniz keystore şifrenizi girin
        • Alias kısmında kendinizi seçin ve şifresini girip tekrar build almayı deneyin.
        • Build alma başarılı ise play storeye bu buildi yüklemenizi tavsiye ederim.
        Bu sayede .keystore dosyamızı gerçekten yedeklemişmiyiz sağlamasını yapmış oluruz.
        NOT: Belli süredir güncelleme atan arkadaşların denememeleri önemle rica olunur. 🙂
        Ayrıca, hocalarımın da çoğu zaman belirttiği gibi, keystore dosyanızı mailinizde veya drivenizde saklamanızı öneririm.

  3. kenan dedi ki:

    Yasir Bey sorunu çözdüm.:)
    Paketi ayrı bir proje içerisinde açıp tekrar denedim. build alırken oyunun package name kısmının hepsini yazmadım. o konuda biraz araştırınca java reserved keyword bilgisine ulaştım. Sanırım Java.nın bu keywordlerini package name içerisinde kullanmamak gerekiyor. Eski package name “for” içeriyordu onu çıkararak build alabildim.

    Uğraşlarınız için teşekkür ederim..

    https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html

    • yasirkula dedi ki:

      Yok o sıkıntı NDK ile alakalı değil. Çözüm olacağını sanmıyorum.

      • kenan dedi ki:

        Oyunu paket olarak almıştım. NDK kullanıp kullanılmadığını da bilmiyorum..
        ancak bende NDK yüklü değil.
        Ortam değişkenlerinde ANDROID_NDK_HOME yok malesef..

      • yasirkula dedi ki:

        Edit-Preferences-External Tools’ta NDK yolu boş değilse orayı temizlediniz mi? Edit-Project Settings-Player-Other Settings’teki “Scripting Backend”in ve Build Settings’teki “Build System”ın değerleri neler?

      • kenan dedi ki:

        NDK yolu boş.
        Script Backend:Mono
        Build system:Gradle

        Biuld system değerini “Internal ” olarak da denemiştim. Yine build hata vermişti..

      • yasirkula dedi ki:

        Eğer Build System’ı Internal yapınca verdiği hata farklıysa, o hatayı bir kaç kelimeyle internette aratarak çözmeye çalışabilirsiniz. Aksi taktirde NDK’i indirip içindeki dosyaları C:\Users\K\AppData\Local\Android\android-sdk\ndk-bundle konumuna çıkarmayı deneyebilirsiniz.

  4. kenan dedi ki:

    Merhaba Yasir Bey, oyunu build aşamasında aşağıdaki gradle hatasını veriyor. Sorunu bir türlü çözemedim. Yardımcı olabilir misiniz?
    (jdk 8.0 161 ile de denedim sonuç alamadım. jdk 7 artık indirilemediği için onu deneyemedim)

    CommandInvokationFailure: Gradle build failed.
    C:\Program Files\Java\jdk1.8.0_151\bin\java.exe -classpath “C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.0.1.jar” org.gradle.launcher.GradleMain “-Dorg.gradle.jvmargs=-Xmx2048m” “assembleRelease”

    stderr[
    ERROR: In AdsAttrs, unable to find attribute adSize
    ERROR: In AdsAttrs, unable to find attribute adSizes
    ERROR: In AdsAttrs, unable to find attribute adUnitId

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ‘:processReleaseResources’.
    > com.android.ide.common.process.ProcessException: Failed to execute aapt

    * Try:
    Run with –stacktrace option to get the stack trace. Run with –info or –debug option to get more log output.

    BUILD FAILED in 37s
    ]
    stdout[
    NDK is missing a “platforms” directory.
    If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to C:\Users\K\AppData\Local\Android\android-sdk\ndk-bundle.
    If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

    NDK is missing a “platforms” directory.
    If you are using NDK, verify the ndk.dir is set to a valid NDK directory. It is currently set to C:\Users\K\AppData\Local\Android\android-sdk\ndk-bundle.
    If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

    • yasirkula dedi ki:

      Hata mesajında, NDK’nin kurulu olduğu C:\Users\K\AppData\Local\Android\android-sdk\ndk-bundle konumunda platforms klasörü yok diyor. Daha önce hiç NDK ile işim olmadığı için bu sorun nasıl çözülür bilmiyorum ama eğer projenizin NDK’e ihtiyacı yoksa (IL2CPP kullanmıyorsanız) Edit-Preferences-External Tools’taki NDK yolunu silmeyi deneyebilirsiniz. İşe yaramazsa bilgisayarınızın “Gelişmiş sistem ayarları”ndan Ortam Değişkenleri’ne girip orada ANDROID_NDK_HOME varsa onu silmeyi deneyebilirsiniz.

  5. kenan dedi ki:

    Merhaba Yasir Bey,
    Önceden güncelleme yapabildiğim uygulamamı,PC’ye format atıp Unity.yi 2017.1 den 2017.3 e guncellediğim zaman keystore.da hata verdi. Google.da birçok yazı okudum ancak çözüm bulamadım. Size de danışmak istedim.Sorun nerden kaynaklanıyor olabilir?
    Keystore yeri değişmedi ve şifrelerde sorun olduğunu düşünmüyoum.
    VErdiği hata:
    Unable to list keys in the keystore. Please make sure the location and password of the keystore is correct.
    Error: Unable to read ‘C:\Users\vsvsvsvsvvssvsvs.keystore’
    Error: Keystore was tampered with, or password was incorrect

    • yasirkula dedi ki:

      Belki Unity’i yönetici olarak çalıştırmanız gerekiyordur. Dilerseniz keystore dosyanızı başka bir yere (masaüstü veya projenin olduğu klasör) taşıyıp Unity içerisinde keystore ve alias seçme işlemlerini tekrarlayın. Öncesinde keystore kullanmadan bir build almak isteyebilirsiniz. O da olmadı Edit-Project Settings-Editor’de “Asset Serialization”ı “Force text” yapıp projenizin olduğu konumdaki ProjectSettings/ProjectSettings.asset’i Notepad++ veya muadili ile açın ve “AndroidKeystoreName” ile “AndroidKeyaliasName”in değerlerini silip Unity içerisinden tekrar keystore ve alias seçin.

  6. guven dedi ki:

    Başarılı bi anlatım olmuşta güncelleme ile ilgili bir sorunum var. Güncelleme yaparken tüm apk’yı yenilemeyip sadece değiştirdiğimiz kısımların güncellenmesini sağlamak mümkün mü? 20mb oyunum için bi satır değiştirip tekrar 20mb güncelleme göndermek istemiyorum.

    • yasirkula dedi ki:

      Scriptlerinizi DLL’ye çevirip asset bundle’larda tutarak, değişen script’lerin asset bundle’larını oyun esnasında internet üzerinden güncelleyebilirsiniz. Ancak bu kompleks bir konu ve bu konuda benim de tecrübem yok. En güvenli yol tüm APK’yı yeniden güncellemek. Neyse ki oyununuzun boyutu çok da uçuk bir rakam değil.

  7. ahmet dedi ki:

    private Touch initTouch = new Touch ();
    public Camera cam;

    private float rotX=0f;
    private float rotY=0f;
    private Vector3 originRot;

    public float rotSpeed=0.05f;
    public float dir=-1;

    void Start ()
    {
    originRot = cam.transform.eulerAngles;
    rotX = originRot.x;
    rotY = originRot.y;

    }

    // Update is called once per frame
    void FixedUpdate () {

    foreach (Touch touch in Input.touches)
    {
    if(touch.phase==TouchPhase.Began)
    {
    initTouch=touch;

    }
    else if(touch.phase==TouchPhase.Moved)
    {
    //swiping
    float deltaX=initTouch.position.x-touch.position.x;
    float deltaY=initTouch.position.y-touch.position.y;
    rotX-=deltaY*Time.deltaTime*rotSpeed*dir;
    rotY+=deltaX *Time.deltaTime*rotSpeed*dir;
    rotX=Mathf.Clamp(rotX,-30f,30f);
    rotY=Mathf.Clamp(rotY,-45f,45f);
    cam.transform.eulerAngles=new Vector3(rotX,rotY,0f);
    }

    else if(touch.phase==TouchPhase.Ended)
    {
    initTouch=new Touch();
    }
    }
    }
    }

    Hocam merhaba.Hocam ben burda bir tane parmağı tek algılamasını nasıl yapabilirim.Tek parmakla rotate oluyor başka bir parmak daha dokununca saçmalıyor.Nasıl yapabilirim.yardımcı olabilirmisiniz.Teşekkürler.

    • yasirkula dedi ki:

      – private int touchId = -1; şeklinde bir değişken tanımlayın.
      – if(touch.phase==TouchPhase.Began) koşulunu if(touchId == -1 && touch.phase==TouchPhase.Began) şeklinde değiştirin.
      – initTouch=touch;’ın altına touchId=touch.fingerId; satırını ekleyin.
      – else if(touch.phase==TouchPhase.Moved) koşulunu else if(touch.fingerId == touchId && touch.phase==TouchPhase.Moved) şeklinde değiştirin.
      – else if(touch.phase==TouchPhase.Ended) koşulunu else if(touch.fingerId == touchId && (touch.phase==TouchPhase.Ended || touch.phase==TouchPhase.Canceled)) şeklinde değiştirin.
      – initTouch=new Touch();’ın altına touchId = -1; satırını ekleyin.

  8. Mucahit dedi ki:

    abi oyunumu sabah yukledim google playe simdi bi guncelleme yapıcaktım keystore secili aliasla sifrelerini giriyorum build alıyorum ama google playe atarken hep su hatayı alıyorum

    Yükleme sertifikasıyla imzalanmamış bir APK yüklediniz. Aynı sertifikayı kullanmanız gerekir. Yükleme sertifikası şu dijital parmak izine sahip:
    [ SHA1: 82:E0:35:4F:D5:E8:BE:AF:A2:5F:D7:DA:01:0B:E0:AB:92:8A:14:4D ]
    ; yüklediğiniz APK’yı imzalamak için kullandığınız sertifika şu dijital parmak izine sahip:
    [ SHA1: D6:84:FB:04:AC:95:85:E1:B6:C6:05:FA:8D:E5:85:FC:0C:B1:CF:FE ]

    hersey anı keystore falan hatta oyunu google playden silip yeniden imzaladım yine aynı napabilirim

    • yasirkula dedi ki:

      Eğer sorun hâlâ devam ediyorsa ve projeyi ilk başta Unity 5 ile, sonra Unity 2017 ile build aldıysanız isterseniz tekrar Unity 5 ile build almayı deneyebilirsiniz. Sorunu çözdüyseniz de nasıl çözdüğünüzü paylaşabilirseniz sevinirim.

  9. Yunus Emre Kula dedi ki:

    imzalıyorum harfiyen herşeyi, yapıyorum apk yükleyince ; 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.

    hatası alıyorum dediklerinizi harfiyen uyguladım çıldırmak üzereyim

    • yasirkula dedi ki:

      Build Settings’te “Development Build”in seçili olmadığından emin olun. Ayrıca build almadan önce Player Settings-Publishing Settings’e baktığınızda “Use Existing Keystore”un seçili olduğundan, Keystore Password’un girili olduğundan, doğru Alias’ın seçili olduğundan ve alias’ın Password’unun girili olduğundan emin olun.

  10. Y4kup dedi ki:

    Hocam tekrardan merhaba.Google Play de arama kısmına “Uzay oyunları” yazınca benim de uygulamamın gözükmesi için ne yapmalıyım.

    • yasirkula dedi ki:

      Uygulamanız daha çok kişi tarafından indirildikçe otomatik olarak listede yukarılara çıkacaktır. Sizin yapabileceğiniz tek şey oyunun indirilme sayısını artırmak. Bunun için isterseniz forumlarda, sosyal ağlarda ve arkadaş çevrenizde oyunu tanıtıp indirmelerini rica edebilir veya ücretli reklam verebilirsiniz. Yalnız ücretli reklam kısmında benim bir tecrübem yok.

  11. enceweb dedi ki:

    Merhabalar Hocam
    Build aldığım oyunum 28 Mb gibi düşük bir yer kaplıyor, Android 6.0.1 cihazlarda çalışıyor ama 4.4.2 cihazda donarak çalışıyor. Sdk nın tümü yüklü ve güncel ama ıdefication minumum api levelde 4.1 jelly bean api level16 var en düşük daha aşağısını göstermiyor. Sorun nereden kaynaklanıyor olabilir hocam
    Saygılarımla…

    • yasirkula dedi ki:

      Oyunun boyutu kasmasını doğrudan etkilemiyor. Oyun esnasında batching ve SetPass calls sayısı ne kadar fazlaysa performans o kadar düşer. Benzer şekilde, eğer scriptlerinizde çok ağır işler yapıyorsanız da bu performansı etkileyebilir. Mobilde performansı artırmanın en hızlı yolu gölgeleri kapatmak. Onun dışında, sahnede kullandığınız materyallerin shader’larını daha basit şeyler yapabilirsiniz. Mesela mobil oyunlarda Standard shader kullanmanızı hemen hiç tavsiye etmem, performansı gerçekten kötü. Onun yerine işinizi görüyorsa Mobile-Diffuse, yoksa Legacy kategorisinden basit bir shader kullanmayı düşünebilirsiniz.

      Android minimum 4.1 olması ise Unity’nin son sürümlerinde olan bir şey; Unity Android 4.1’den önceki API’lerin desteğini kaldırdı. Ama bu artık bir sıkıntı olmamalı çünkü şu grafiğe göre 4.1 öncesi cihazlar tüm cihazların sadece %1.2’sini oluşturuyor: https://developer.android.com/about/dashboards/index.html

  12. Batuhan dedi ki:

    Arkadaşlar Google Play Games Plugin ininin kullanımı bu linkten öğrenebilirsiniz.
    http://botsitgames.com/google-play-games-plugin/

  13. Mucahit dedi ki:

    selamun aleykum abi ben yeni bi oyunumu google playe koyucakım imzalama bolumunu aynen yaptım hatta yeni keystore açıp bi kaç kere denedim alias seçili oldugunda apk çıkartmıyo unity 2017 kullanıyorum bu arada sorunun sebebi ne olabilir

  14. yunus dedi ki:

    Merhaba daha önce sorunsuz play store’a oyunu koyduğum halde şu an build alırken hata veriyor imzayı kaldırınca hata düzeliyor boş proje açınca da var yardımcı olabilirsen sevinirim
    hata1:

    Win32Exception: ApplicationName=’C:\Users\Yunus Emre Aydemir\AppData\Local\Android\android-sdk\build-tools\26.0.0\apksigner.bat’, CommandLine=’sign –ks “C:/Users/Yunus Emre Aydemir/Documents/play store deneme 2/user.keystore” –ks-pass pass:”” –ks-key-alias “” –key-pass pass:”” “C:\Users\Yunus Emre Aydemir\Documents\play store deneme 2\Temp/StagingArea/Package.apk”‘, CurrentDirectory=’Temp/StagingArea’
    System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
    System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
    System.Diagnostics.Process.Start ()
    (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
    UnityEditor.Utils.Program.Start (System.EventHandler exitCallback) (at C:/buildslave/unity/build/Editor/Mono/Utils/Program.cs:44)
    UnityEditor.Utils.Program.Start () (at C:/buildslave/unity/build/Editor/Mono/Utils/Program.cs:28)
    UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
    UnityEditor.Android.PostProcessor.Tasks.TasksCommon.Exec (System.String command, System.String args, System.String workingdir, System.String errorMsg, Int32 retriesOnFailure)
    UnityEditor.Android.PostProcessor.Tasks.BuildAPK.SignPackage (UnityEditor.Android.PostProcessor.PostProcessorContext context)
    UnityEditor.Android.PostProcessor.Tasks.BuildAPK.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
    UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
    UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report)
    UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
    UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTargetGroup targetGroup, BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:263)
    UnityEditor.HostView:OnGUI()

    hata2:
    UnityEditor.BuildPlayerWindow+BuildMethodException: Build failed with errors.
    at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x001b9] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:162
    at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00050] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:83
    UnityEditor.HostView:OnGUI()

    • yasirkula dedi ki:

      İnternette ararken şöyle şeyler buldum:
      – Assets klasörünün içerisine build almayın
      – SDK Manager’da build-tools gibi kritik şeylerin son sürüm olduğundan emin olun
      – JDK’nız son sürüm değilse son sürüm JDK kurup Edit-Preferences’ten JDK yolunu güncelleyin
      – Projenizin olduğu klasörde varsa .vs isimli klasörü ve oradaki Visual Studio ile alakalı dosyaları silip Unity’i tekrar açın
      – Kullandığınız bir plugin’de artık geçersiz bir class veya fonksiyon kullanılıyorsa bu durumda da bu hatayı alabiliyorsunuz. Ancak bunun plugin’i güncellemekten veya silmekten başka bir çözümü yok

  15. Muhammet dedi ki:

    Hocam Arkaplan.js de 16 adet sorun çıktı.

  16. Mucahit1 dedi ki:

    Selamun aleykum abi ben 2.oyunuma google playe yukleyecektim bugun ama bi turlu olmadi hem apk yi kabul etmedi yuklenemiyor dedi hemde oyun goruntulerini kabul etmedi 512×512 koymama ragmen acaba bi hesapla tek bir oyun mu yukleyebiliyoruz bir daha mi hesap acip para vermem lazim

  17. Barış dedi ki:

    İstediğim sürümü öne çıkarabilir miyim? Birde aşamalı sunum durdurulursa mantıken eski sürümün kullanıcıya açılması gereklidir sanırım?

    • yasirkula dedi ki:

      Aşamalı sunum olayını veya featured sürüm belirlemeyi maalesef bilmiyorum :/ Yalnızca normal bir sürüm çıkarmayı biliyorum o da önceki yorumda belirttiğim buton ile oluyor.

  18. Barış dedi ki:

    Oyunumu yaklaşık 1 senedir güncellemedim sadece raporlara bakmak için geliştirici konsolunu kullandım. Fakat son zamanlarda inanılmaz değişmiş sistem artık konsoldan imzalayabiliyormuşuz(sistemi anlamadım tam anlatırsanız sevinirim).Neyse ben normal her zamanki unity den use keystore dedim şifreleri girdim apk çıktı ama güncelleyemiyorum.Konsoldan Sürüm yönetimi>Uygulama sürümleri>Üretim sürümünü yönet diyorum ama “sürüm oluştur” diye birşey çıkmıyor.(tanıdığım birisi ve google ın yardım sayfası buna tıklamam gerektiğini söylüyor fakat bu bende çıkmıyor.)Zaten sürümü düzenle deyincede beklenmedik hata oluştu diyor.Eskiden telefondan sisteme giremezdim artık düzelmiş, giriyorum ama telefondanda sürüm oluştur falan diye birşey çıkmadı.

    • yasirkula dedi ki:

      Bende Sürüm yönetimi – Uygulama sürümleri – Üretim sürümünü yönet diyince gelen ekranda bende sağ üstte Sürüm oluştur butonu var. Bu butona basarak yeni bir sürüm oluşturabiliyorum. Eğer sizde orada o buton yoksa “Google Play Store’daki varlığı” başlığında eksik bir bilgi var mı diye kontrol edebilirsiniz (mesela belki İçerik derecelendirme’yi yapmamışsınızdır).

      Resim: https://yasirkula.files.wordpress.com/2017/05/createrelease.png

      • Barış dedi ki:

        Windows bilgisayarımdan explorer kullanarak girdim çıktı o buton fakat aşamalı sunum olmadan güncelleyemediğim için aşamalı sunumu durdurdum. Herhalde güncelleyemeyeceğim oyunumu.
        Aşamalı sunumu nasıl pas geçeriz?

  19. Fatih Gündüz dedi ki:

    Hocam bir konuda bilginize başvurmak istiyorum. Benim isimsoyisim@gmail şeklinde mail adresim var. Ama ben Playstore da ismimin ve soy ismimin görünmesini istemiyorum aynı şekilde mail adresiminde. Bir firma gibi davranıp bir domain alıp site kurmayı ve playstore da görünen ismi Firma İsmi mesela “Mavi Oyun” ve mail adresini de info@mavioyun gibi göstermek istiyorum. Bunun için üyeliği ilk başta firma gibi görünerek firma adına mı açmalıyım yoksa normal isimsoyisim@gmail hesabından açtıktan sonra uygulama/oyun yüklerken o bilgileri belileyebiliyor muyuz? Saygılar. İyi Çalışmalar.

  20. Ulusoy dedi ki:

    reis keystore girebiliyorum ama alias mi neyse deactive oraya hiçbir şey yazamıyorum (debug) gibi bir şeyler yazıyo

    • yasirkula dedi ki:

      Keystore oluşturduktan sonra açılıyor olmalı orası. Ama keystore oluşturduktan sonra hemen Alias’ı oluşturmanız lazım, başka bir şeye tıklamayın.

  21. halil ibrahim orta dedi ki:

    unty assest storeden bir komple proe satın aldım imzalı bir sekikde built ettim ve bu sorunla karılatım ”Yükleme başarısız oldu
    Hata ayıklaması yapılabilir bir APK yüklediniz. Güvenlik nedeniyle, Google Play’de yayınlanmadan önce hata ayıklama özelliğini devre dışı bırakmanız gerekir. ” bu durumdan nasıl kurtulabilirm. lutfen yardımcıolurmusunuz

    • yasirkula dedi ki:

      “B) Yaptığınız Uygulamayı Unity Üzerinden İmzalamak” kısmını yaptığınızdan emin olun. İlaveten, Build Settings’te “Development Build”in seçili olmadığından emin olun.

  22. mehmet dedi ki:

    Yasir hocam Lütfen bana Yardımcı olurmusunuz bir türlü imza işlemi olmuyor keystore kaydediyorum ama dosya kayıt ettiğim yere kayıt etmiyor dosya yok bu neden oluyor yardımcı olursanız çok minnettar olurum

  23. Cihan dedi ki:

    Merhaba, ben uygulamamı dün yayınladım ancak kategorilerden arattığımda karşıma çıkmıyor.Sadece isimle arattığımda çıkıyor .Böyle olunca kimse bulamaz ki ne yapmak lazım anlamadım saygılar

    • yasirkula dedi ki:

      Uygulamanın indirme sayısı arttıkça kategoride de gözükmeye başlar. Bunu değiştirmenin bir yolu olduğunu sanmıyorum. Oyununuz şimdiden hayırlı olsun.

      • cihan dedi ki:

        Allah razı olsun kardeşim.Aslında belirli aralıklarda uygulamaları öne çıkarsalar böylelikle herkesin uygulaması öne çıkmış olur. En sevmediğim şey ise millete link dağıtıp indirin demek sanırım oyunumu pek indiren çıkmayacak bu gidişle saygılar

  24. Barış dedi ki:

    Google Play e oyunumu APK+OBB olarak yükleyeceğim.Split application binary yaptım 2 dosya oluştu biri ana apk dosyası biri de mainObb mi oyle birsey o main li ismi olan dosyayı obb klorune attım apk yi baska klasore attım oyun kuruldu. Baya bekledim ama unity yazisinda kaldi oyun orada takiliyor ben mi yanlis kurdum? ikisini aynı klasorde tutarken kuruncada oyle kalıyor?

    • yasirkula dedi ki:

      OBB konusunda bilgim yok malesef. Ancak tahminen 2 dosyanın da aynı klasörde olmasını ve isimlerinin değiştirilmemesi gerektiğini düşünüyorum.

  25. Barış dedi ki:

    Rubix Fun oyununuz kaldırılmış geçmiş olsun Yasir Hocam sitenin sol tarafındaki twittler de gördüm.
    İsimdendir derken tam neyi kastettiniz ben oyunun telif yönünden sıkıtılı olduğunu sanmıyorum. (Google Playde ve app storeda rubix fun diye oyun bile yok)Güncellemede oyunun ismini mi değiştirdiniz merak ettim.

    • yasirkula dedi ki:

      Teşekkür ederim. Oyunun kaldırılma sebebi Impersonation idi. O kategoride en olası kaldırılma sebebi de isim oluyor. Rübik küpün ismini Rubix şeklinde telafuz ettiğimdendir belki, o konuda malesef hiç fikrim yok.

      Oyun kaldırılınca güncelleyemiyorsunuz. O yüzden yeni bir isimle oyunu yeniden yükledim.

  26. ahmet dedi ki:

    Hocam merhabalar.Hocam ben unity içinde test çözme uygulaması hazırlıyorum.Soruları .json uzantılı dosyalardan çekiyorum ama türkçe karakter sorunu çıkıyor.Bunu nasıl çözebilirim.json uzantıları için bir de litjson.dll diye bir şeyi proje içine dahil etmem gerekti.Türkçe karakter sorununu nasıl halledebilirim.Teşekürler.

  27. Barış dedi ki:

    Oyunumu düzgünce test ettim her şey düzgün bir tek app store developer hesabı almak kaldı fakat almaya çalışınca şöyle bir hata çıkıyor ”Ödemenizin yetkilendirilmesi başarısız oldu. Lütfen bilgilerinizi doğrulayıp tekrar deneyin veya başka bir ödeme yöntemini deneyin”. ininal kartla almaya çalışıyorum 396 tl para var içinde google play developer hesabınıda bu kartla almıştım ama nedense apple developer hesabını bir türlü alamadım sizin de başınıza böyle bir şey geldimi geldiyse nasıl çözdünüz bu sorunu?Bir de en tuhafı app storedan oyun falan alabiliyorum deneme amaçlı 59 kr ya oyun aldım.

    • Barış dedi ki:

      Ve bu developer hesabı için apple tam olarak ne kadar para kesiyor daha da mı para yüklesem acaba ininal kartıma.Bir yerde duymuştum extra vergi falan alıyormuş apple. Eger olmazsa kredi karti deneyecem en son çare hiç kredi karti internete girmezdim ama apple mecbur bıraktı. Siz de kredi kartiyla almissinizdir herhalde

    • yasirkula dedi ki:

      Bu konuda bir bilgim yok gerçekten, yanlış bilgi vermek istemem (apple app store hesabım bulunmuyor zaten 🙂 ). Ancak internetten alışveriş yaparken dediğiniz gibi kredi kartımı (sanal kart) kullanıyorum ve şimdiye kadar bir sıkıntı ile karşılaşmadım.

  28. Kimex dedi ki:

    Feature Graphic yani Özellik Grafiği denilen kısım uygulamanın en üstünde yer alan ve tam ortasında play tuşu bulunan uygulamaya ait en büyük resimdir.Tanıtım video su koymazsanız play tuşuda olmaz Promo Graphic yani Tanıtım Grafiği ne işe yarıyor onu çözemedim daha 😦

  29. batıkan dedi ki:

    Aha banlandım ben böle play store in …… daha hesabı dün açtım paranın üstüne yattılar resmen 2 ay emekde boşa gitti haram zıkkım olsun hesabı fesh ettiler

    • yasirkula dedi ki:

      Ne kadar işe yarıyor bilmiyorum ama support team’e mail atmanızı öneririm. Askıya alınmasının sebebi copyright’lı içerikler olabilir ya da piyasadaki bir oyunun çok benzer bir versiyonunu yapmış da olabilirsiniz.

      • batıkan dedi ki:

        Baya araştırdım benim gibi birçok kişinin başına gelmiş bu durum. Hiç kimsede hesabını geri alamamış. Ben yinede mail attım 3 gün içinde dönceklerini söylediler. Mesaj bekliyorum. Bu google nin sistemi çok saçma ve haksızlık ediyorlar. Uygulama tamamen bana ait ve hiç bi kötü amacı yok. Benzeri olacağını da sanmıyorum. Sadece karakter ve logo 2d süperman internetten bulmuştum. Sanırsam ondan oldu ama mailde bildirmemesi ve hesabı engellemesi çok saçma. Mesajda gördüğünüz gibi sadece uygulama ve paket ismini değiştirmemi söylediler. Şimdi bunlar birde Mac ban atıyolar ip adresinden değil mac adresinden engelliyolar. Üstelik yeni hesap açmaya kalkanların parasını alıp hesabı yine engelliyolarmış. Mail de de uyardılar.Afedersiniz ama bu google büyüklüğü kadar da şerefsz. Birdaha hesap nasıl açabilirim fikriniz var mı ? Ben laptopdan kullanmıstım birde masaüstü pc var ondan kullanırsam ve migrosta satılan sanal paypal kartını kullanırsam sorun olmaz heralde ?

      • yasirkula dedi ki:

        Mesajda copyright sorunlarını giderdikten sonra yeni versiyonu yeni bir paket ismiyle upload etmenizi yazmış, o konuda yanlış anlaşılma olmasın.

        Bence durumu aceleye getirmek yerine support team’in size geri dönüş yapmasını bekleyin. İkinci hesabı hangi koşullar altında açabileceğiniz konusundaysa malesef bilgim yok :/

      • batıkan dedi ki:

        Anladım hocam sanırsam karakter ve logo süperman olduğu için telif hakkından yani dediğiniz copyright oldugu için kabul etmediler ama hesabı engellemeleride saçma.
        http://www.noe-v.com/images/articles/blue_supes.jpg
        Yukardaki linkteki resim logo ve karakter işte. Şimdi mac ve ip adresini değiştirdim ama ne olur ne olmaz diye arkadaşa hesap açtırcam ona yükletcem uygulamaları arkadaşla ortak kullanırız ne olur ne olmaz. Mail de de dönmedi google araştırdım bu durumda olanların çoğuna dönmemişler bile.
        Bu arada bişey sorcam uygulamayı arka planda oynatma kodu nedir ? Hiç bi yerde yok bulamadım da yapamadım da. Mesela müzik uygulaması yapcam kullanıcılar müziği açıp başka uygulamaya geçebilsinler ?

      • yasirkula dedi ki:

        Arkaplanda nasıl oynatılıyor onu ben de bilmiyorum :/

      • batıkan dedi ki:

        Hocam sıkıntı süpermandeymiş yeni hesap acıp karakter üzerinde oynama yapıp gönderdim kabul ettiler. Herşey için teşekkür ederim sizi takipteyim sitede harika çok şey öğretti.
        https://play.google.com/store/apps/details?id=com.OzbalHan.FlyWithCape

  30. batıkan dedi ki:

    Merhaba ben oyunu play store a gönderdim fakat oyun işlenme aşamasındayken google oyunu askıya alıyor reddediyor şöyle bi mail atıyor.

    Next Steps

    1- Read through the Impersonation article for more details and examples of policy violations.
    2- Make sure your app is compliant with the Impersonation and Intellectual Property policy and all other policies listed in the Developer Program Policies. Remember additional enforcement could occur if there are further policy issues with your apps.
    3- Sign in to your Developer Console and submit the policy compliant app using a new package name and a new app name.

    Bunu nasıl düzeltebilirim acaba ? İsimden olmadı diye ismini değiştirdim oyunun yine olmadı 3. de mi ne hesabı feshediyolarmış galba şimdi yüklemekten korkuyorum.

    • batıkan dedi ki:

      Paket ve oyun ismini değiştirerek tekrar koydum yine aynı şey kafayı yicem ya 3 kez farklı paket ve oyun isimlerinde koydum yine yayınlanmadan askıya alındı diyor aynı uyarıyı mail atıyolar.

  31. Kimex dedi ki:

    Kamera perspektif değil ve objede kamerada sabit hareket etmiyorlar.Anlatmak istediğim şeyi resimli hale getirmiştim.Unity nin answer kısmında 2 gündür kimse cevap yazmadı 😦

    http://i.hizliresim.com/A7JlEr.png
    http://i.hizliresim.com/kBvPjr.png

    • yasirkula dedi ki:

      Kamera orthographic ise hedefkose.y yerine Camera.main.orthographicSize, hedefkose.x yerine de (Camera.main.orthographicSize * Camera.main.aspect) yazmayı deneyin (belki de tam tersi). Eğer bu değerlerle plane ekranın hep yarısını kaplarsa da bu değerleri 2 ile çarparsınız.

  32. Kimex dedi ki:

    Merhaba
    Ben oyunumda bir plane objesi kullanıyorum ve bu objenin tüm ekranlarda tamda ekran kadar büyümesini istiyorum yani ben bir oran bulmalıyım bu oranla plane objesini çarpınca plane ekran kadar olmalı.Oran lazım bana çünkü bu oranı daha sonra başka objeler içinde kullanıcam.
    Vector3 ekrandurum = new Vector3(Screen.width, Screen.height, 0);
    Vector3 hedefkose = Camera.main.ScreenToWorldPoint(ekrandurum);

    oranx = hedefkose.x / masa.transform.localScale.x;
    masa.transform.localScale = new Vector3(hedefkose.y, 1, hedefkose.x);
    şeklinde bir script yazdım ama olmadı saçmaladı 😦 3d olduğu için mi acaba ?
    3D de nasıl yapabilirim sizce ?

    NOT: sitenize birde soru cevap kısmı açsanız ve konularla alakası olmayan soruları orda sorsak bence çok güzel olur.
    Teşekkürler yardımlarınız için

    • yasirkula dedi ki:

      Kamera perspektif ise plane’in ekrandan ne kadar uzakta olacağına karar vermeniz lazım zira plane kameradan uzaklaştıkça doğal olarak artık ekranın tamamını kaplamayacaktır. Diyelim plane, kameradan 10 birim uzakta ise ekrandurum vektörünüzün z değeri 0 değil 10 olmalı. “localScale”in değeri ise ya “new Vector3(hedefkose.x, hedefkose.y, 1);” olmalı, ya da bunun 2 katı; ondan tam emin değilim.

  33. Berkay dedi ki:

    Merhaba hocam.
    Hazır unity android oyun dosyası var elimde. Bu dosyayı nasıl apk dönüştürürüm?

    • yasirkula dedi ki:

      Unity Android oyun dosyasından kastınız Unity projesi ise Build Settings’ten platformu Android yapıp dersin A part’ını tamamlayın ve Build butonuna tıklayın.

  34. Barış dedi ki:

    130 bin indirmeli oyunumun keystore dosyasını kurtardım. Ama şifresini bulamadım keystore şifresini öğrenmek için google a mail atsam şifreyi biliyorlarsa söylerler mi?

    • Barış dedi ki:

      Bu keystore şifresini öğrenmenin bir yolu yok mudur? Şifreyi yazmadan build almayı denedim hiç
      birşey olmadı hata falan hiç vermedi.Bu şekilde güncelleme yapsam kabul ederler mi?

      • yasirkula dedi ki:

        Kabul etmez malesef. Yalnızca aynı imza ile imzalanmış uygulamaları update edebiliyorsunuz (şifre girmek zorunlu).

    • yasirkula dedi ki:

      Onların da bildiğini sanmıyorum. Bruteforce ile şifreyi kırmaktan bahsetmişler internette, ben de başka bir çözüm görmüyorum açıkçası.

  35. Veheb dedi ki:

    Yaa platform stored nasıl kendi oyunumu yapabilirim.

    • yasirkula dedi ki:

      Game Maker veya Unity gibi oyun motorları en kolay tercih. Çok basit oyunlar için belki belki Android Studio gibi zorlu tercihler de işe yarayabilir.

  36. ahmet enes adlığ dedi ki:

    ben sizin dediğiniz gibi imzalama yapıyorum apk alıp google playa yüklerken “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.” hatası çıkıyor tekrar ne yapmalıyım .

    • yakup dedi ki:

      hocam ilk bende bu durumu yaşadım.Muhtemelen “alias” kısmını unsigned olarak bıraktınız.Orada kendi oluşturduğunuz alias’ı seçip deneyin

  37. yakup dedi ki:

    Yakın zamanda ilk oyunumu google play de yayınlayacağım ancak developer hesaplarında geliştiricinin adresi diye herkezin görebildiği bir yer var daha kayıt olmadım ama benim adresimin yayınlanmasını istemiyorum veya sadece yaşadığım şehrin adı gözsün bu yapılabilirmi? yapılabilirse nasıl yapılabilir?

    • yasirkula dedi ki:

      Adres kısmına sadece şehrinizi yazsanız kabul etmez mi?

      • yakup dedi ki:

        Bilemiyorum daha geliştirici hesabı açmadım oyunda 1-2 eksik var finallerden dolayı çok vaktim olmuyor ama sizin dediğiniz gibi sadece şehri yazarım herhalde kabul eder

  38. Aslan dedi ki:

    Ben oyunu imzalayip o sekilde google playe yuklemek istedim.Ancak yuklemeye kalkistigimda “Hata ayiklama moduna imzalanmis bir Apk yuklediniz.Apknizi yayinlama modunda imzalamaniz gerekiyor.”
    Hatasi veriyor.Oyunu imzalanmamis (eski) haline nasil donderebilirim?

  39. Enes dedi ki:

    Merhaba “Bundle Identifier has not been set up correctly” hatası aldım lakin build settings de( build identifier ) yok pro olmadığı içinmidir?

  40. berkay dedi ki:

    benim bi sorum var. biz iki gün önce oyunumuzu google playe koyduk oyunu indirip oylayan 17 kişi olmasına ragmen indirme 0 gözüküyor bu neden oluyor olabilir

  41. umut dedi ki:

    merhabalar emeğin için çok teşekkürler

    birşey soracam peki biz oyunumuzu google playe yükledik diyelim peki bu katagori tanımı nasıl yapılacak mesela dövüş yarış oyunu gibi bide google play de hangi aramalarda çıkmasını nasıl belirleyecez mesela kişi google play de dovüş ve ya fight game yazdığında benim oyunun o arama da çıkmasını nasıl sağlayabiliriz bu işlemin adı yanlışım varsa düzeltin meta tag diye biliyorum bu işlemi nasıl yapacaz

    • yasirkula dedi ki:

      Kategori Google Play’e yüklerken seçiliyor. Arama terimleri ise oyunun isminde ve açıklamasında (description) geçen kelimelerden oluşuyor.

  42. umutt dedi ki:

    google play e bir oyun upload etmek istiyorum ama bu hatayı alıyorum unity ile yaptım oyunu

    You need to reduce your APK file size to 50MB or use APK Expansion Files.

    Apk expansion files dediği şeyi yapamadım !!

    yardımcı olursanız sevinirim !!

  43. omersismanoglu dedi ki:

    hocam merhaba benimde şöyle bır sorunum var

    Build failure

    Failed to-package resources.See the Console for details.

    build ederken bu hatayı alıyorum

  44. Yunus KAra dedi ki:

    abi bir compenent in aktifliğni nasıl kapayabiliriz

  45. osman dedi ki:

    abi merhabalar…ben dediklerinizi yaptım sorun çıkmadı.sadece bir yerde sorun çıktı aşağıda bulunan resimdeki gibi.lütfen yardımcı olur musun…teşekkürler

      • yasirkula dedi ki:

        Ben Build&Run yapmıyorum, o yüzden bu hatanın çözümünü bilmiyorum (internete yazarsanız çeşitli İngilizce çözüm yolları bulabileceğinize inanıyorum). Ben sadece Build ediyorum ve oluşan APK’yı USB kablo ile cihaza atıp oyunu cihaza elle kuruyorum.

      • osman dedi ki:

        teşekkürler çözümü buldum…buıld&run değilde sadece build edince sorun halloldu…

  46. yunusemre dedi ki:

    Yani 3 metre istesem 3f mi yazmam gerekir?

  47. Gamer dedi ki:

    Abi birşey sorabilirmiyim Karakterin bir cisme olan yakınlığıyla bir animasyonu nasıl aktif ederiz mesela kapıya bir metre yaklaşıp E tuşuna basınca kapının açılmasını istiyorum

    if(…………)
    {
    animation.play()
    }
    gibi

    • yasirkula dedi ki:

      Vector3.Distance fonksiyonu iki Vector3 alır ve bu iki obje arası mesafeyi döndürür. Örneğin:

      if( Input.GetKeyDown( KeyCode.E ) && Vector3.Distance( karakter.transform.position, kapi.transform.position ) < 1f )
      {
      animation.play()
      }

      • yunusemre dedi ki:

        Abi 1f kısmı nedir bunu acıklarmişin

      • ouzhanuglu dedi ki:

        1f kapıya 1metre kala açılsın istemişsin o yüzden 1. distance float değer döndürür 1’in sağındaki f onun float olduğunu gösterir d olsaydı double olacaktı hiç olmayada bilir ama c# ‘da (sanırım) virgüllü değerlerde onun double yada float olduğunu belirtmen gerek abonelik maili gelmiş cevap vereyim dedim

      • yasirkula dedi ki:

        1 sayısının float versiyonu.

  48. bumthimble dedi ki:

    Allah razı olsun senden 🙂 yoksa oyunmu yükleyemecektim 🙂

  49. ömer dedi ki:

    Merhaba ben apk için build ediyorum ve cihaza kuruyorum fakat oyun açılmıyor. sadece powered by unity ekranında cihaz kalıyor. ben nerede hata yapıyorum. lütfen mail atınız. tşk

  50. çaylak dedi ki:

    http://i.hizliresim.com/66JWB9.png bu nedir hocam daha öncedenn yüklemeye calıstımm lısan hatası verdii keyi düzgün ayarlayamadımm daha taslak halindeyken kaldırdımm tekrara yükledimm şimdide bu hatayı veriyoo

  51. hoca dedi ki:

    Hocam Ios’a build etmek için bir yazı yazabilirmisiniz hocam

  52. selim dedi ki:

    Hocam ben imzalayıp build edince iki dosya oluştu apk ve obb uzantılı nasıl oynayacam telefondan, birde google playa nasıl yükleyecem yardımcı olurmusunuz

  53. tarık dedi ki:

    hocam google+ aracılığıyla skor tabloları var.onu nası yapacagız.google play oyun hizmetleri şöyle kod verdi

    var constants = constants || {}
    constants.LEAD_SCORE_TABLE = ‘kimlik’;

    bunu nasıl yapacagım acaba

    • yasirkula dedi ki:

      Google Play Services zahmetli bir sistem. Nasıl kurulduğunu anlatmaya çalışmayacağım bile. Bu işlemi, internetten İngilizce kaynaklar bularak kendiniz yapmalısınız.

  54. muzaffer dedi ki:

    apk genisletme pakti istiyo 50 mb ustu icin o nasil yapilir

  55. cengiz dedi ki:

    ben bu kısmı anlamadım…

    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 da Alias şifresini de ilgili boşluğa girip oyunu build edin.

    burda şunumu demek istediniz : unityden çıkınca key devre dışı kalıyor key tekrar açınca key tekrar devreye sokmak gerekiyor… bunumu demek istediniz

    • yasirkula dedi ki:

      Unity’i tekrar açtığınızda şifreleri girdiğiniz kısımların boş olduğunu göreceksiniz. Onları tekrar doldurmadan imzalanmış (signed) build alamazsınız.

  56. gewerli02 dedi ki:

    iyi günler.
    google playda yayıncı olmak için bir ücret gerekiyor mu ?

  57. Burak dedi ki:

    Bende “Alias : Create a new key” seçeneği gelmiyor acaba pro değil o yüzdenmi

  58. Oğuzhan Üglü dedi ki:

    Dostum senin bloğunda mı bi yerde Windows Store için bi yazı görmüştüm ancak şimdi bulamıyorum onuda bi anlartırsan çok iyi olur google playi bi şekilde çözmüştüm ancak windows storeun sitesinden nasıl kaçacağımı bilemedim .)

    • yasirkula dedi ki:

      Mesajınız spam’e kaçmış nedense, geç gördüm o yüzden. Windows Store’la ilgili paylaşımım olmadı benim. Windows Store’dan kastınız mobil uygulama dükkanı mı yoksa PC uygulamaları dükkanı mı?

      • Oğuzhan Üglü dedi ki:

        Başka bi yerde gördüm o zaman. Windows’un dükkanının ikiye ayrıldığını bilmiyordum 🙂 Google Play gibi sandım.

      • Ahmet dedi ki:

        abi ben unity 3d den projenin apk sını build ettikten sonra telefonda ayrıştırma hatası alıyorum nedir çözümü.

  59. Akın dedi ki:

    eyvallah hocam sagolun takipteyiz

    • Ensar dedi ki:

      Dediğiniz her şeyi uyguladım fakat güncelleme yaparken hata aldım. Keystore’u iptal edip güncellediğimde çalıştı. Hata kodu şu şekilde;

      Win32Exception: ApplicationName=’C:\Program Files (x86)\Android\android-sdk\build-tools\23.0.1\apksigner.bat’, CommandLine=’sign –ks “C:/Users/Recep/Documents/UnityProje/Deli Küp/user.keystore” –ks-pass pass:” ******* ” –ks-key-alias “deliküp” –key-pass pass:” ******** ” “C:\Users\Recep\Documents\UnityProje\Deli Küp\Temp/StagingArea/Package.apk”‘, CurrentDirectory=’Temp/StagingArea’
      System.Diagnostics.Process.Start_noshell (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
      System.Diagnostics.Process.Start_common (System.Diagnostics.ProcessStartInfo startInfo, System.Diagnostics.Process process)
      System.Diagnostics.Process.Start ()
      (wrapper remoting-invoke-with-check) System.Diagnostics.Process:Start ()
      UnityEditor.Utils.Program.Start (System.EventHandler exitCallback) (at C:/buildslave/unity/build/Editor/Mono/Utils/Program.cs:44)
      UnityEditor.Utils.Program.Start () (at C:/buildslave/unity/build/Editor/Mono/Utils/Program.cs:28)
      UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
      UnityEditor.Android.PostProcessor.Tasks.TasksCommon.Exec (System.String command, System.String args, System.String workingdir, System.String errorMsg, Int32 retriesOnFailure)
      UnityEditor.Android.PostProcessor.Tasks.BuildAPK.SignPackage (UnityEditor.Android.PostProcessor.PostProcessorContext context)
      UnityEditor.Android.PostProcessor.Tasks.BuildAPK.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
      UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
      UnityEditor.Android.PostProcessAndroidPlayer.PostProcess (BuildTarget target, System.String stagingAreaData, System.String stagingArea, System.String playerPackage, System.String installPath, System.String companyName, System.String productName, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report)
      UnityEditor.Android.AndroidBuildPostprocessor.PostProcess (BuildPostProcessArgs args)
      UnityEditor.PostprocessBuildPlayer.Postprocess (BuildTargetGroup targetGroup, BuildTarget target, System.String installPath, System.String companyName, System.String productName, Int32 width, Int32 height, BuildOptions options, UnityEditor.RuntimeClassRegistry usedClassRegistry, UnityEditor.BuildReporting.BuildReport report) (at C:/buildslave/unity/build/Editor/Mono/BuildPipeline/PostprocessBuildPlayer.cs:263)
      UnityEditor.HostView:OnGUI()

      Sorunun çözümünü bulamadım yardımcı olursanız sevinirim.

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

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.