Crashlytics ile ilgili sorun giderme ve SSS


Bu sayfada, sorun giderme yardımı ve Crashlytics kullanımıyla ilgili sık sorulan soruların yanıtları yer almaktadır. Aradığınızı bulamıyorsanız veya daha fazla yardıma ihtiyacınız varsa Firebase Destek Ekibi ile iletişime geçin.

Genel sorun giderme/SSS

Firebase konsolundaki Sorunlar tablonuzda listelenen sorunlar için iki farklı biçim görebilirsiniz. Ayrıca bazı sorunlarınızda "varyantlar" adlı bir özellik de görebilirsiniz. Bunun nedeni:

2023'ün başlarında, etkinlikleri gruplandırmak için geliştirilmiş bir analiz motorunun yanı sıra güncellenmiş bir tasarım ve yeni sorunlar için bazı gelişmiş özellikler (varyantlar gibi) kullanıma sunduk. Tüm ayrıntılar için son blog yayınımızı inceleyin. Önemli noktaları aşağıda bulabilirsiniz.

Crashlytics, uygulamanızdaki tüm etkinlikleri (ör. kilitlenmeler, önemli olmayan hatalar ve ANR'ler) analiz eder ve sorun adlı etkinlik grupları oluşturur. Bir sorundaki tüm etkinliklerin ortak bir hata noktası vardır.

İyileştirilmiş analiz motoru, etkinlikleri bu sorunlara göre gruplandırmak için artık yığın izlemedeki çerçeveler, istisna mesajı, hata kodu ve diğer platform veya hata türü özellikleri gibi etkinliğin birçok yönünü inceliyor.

Ancak bu etkinlik grubunda, hataya yol açan yığın izlemeler farklı olabilir. Farklı bir yığın izleme, farklı bir temel neden anlamına gelebilir. Bir sorundaki bu olası farkı temsil etmek için artık sorunlarda varyantlar oluşturuyoruz. Her varyant, bir sorundaki aynı hata noktasına ve benzer yığın izlemeye sahip etkinliklerin alt grubudur. Varyantlar sayesinde, bir sorundaki en yaygın yığın izlemelerinden hata ayıklama yapabilir ve farklı temel nedenlerin hataya yol açıp açmadığını belirleyebilirsiniz.

Bu iyileştirmeler sayesinde şunları deneyimleyebilirsiniz:

  • Sorun satırında gösterilen meta veriler yenilendi
    Uygulamanızdaki sorunları anlamak ve önceliklendirmek artık daha kolay.

  • Daha az yinelenen sorun
    Satır numarası değişikliği yeni bir soruna neden olmaz.

  • Çeşitli kök nedenleri olan karmaşık sorunların daha kolay hata ayıklanması
    Bir sorundaki en yaygın yığın izlemelerinde hata ayıklama için varyantları kullanın.

  • Daha anlamlı uyarılar ve sinyaller
    Yeni bir sorun aslında yeni bir hatayı temsil eder.

  • Daha güçlü arama
    Her sorun, istisna türü ve paket adı gibi daha fazla aranabilir meta veri içerir.

Bu iyileştirmeler şu şekilde kullanıma sunulacaktır:

  • Uygulamanızdan yeni etkinlikler aldığımızda bunların mevcut bir sorunla eşleşip eşleşmediğini kontrol ederiz.

  • Eşleşme yoksa daha akıllı etkinlik gruplandırma algoritmamızı etkinliğe otomatik olarak uygular ve yenilenen meta veri tasarımıyla yeni bir sorun oluştururuz.

Bu, etkinlik gruplandırmamızda yaptığımız ilk büyük güncellemedir. Geri bildiriminiz veya karşılaştığınız bir sorun varsa lütfen bir bildirim göndererek bize bildirin.

Kilitlenmesiz metrik (ör. kilitlenmesiz kullanıcılar ve oturumlar) ve/veya hız uyarıları görmüyorsanız Crashlytics SDK 10.8.0 veya sonraki bir sürümü kullandığınızdan emin olun.

Breadcrumb günlüklerini görmüyorsanız uygulamanızın Google Analytics yapılandırmasını kontrol etmenizi öneririz. Aşağıdaki koşulları karşılamanız gerekir:

Projenizin dSYM'lerini yüklemek ve ayrıntılı çıkış almak için aşağıdakileri kontrol edin:

  1. Projenizin derleme aşamasında, Xcode'un derleme sırasında projenizin dSYM'lerini yüklemesine olanak tanıyan Crashlytics çalıştırma komut dosyasının bulunduğundan emin olun (komut dosyasını ekleme talimatları için Crashlytics'ü başlatma bölümünü okuyun). Projenizi güncelledikten sonra kilitlenmeyi zorla ve kilitlenmenin Crashlytics kontrol panelinde göründüğünü onaylayın.

  2. Firebase konsolunda "dSYM eksik" uyarısı görürseniz derleme için dSYM'leri düzgün şekilde ürettiğinden emin olmak üzere Xcode'u kontrol edin.

  3. Xcode dSYM'leri düzgün şekilde üretiyorsa ve hâlâ eksik dSYM'ler görüyorsanız komut dosyası çalıştırma aracı, dSYM'leri yüklerken takılmış olabilir. Bu durumda, aşağıdakilerin her birini deneyin:

    • Crashlytics'in en son sürümünü kullandığınızdan emin olun.

    • Eksik dSYM dosyalarını manuel olarak yükleyin:

      • 1. Seçenek: Eksik dSYM dosyalarını içeren bir zip arşivi yüklemek için dSYM'ler sekmesindeki konsol tabanlı "Sürükle ve bırak" seçeneğini kullanın.
      • 2. Seçenek: dSYM'ler sekmesinde sağlanan UUID'ler için eksik dSYM dosyalarını yüklemek üzere upload-symbols komut dosyasını kullanın.
  4. Eksik dSYM'ler görmeye devam ederseniz veya yüklemeler hâlâ başarısız olursa Firebase Destek Ekibi ile iletişime geçin ve günlüklerinizi eklediğinizden emin olun.

Yığın izlemelerinizin sembolleştirmesi kötü görünüyorsa aşağıdakileri kontrol edin:

  • Uygulamanızın kitaplığındaki karelerde uygulamanızın koduna referans yoksa -fomit-frame-pointer'in derleme işareti olarak ayarlanmadığından emin olun.

  • Uygulamanızın kitaplığı için birkaç (Missing) çerçeve görüyorsanız Firebase konsolunun Crashlytics dSYM'ler sekmesinde eksik olarak listelenen isteğe bağlı dSYM'ler olup olmadığını kontrol edin (etkilenen uygulama sürümü için). Bu durumda, bu sayfadaki dSYM'ler eksik/yüklenmiyor SSS bölümündeki "Eksik dSYM uyarısı" sorun giderme adımlarını uygulayın. Bu dSYM'lerin yüklenmesi, zaten gerçekleşmiş kilitlenmelerin simgeselleştirilmesini sağlamaz ancak gelecekteki kilitlenmelerin simgeselleştirilmesini sağlar.

Notlar, proje üyelerinin belirli sorunlarla ilgili soru, durum güncellemesi vb. yorumlar yapmasına olanak tanır.

Proje üyeleri tarafından eklenen notlar, Google Hesabı e-posta adresiyle etiketlenir. Bu e-posta adresi, notu görüntüleme erişimi olan tüm proje üyelerine notla birlikte gösterilir.

Aşağıda, notları görüntülemek, yazmak ve silmek için gereken erişim açıklanmaktadır:

Kilitlenmesiz metrikleri anlama başlıklı makaleyi inceleyin.

Notlar, proje üyelerinin belirli sorunlarla ilgili soru, durum güncellemesi vb. yorumlar yapmasına olanak tanır.

Proje üyeleri tarafından eklenen notlar, Google Hesabı e-posta adresiyle etiketlenir. Bu e-posta adresi, notu görüntüleme erişimi olan tüm proje üyelerine notla birlikte gösterilir.

Aşağıda, notları görüntülemek, yazmak ve silmek için gereken erişim açıklanmaktadır:

Entegrasyonlar

Projenizde Google Mobile Ads SDK'sının yanı sıra Crashlytics kullanılıyorsa istisna işleyicileri kaydederken kilitlenme raporlayıcılarının müdahale ediyor olması muhtemeldir. Sorunu düzeltmek için disableSDKCrashReporting SDK'sında kilitlenme raporlamasını kapatmak üzere disableSDKCrashReporting numaralı telefonu arayın.Mobile Ads

Crashlytics'yi BigQuery'ye bağladıktan sonra, oluşturduğunuz yeni veri kümeleri Firebase projenizin konumundan bağımsız olarak otomatik olarak ABD'de konumlandırılır.

Platform desteği

Evet, Crashlytics'ü macOS ve tvOS projelerinde uygulayabilirsiniz. Kilitlenmelerin Google Analytics tarafından toplanan metriklere (kilitlenmesiz kullanıcılar, en son sürüm, hız uyarıları ve içerik haritası günlükleri) erişebilmesi için Google Analytics için Firebase SDK'sının 8.9.0 ve sonraki sürümlerini eklediğinizden emin olun.

Artık uygulamalar farklı Apple platformları (ör. iOS, tvOS ve Mac Catalyst) için derlenmiş olsa bile tek bir Firebase projesinde birden fazla uygulamanın kilitlenmelerini bildirebilirsiniz. Daha önce, aynı paket kimliğini içeren uygulamaları ayrı Firebase projelerine ayırmanız gerekiyordu.

Geri çekilen sorunlar

Daha önce kapattığınız bir sorunla ilgili olarak Crashlytics, sorunun tekrar ortaya çıktığına dair yeni bir rapor alır. Crashlytics, gerileyen bu sorunları otomatik olarak yeniden açar. Böylece, uygulamanıza uygun şekilde ele alabilirsiniz.

Crashlytics'ün bir sorunu nasıl gerileme olarak sınıflandırdığını açıklayan örnek bir senaryo aşağıda verilmiştir:

  1. Crashlytics, "A" kilitlenmesiyle ilgili ilk kez kilitlenme raporu alır. Crashlytics, bu kilitlenmeyle ilgili ilgili sorunu açar ("A" sorunu).
  2. Bu hatayı hızlıca düzeltir, "A" sorununu kapatır ve ardından uygulamanızın yeni bir sürümünü yayınlarsınız.
  3. Crashlytics, sorunu kapattıktan sonra "A" sorunuyla ilgili başka bir rapor alır.
    • Rapor, sorunu kapattığınızda Crashlytics'nin bildiği bir uygulama sürümünden geliyorsa (yani sürüm, herhangi bir kilitlenme için kilitlenme raporu göndermişse) Crashlytics, sorunun gerilediği sonucuna varmaz. Sorun kapatılır.
    • Rapor, sorunu kapattığınızda Crashlytics'in bilmediği bir uygulama sürümünden geliyorsa (yani sürüm, hiçbir kilitlenme için hiçbir kilitlenme raporu göndermediyse) Crashlytics, sorunun geri geldiğini düşünür ve sorunu yeniden açar.

Bir sorun gerilediğinde, Crashlytics'ün sorunu yeniden açtığını size bildirmek için bir gerileme algılama uyarısı gönderir ve soruna bir gerileme sinyali ekleriz. Bir sorunun, gerileme algoritmamız nedeniyle yeniden açılmasını istemiyorsanız sorunu kapatmak yerine "sessize alın".

Bir rapor, sorunu kapattığınızda hiç kilitlenme raporu göndermemiş eski bir uygulama sürümünden geliyorsa Crashlytics sorunun geri geldiğini düşünür ve sorunu yeniden açar.

Bu durum aşağıdaki durumda ortaya çıkabilir: Bir hatayı düzelttiniz ve uygulamanızın yeni sürümünü yayınladınız, ancak uygulamanızın eski sürümlerini kullanan ve bu hatayı düzeltme almayan kullanıcılarınız hâlâ var. Bu eski sürümlerden biri, sorunu kapattığınızda hiç kilitlenme raporu göndermediyse ve bu kullanıcılar hatayla karşılaşmaya başlarsa bu kilitlenme raporları, geriye dönük bir sorunu tetikler.

Bir sorunun, geriye dönük analiz algoritmamız nedeniyle yeniden açılmasını istemiyorsanız sorunu kapatmak yerine "devre dışı bırakın".