Bu sayfada, sorun gidermeyle ilgili yardım ve sık sorulan soruların yanıtlarını bulabilirsiniz.
sorular soracağım. Şu durumda:
Aradığınızı bulamıyorum veya daha fazla yardıma ihtiyacınız var,
Firebase desteği.
Genel sorun giderme/SSS
Farklı formatları görme
Sorunlar tablosundaki bazı sorunlar için (ve bazen "varyantlar")
Sorunlar tablonuzda listelenen sorunlar için iki farklı biçim görebilirsiniz
Firebase konsolunda yer alır. Ayrıca, hesabınızda gördüğünüz gibi
"varyantlar" en iyi uygulamaları anlatacağım. Bunun nedenleri aşağıda açıklanmıştır!
2023'ün başlarında, etkinlikleri farklı gruplar şeklinde gruplandırmak için iyileştirilmiş bir analiz motorunu kullanıma sunduk.
ayrıca yeni sorunlar için güncellenmiş bir tasarım ve bazı gelişmiş özelliklerin (ör.
ekleyin!). En son
blog yayını
bulabilirsiniz. Ancak, önemli noktalar için aşağıyı okuyabilirsiniz.
Crashlytics, uygulamanızdaki tüm etkinlikleri (kilitlenmeler, önemli olmayanlar ve
ve ANR'ler) oluşturur ve sorunlar adı verilen etkinlik grupları oluşturur. Tüm etkinlikler
ortak bir hata noktası bulunuyor.
Geliştirilmiş analiz motoru, etkinlikleri bu sorunlar altında gruplandırmak için artık
ve yığın izlemedeki çerçeveler (stack trace),
istisna mesajı, hata kodu ve diğer platform ya da hata türü
özellikler.
Ancak bu etkinlik grubunda, hataya neden olan yığın izlemeler
farklı olabilir. Farklı bir yığın izleme, farklı bir kök nedene işaret edebilir.
Bir sorun içindeki bu olası farkı temsil etmek için,
Sorunlar içindeki varyantlar: Her varyant, bir sorundaki etkinliklerin bir alt grubudur
aynı hata noktasına ve benzer bir yığın izlemeye sahip
olan. Varyantlarla,
bir sorundaki en yaygın yığın izlemelerde (stack trace) hata ayıklayabilir
farklı kök nedenler hataya yol açabilir.
Bu iyileştirmelerle neler yaşayacaksınız?
Sorun satırında gösterilen yenilenmiş meta veriler Uygulamanızdaki sorunları anlamak ve önceliklerini belirlemek artık daha kolay.
Daha az yinelenen sorun Satır numarası değişikliği yeni bir sorunla sonuçlanmaz.
Çeşitli temel nedenlerle ilgili karmaşık sorunlarda daha kolay hata ayıklama Bir sorundaki en yaygın yığın izlemelerde (stack trace) hata ayıklamak için varyantları kullanın.
Daha anlamlı uyarılar ve sinyaller Yeni sorun aslında yeni bir hatayı temsil ediyor.
Daha güçlü arama Her sorun daha fazla aranabilir meta veri içerir.
göz atabilirsiniz.
Bu iyileştirmelerin kullanıma sunulma şekli:
Uygulamanızdan yeni etkinlikler aldığımızda, bunların mevcut bir uygulamayla eşleşip eşleşmediğini kontrol ederiz
.
Eşleşme olmazsa daha akıllı etkinlik gruplama yöntemimizi otomatik olarak uygularız.
algoritmaya eklemeli ve yenilenen meta veriyle yeni bir sorun oluşturmalıdır
tasarım.
Bu, etkinlik grubumuzda yaptığımız ilk büyük güncellemedir. Şu durumda:
geri bildirimde bulunmak isterseniz veya herhangi bir sorunla karşılaşırsanız lütfen
bildirimde bulunabilirsiniz.
'nı inceleyin.
Görmüyorum
kilitlenme sorunu yaşanmayan metrikler ve/veya hız uyarıları
Kilitlenme sorunu yaşamayan kullanıcılar ve oturum sayısı gibi metrikleri görmüyorsanız
ve/veya hız uyarılarını kullandığınızdan emin olun:
Crashlytics SDK 11.7.0 ve sonraki sürümleri.
İçerik haritası günlükleri gösterilmiyor
Görmüyorsanız
içerik haritası günlükleri
Google Analytics için uygulamanızın yapılandırmasını kontrol etmenizi öneririz.
Aşağıdaki koşulları karşıladığınızdan emin olun:
Simgesiz olanı görme
Crashlytics kontrol panelinde Android uygulamaları için yığın izlemeler (stack trace)
Unity IL2CPP kullanıyorsanız
ve sembolsiz yığın izlemeler görüyorsanız aşağıdakileri deneyin:
Crashlytics Unity'nin 8.6.1 veya sonraki bir sürümünü kullandığınızdan emin olun
SDK'dır.
Firebase CLI'ı kullanmaya hazır ve bu SDK'yı çalıştırdığınızdan emin olun.
Sembolünüzü oluşturmak ve yüklemek için crashlytics:symbols:upload komutu
dosyası olarak kaydedebilirsiniz.
Her sürüm oluşturduğunuzda bu CLI komutunu çalıştırmanız gerekir
üzerinde simgeselleştirilmiş yığın izlemeleri (stack trace) görmek istediğiniz
Firebase konsolu. Daha fazla bilgi:
Okunabilir kilitlenme raporları alma
sayfasını ziyaret edin.
Crashlytics kullanılabilir mi?
nasıl kullanıyor?
Evet. Crashlytics, şu özelliklere sahip uygulamalarınız için simgeselleştirilmiş yığın izlemeler gösterebilir:
IL2CPP kullanıyor. Bu özellik, Android veya iOS cihazlarda
Apple platformları. Yapmanız gerekenler:
Crashlytics Unity'nin 8.6.0 veya daha yeni bir sürümünü kullandığınızdan emin olun
SDK'dır.
Platformunuz için gerekli görevleri tamamlayın:
Apple platform uygulamaları için: Özel bir işlem yapmanız gerekmez. Apple için
Firebase Unity Editor eklentisi tarafından otomatik olarak yapılandırılır,
Xcode projenizde oluşturmanız gerekir.
Her sürüm oluşturduğunuzda bu CLI komutunu çalıştırmanız gerekir
üzerinde simgeselleştirilmiş yığın izlemeleri (stack trace) görmek istediğiniz
Firebase konsolu. Daha fazla bilgi:
Okunabilir kilitlenme raporları alma
sayfasını ziyaret edin.
Kilitlenme sorunu yaşamayan kullanıcı sayısı nasıl hesaplanır?
Kilitlenme sorunu yaşamayan değeri,
uygulamanızı kullananlar, ancak belirli bir dönemde kilitlenme yaşamayan.
Kilitlenme sorunu yaşamayan kullanıcı yüzdesini hesaplama formülü aşağıdaki gibidir. Giriş
değerleri, Google Analytics tarafından sağlanır.
CRASH_FREE_USERS_PERCENTAGE = 1 - (CRASHED_USERS / ALL_USERS) x 100
Google Analytics, kilitlenme olduğunda bir app_exception etkinliği gönderir
type (tür), CRASHED_USERS ise ilişkilendirilmiş kullanıcı sayısını temsil eder.
bu etkinlik türünü belirtmelisiniz.
ALL_USERS,
açılır menüden seçtiğiniz dönem boyunca uygulamanıza
tıklayın.
ziyaret edin.
Kilitlenme sorunu yaşamayan kullanıcı yüzdesi ortalama değil, zaman içindeki toplam değerdir.
Örneğin, uygulamanızın üç kullanıcısı olduğunu düşünün; Biz buna Kullanıcı A, Kullanıcı B,
ve C Kullanıcısı. Aşağıdaki tabloda her gün hangi kullanıcıların uygulamanızla etkileşimde bulunduğu gösterilmektedir
ve bu kullanıcılardan hangilerinin o gün kilitlenme yaşadığını belirtir:
Pazartesi
Salı
Çarşamba
Uygulamanızla etkileşimde bulunmuş kullanıcılar
A, B, C
A, B, C
A, B
Kilitlenme yaşayan kullanıcı
C
B
A
Çarşamba günü, kilitlenme sorunu yaşamayan kullanıcı yüzdeniz %50 (2 kullanıcıdan 1'i
kilitlenmesini önlüyor). .
Kullanıcılarınızdan ikisi Çarşamba günü uygulamanızla etkileşimde bulundu, ancak bunlardan yalnızca biri
(B Kullanıcısı) kilitlenme yaşamadı.
Son 2 günde kilitlenme sorunu yaşamayan kullanıcı yüzdeniz %33, 3 (3/3)
kilitlenme sorununun yaşanmadığı anlamına gelir. .
Kullanıcılarınızdan üçü son iki gün içinde uygulamanızla etkileşimde bulunmuş, ancak
bunlardan birinde (C Kullanıcısı) hiç kilitlenme gerçekleşmedi.
Son 3 gün içinde kilitlenme sorunu yaşamayan kullanıcı yüzdeniz %0'dır (3 üzerinden 0).
kilitlenme sorununun yaşanmadığı anlamına gelir. .
Kullanıcılarınızdan üçü son üç günde uygulamanızla etkileşimde bulunmuş, ancak
hiçbirinde kilitlenme yaşanmamıştır.
Kilitlenme sorunu yaşamayan kullanıcı sayısı değeri, farklı dönemlerle karşılaştırılmamalıdır.
Tek bir kullanıcının kilitlenme yaşaması olasılığı, bir kullanıcının kilitlenme
uygulamanızı kullanın. Bu nedenle, kilitlenme sorunu yaşamayan kullanıcıların değeri daha uzun süre
dönemleridir.
Bir sorunla ilgili notları kimler görüntüleyebilir, yazabilir ve silebilir?
Notlar, proje üyelerinin sorular ve durumlarla ilgili belirli sorunlar hakkında yorum yapmasına olanak tanır.
güncellemeler vb.
Bir proje üyesi not yayınladığında bu not, ilgili kullanıcının Google gönderdiği e-posta ile etiketlenir.
hesap. Bu e-posta adresi, notla birlikte tüm projeler tarafından görülebilir
notu görüntüleme erişimine sahip üyeler tarafından görüntülenebilir.
Aşağıda görüntülemek, yazmak ve silmek için gereken erişim izni açıklanmaktadır
notlar:
Aşağıdaki rollerden herhangi birine sahip proje üyeleri mevcut projeleri görüntüleyip silebilir
ve yeni notlar yazabilirsiniz.
Bir sorunla ilgili notları kimler görüntüleyebilir, yazabilir ve silebilir?
Notlar, proje üyelerinin sorular ve durumlarla ilgili belirli sorunlar hakkında yorum yapmasına olanak tanır.
güncellemeler vb.
Bir proje üyesi not yayınladığında bu not, ilgili kullanıcının Google gönderdiği e-posta ile etiketlenir.
hesap. Bu e-posta adresi, notla birlikte tüm projeler tarafından görülebilir
notu görüntüleme erişimine sahip üyeler tarafından görüntülenebilir.
Aşağıda görüntülemek, yazmak ve silmek için gereken erişim izni açıklanmaktadır
notlar:
Aşağıdaki rollerden herhangi birine sahip proje üyeleri mevcut projeleri görüntüleyip silebilir
ve yeni notlar yazabilirsiniz.
Uygulama ayrıca
Google Mobile Ads SDK'sı var ancak kilitlenme almıyor
Projenizde Google Mobile Ads SDK'sı ile birlikte Crashlytics kullanılıyorsa
kilitlenmeyi bildirenler de muhtemelen bu işlem sırasında
istisna işleyicileri kaydetmem gerekiyor. Sorunu düzeltmek için kilitlenme raporlamasını devre dışı bırakın:
disableSDKCrashReporting çağırarak Mobile Ads SDK'sını oluşturun.
BigQuery veri kümem nerede bulunuyor?
Crashlytics'i BigQuery'ye bağladıktan sonra, oluşturduğunuz yeni veri kümeleri
bulunduğunuz yerden bağımsız olarak, otomatik olarak Amerika Birleşik Devletleri'nde bulunabilir.
Firebase projesi.
Geri çekilen sorunlar
Geri çekilen nedir
sorun?
Sorunu daha önce kapattığınız ancak bir
Crashlytics, sorunun yeniden oluştuğunu belirten yeni bir rapor alır.
Crashlytics, geri çekilen bu sorunları otomatik olarak yeniden açar. Böylece şunları yapabilirsiniz:
bunları uygulamanıza uygun şekilde ele alın.
Aşağıda, Crashlytics'in bir etkinliği nasıl sınıflandırdığını açıklayan örnek bir senaryo verilmiştir.
sorunu regresyon olarak ifade eder:
Crashlytics, ilk kez Crash ile ilgili kilitlenme raporu alıyor
"A". Crashlytics, söz konusu kilitlenmeye karşılık gelen bir sorunu açar ("A" sorunu).
Bu hatayı hızlıca düzeltip "A" sorununu kapattıktan sonra
en iyi şekilde yararlanabilirsiniz.
Crashlytics, "A" Sorunu ile ilgili bir rapor daha gönderdi sayfayı kapattıktan sonra
.
Rapor, Crashlytics'in bildiğim bir uygulama sürümünden geliyorsa
sorunu kapattığınızda (sürümün kilitlenme gönderdiğini gösterir)
herhangi bir kilitlenme olduğunu bildirirse Crashlytics,
bu sorunu regresyon olarak gösterir. Sorun kapalı kalacaktır.
Rapor, Crashlytics'in yapmadığı bir uygulama sürümünden geliyorsa
hakkında bilgi sahibi olmanız gerekir (yani sürümdeki
kilitlenmeyle ilgili hiçhiç kilitlenme raporu göndermediyse
Crashlytics, geri çekilen sorunu dikkate alarak
.
ziyaret edin.
Bir sorun gerilediğinde, bir regresyon algılama uyarısı gönderir ve bir
Crashlytics'in daha iyi bir performans için
, sorunu yeniden açtı. Bir sorunun yeniden açılmasını istemiyorsanız
regresyon algoritması, "sessiz" anlamaya çalışın.
Neden gerileme görüyorum?
eski uygulama sürümlerinde sorun mu var?
Rapor, henüz hiç kilitlenme raporu göndermemiş eski bir uygulama sürümünden geliyorsa
sorunu kapattığınızda Crashlytics, sorunun kaynağını
geri çekilir ve sorun yeniden açılır.
Bu durum şu durumda ortaya çıkabilir: Bir hatayı giderdiniz ve
uygulamanızın yeni bir sürümünü yayınladı, ancak kullanıcılarınız hâlâ eski sürümlerini kullanıyor
en iyi uygulamaları paylaşacağız. Şanslısınız. Bu eski sürümlerden biri hiç
hiçbir kilitlenme raporu alamadığımız için ve bu kullanıcılar da
söz konusu hataya rastlarsanız bu kilitlenme raporları geri çekilen bir sorunu tetikler.
Regresyon algoritmamız nedeniyle bir sorunun yeniden açılmasını istemiyorsanız "sesi kapat"
anlamaya çalışın.
Yakalanamayan istisnaları önemli olarak bildirme
Crashlytics, yakalanmamış istisnaları önemli hatalar olarak (
sürüm 10.4.0
Unity SDK'sı). Aşağıdaki SSS'ler gerekçeyi ve en iyi çözümü açıklamaya yardımcı olur
daha iyi anlarsınız.
Bir uygulama neden önemli istisnaları yakalanmamış olarak bildirmelidir?
Yakalanmayan istisnaları önemli olarak bildirerek daha gerçekçi göstergeler elde edersiniz
oyunun oynanmamasına neden olabilecek istisnaları,
çalışmaya devam eder.
Önemli hataları bildirmeye başladığınızda kilitlenme sorunu yaşamayan kullanıcı (CFU) yüzdenizin
muhtemelen azalacaktır, ancak CFU metriği bu değişimi daha iyi
son kullanıcıların en iyi uygulamaları paylaşacağız.
Hangi istisnalar
önemli olarak raporlandı mı?
Crashlytics'in yakalanmamış bir istisnayı önemli olarak bildirmesi için:
aşağıdaki iki koşulun karşılanması gerekir:
Uygulamanız (veya dahil edilen bir kitaplık) yakalanmamış bir istisnaya neden oluyor.
oluşturulan ancak atlanmayan bir istisna yakalanmamış olarak kabul edilmez.
Yakalanmayan istisnaların önemli olarak raporlanmasını etkinleştirdikten sonra, artık çok sayıda yeni önemli hatam var. Bu istisnaları uygun bir şekilde nasıl ele alabilirim?
Yakalanmamış istisnalarınızı önemli olarak raporlamaya başladığınızda
yakalanmamış bu istisnaları işlemeye yönelik bazı seçenekler:
Öngörülen tüm istisnaları yakalamak ve değerlendirmek,
bilinen bir duruma döndürülemez.
Hangi istisna türlerinin hangi kod tarafından yakalanıp işleneceğini kontrol etmek için
try-catch blokunda istisna oluşturabilecek kodu sarmala.
catch ifadelerindeki koşulların olabildiğince dar olduğundan emin olun
mümkün olan en iyi uygulamaları
paylaşacağız.
Unity veya Crashlytics'te istisnaları günlüğe kaydetme
Unity veya Crashlytics'te istisnaları kaydedip çeşitli yöntemler kullanarak
hatasını ayıklayın.
Crashlytics'i kullanırken en yaygın ve önerilen iki sorun
seçenekler:
1. Seçenek: Unity konsolunda yazdırma yapın ancak Crashlytics'e rapor vermeyin,
veya sorun giderme sırasında
Debug.Log(exception) komutunu kullanarak Unity konsoluna yazdırın,
Debug.LogWarning(exception) ve Debug.LogError(exception)
istisnanın içeriğini Unity konsoluna yazdırmasını
istisnayı tekrar gözden geçirin.
2. Seçenek:
Aşağıdaki durumlar için Crashlytics kontrol paneli:
Sonraki olası bir hata ayıklama işlemi için günlüğe bir istisna yapılması gerekiyorsa
Crashlytics etkinliği, ardından Crashlytics.Log(exception.ToString()) kullanın.
Buna rağmen bir istisnanın Crashlytics'e bildirilmesi gerekiyorsa
yakalanıp kullanılmadığını, ardından Crashlytics.LogException(exception) kodunu kullanın
günlüğe kaydeder.
Bununla birlikte, önemli bir olayı Unity Cloud'a manuel olarak bildirmek istiyorsanız
Teşhis için Debug.LogException kullanabilirsiniz. Bu seçenek, istisnayı yazdırır
Unity konsoluna dahil ediyor; ancak bu da istisnayı da devreye sokuyor
(henüz atılıp yakalanmaması durumu) Hata mesajı veriyor
yerel olmayanlar. Bu, çevresindeki bir Debug.LogException(exception) bile
ile try-catch engellemesi yakalanmamış bir istisnaya neden olmaya devam ediyor.
Bu nedenle, yalnızca aşağıdaki işlemlerin tümünü yapmak istiyorsanız Debug.LogException işlevini çağırın:
şu:
İstisnayı Unity konsoluna yazdırmak için.
İstisnayı Crashlytics'e önemli etkinlik olarak yüklemek için.
İstisnadan kaçınmak için istisnanın yakalanmamış bir istisna olarak değerlendirilmesini sağlayın ve
Unity Cloud Diagnostics'e bildirilmesini sağlayın.
Yakalanan bir istisnayı Unity konsoluna yazdırmak isterseniz ve
Crashlytics'e önemli olmayan bir etkinlik olarak yüklemek yerine aşağıdakileri yapın:
try
{
methodThatThrowsMyCustomExceptionType();
}
catch(MyCustomExceptionType exception)
{
// Print the exception to the Unity console at the error level.
Debug.LogError(exception);
// Upload the exception to Crashlytics as a non-fatal event.
Crashlytics.LogException(exception); // not Debug.LogException
//
// Code that handles the exception
//
}