Crashlytics, iPhone'dan Kilitlenme raporu göndermiyor


86

Crashlytics'i tek iOS uygulamamda kurdum ve uygulamayı gerçek bir cihaza yükledim. Crashlytics Kontrol Panelim bunu gösteriyor, uygulamayı başarıyla ekledim. Ancak, çökme raporu göndermiyor. İnternet hızım o kadar iyi değil. Ancak e-postalarımı bu cihazdan kontrol edebilirim. Sorunun nerede olduğunu tahmin edebilen var mı?


5
Crashlytics hizmetiyle aynı sorunu yaşıyorum. Cihazdan gelen kilitlenme raporları asla gönderilmez (benim deneyimime göre) - sadece simülatörden. Crittercism kilitlenme raporlamasını ve hata işlemeyi kullanmaya son verdim.
Sam Spencer

Aynısı bana da oluyor. Uygulamanızı gerçek geliştirme cihazından başka bir cihazla deneyin, bu şekilde kilitlenme raporları alabilirsiniz.
Samet DEDE

Evet, geliştirme cihazımı kullanıyorum. Sorun yaratıyor mu?
farhad rubel

1
Tam bir kurulum açıklaması veya test projesi olmadan bunu yanıtlamak imkansızdır. Crashlytics desteği ile iletişime geçmelisiniz. Vahşi tahminler yardımcı olmuyor.
Kerni

3
Crashlytics'ten birinin StackOverflow'daki bu gönderimi görmesi ve benimle e-posta yoluyla iletişim kurması beni çok şaşırttı; Bu sorunu çözmeme yardım ediyor. Bakalım ne olacak.
farhad rubel

Yanıtlar:


84

Xcode hata ayıklayıcı, Crashlytics'in kilitlenme raporlarını işlemesine izin VERMEZ. Evet, bunu ilk okuduğumda bile bana garip geliyor ama bu bir gerçek ( Kaynak ). Şu durumlarda asla kilitlenme raporu görmememizin nedeni budur:
- Uygulama Simülatörde
çalıştırıldığında - iDevice üzerinde uygulama çalıştırıldığında, hata ayıklayıcı açıkken doğrudan Xcode'dan derlenip çalıştırılarak.

Testiniz sırasında bir kilitlenme rapor edildiğinden emin olmak için ( Crashlytics destek sitesinden kopyalanmıştır ):
1. Simülatörü başlatın
2. Durdur'a basın
3. Uygulamanızı başlatın ve çökmeye zorlayın
4. Uygulamayı simülatörden yeniden başlatın
5. web panosu.

DÜZENLE:

Bir referans eklendi; Crashlytics ayrıca bir çökmeyi zorlamanın hızlı bir yolu hakkında kısa bir makale sunar .


6
Bu bana yardımcı oldu. Bunu bazı durumlarda da keşfettim. Crashlytics, uygulama tekrar açılmadıkça kilitlenme raporunu göndermez. Tekrarlamak gerekirse: Kullanıcı bir çökme yaşar. Kullanıcı uygulamayı yeniden açar. Crashlytics önceki kilitlenme raporunu gönderir.
tambykojak

1
@tambykojak bunun nedeni, iOS Kilitlenmelerinin çoğu durumda oldukça değişken olması ve daha güvenli yolun, bir sonraki uygulama yüklemesinde hemen göndermek yerine bir kilitlenme raporu göndermektir. Birçok Crash Reporting aracı, bu paradigmayı iOS ve diğer sanal makine olmayan kilitlenme işleyicilerde kullanır.
pixelknitter

2
Teşekkür ederim. Bu doğru cevap olarak işaretlenmelidir :)
iMemon

Bu durumda herhangi bir dsym yüklemem gerekir mi? Varsa onları nerede bulabilirim?
SoliQuiD

bağlantılar öldü.
luky

67

Geç olabilirim ama% 100 çalış

Aşağıdaki resimde olduğu gibi proje oluşturma ayarlarında bazı değişiklikler yapın

görüntü açıklamasını buraya girin

ve bu talimatları izleyin.


Bitcode'u devre dışı bıraktıktan sonra bile, ara sıra dSYMS hatalarını kaçırıyordum ve simülatör ile hata ayıklarken% 100 hata veriyordum. Bu onu düzeltti. Teşekkür ederim.
user3344977

Bu ayarı değiştirerek firebase platformundaki çökmeleri görebildim
Kwnstantinos Nikoloutsos

21

Herhangi bir çökme muhabirinin iOS üzerinde çalışmamasının birincil nedeni, farklı çökme muhabirlerinin müdahalesidir. Ancak, özellikle Crashlytics ile bunlara özgü bir şey çökme raporunun raporlanmamasına neden olabilir.

Xcode hata ayıklayıcı, Any Crash Reporter'ın kilitlenme raporlarını işlemesine izin VERMEZ . Bunun nedeni, XCode'un çökme işleme geri aramalarında herhangi bir kancayı geçersiz kılmasıdır. Bu yalnızca şu durumlarda olur:

  • Simülatörde uygulama çalıştırma (hata ayıklayıcı açıkken)
  • iDevice üzerinde, hata ayıklayıcı açıkken doğrudan Xcode'dan derleyip çalıştırarak uygulama.

Testiniz sırasında bir kilitlenme rapor edildiğinden emin olmak için ( http://support.crashlytics.com/knowledgebase/articles/92523-why-can-ti-have-xcode-connected- ):

  1. Simülatörü başlat
  2. Durdur'a basın
  3. Uygulamanızı başlatın ve çökmeye zorlayın
  4. Uygulamayı simülatörden yeniden başlatın
  5. Web kontrol panelinde kilitlenme raporuna bakın.

Çok eski bir video hala alakalı olsa da, işte yukarıdaki adımların bir videosunu (Eleştiriden örnek): https://www.youtube.com/watch?v=sU6Su3PBFH4


1
Crashlytics, eklenmiş bir hata ayıklayıcı algıladığında kendisini devre dışı bırakır. Çalışmayacağı için değil, hata ayıklayıcının düzgün çalışmasını durduracağı için . Crashlytics, hata ayıklayıcının kullandığı mekanizmaları kullanır ve SDK'nın normal hata ayıklama akışını bozması gerçekten sinir bozucu olur. Referans olarak, Crashlytics SDK'nın çoğunu yazdım.
Mattie

9

Benim için sorun, cihazın Mac'ime bağlı olmasıydı :) Bu kaynaktan :

Ayrıca, cihazınızı Mac'inize bağladıysanız, XCode'un hata ayıklayıcısı da devreye girecektir. Bu yüzden test etmeden önce cihazın bağlantısını kesin :)


7

Aşağıdaki adımları kullanarak çözüm buldum
1. Şemayı Düzenle'ye gidin 2. Çalıştır -> Bilgi 3. Yayınlamak için Yapı Yapılandırmasını Değiştirin. Şimdi uygulamayı çalıştırın, onu kilitleyin. Mail alacaksınız.


6

Kısa süre önce bu sorunla karşılaştık ve derleme komut dosyasının kaldırıldığı yol boyunca bir yerde buldum. Aşağıdaki şekilde tekrar eklemek sorunu bizim için çözdü:
./Crashlytics.framework/run <your_api_key> <build_secret>

Not: Cocoapod'ları kullanırken yukarıdaki ( kaynak ) yerine aşağıdakileri bize iletmek isteyeceksiniz : ./Pods/CrashlyticsFramework/Crashlytics.framework/run

Bir derleme komut dosyası ekleme:

  1. Xcode 6'da bir Çalıştırma Komut Dosyası Oluşturma Aşaması eklemek için, projenizde uygulama hedefinizi seçin, ardından "Derleme Aşamaları" nı seçin.
  2. Küçük "artı" simgesine tıklayın ve "Yeni Çalıştırma Komut Dosyası Oluşturma Aşaması" nı seçin.
  3. Şimdi, yukarıda gösterildiği gibi, Build Phase seçeneklerinizin ortasında bir Run Script bölümü görmelisiniz.
  4. Komut Dosyası Çalıştırma Aşamasının gövdesinin içine, komut dosyasını yapıştırın.`

Yukarıdaki alıntı, Crashlytics'in bu yazıda referans verilen görsel eğitiminden alınmıştır .

Not: Orijinal olarak bu yanıtı Crashlytics hata kodu: 202 için dosya gönderirken gönderdim .


Bu bana yardımcı olmuş gibi görünüyor.
Chris Prince

1
Daha önce twitter entegrasyonu için kumaş kullandım, şimdi crashlytics istiyorum, ayrıca çerçeve ekledim ve tüm talimatları izledim ancak kontrol panelime herhangi bir kilitlenme raporu almadım lütfen bana yardım edin
RameshIos

@iOS_Ramesh Sana yardım etmeyi çok isterdim, ama daha fazlasını bilmeden zor olacak. Bunu yapmak için, nerede olduğunuzu özetleyen yeni bir soru açmalısınız (entegre etmek için izlediğiniz adım, uygun kod parçacıkları ve Crashlytics'ten veya konsoldan aldığınız geri bildirimler).
James Nelson

Zaten yeni bir soru
gönderiyorum

1
İpucu için teşekkürler. Çalıştırma Komut Dosyamızda ["Release" = "$ {CONFIGURATION}"] kontrol ettik ve Release konfigürasyonumuzu yeniden adlandırdık.
Marián Černý

4

RayWenderlich sitesinden:

Xcode çarpışma olayını durdurursa herhangi bir çökme raporu almazsınız! Aşağıdaki tüm örneklerin çalışması için uygulamayı oluşturup çalıştırmanız, ardından Xcode üzerindeki durdur düğmesine tıklamanız gerekir. Bu şekilde cihaza en son sürümü yükleyeceksiniz. Bunu yaptıktan sonra, uygulamayı cihazın kendisinde başlatabilir ve ardından istediğiniz kadar çökertebilirsiniz! İOS cihazınızdaki tüm çökmeler yakalanacak ve uygulamaya entegre ettiğiniz hizmetin sunucu bileşenine gönderilecektir. Kilitlenme raporları genellikle uygulamayı bir sonraki başlatışınızda sunucuya gönderilir, bu nedenle sunucuda bir kilitlenme raporu oluşturmak için izlenecek adımlar aşağıdaki gibidir: Xcode üzerinde oluşturun ve çalıştırın. Durdur düğmesine basın. Uygulamayı iOS cihazınızda çalıştırın. Uygulamayı kilitleyin. Uygulamayı tekrar çalıştırın.



3

Kazayı çok erken zorlamadığınızdan emin olun.

Set [Crashlytics sharedInstance].debugModeiçin YES;

İzlemek için

Crashlytics] Settings loaded

Xcode konsol günlüklerinde.

Ardından, çökmeyi zorlayın ve uygulamayı yeniden başlatın, kilitlenme şimdi bildirilecektir.


3

Test çökme kodunu denerken benzer bir sorunla karşılaştım.

Crashlytics.sharedInstance().crash()

Uygulamamı Xcode olmadan bir cihazdan çalıştırıyordum ve kilitlenme Crashlytics Dashboard'da görünmüyordu. Benim için işe yarayan şey, Crashlytics web sitesindeki şu ipucuydu:

  • Uygulamayı kilitledikten sonra başlattığınızdan emin olun, böylece çökme yüklenebilir

Yukarıdaki çökme () çağrısını yorumladım ve uygulamayı yeniden çalıştırdım. Ardından, kilitlenme Gösterge Tablosunda belirdi.


2

Bu, crashlytics 3.4.0'dan xcode 9 içindir. AŞAMA 1 ADIM 2

Bunu yaptıktan sonra sabırlı olun ve birkaç dakika bekleyin.


1

[[Crashlytics sharedInstance] crash]Bir cihazda çalıştırmayı ve bunun rapor edilip edilmediğini görmeyi denediniz mi? Diğer kilitlenme raporlayıcıları vb. Dahil olmak üzere Crashlytics'in çalışmamasının birkaç nedeni vardır.


Hayır, int * x = NULL kullanıyorum; * x = 42; çökme raporunu görmek için kod. Dahası, uygulamam da farklı çekirdek veri modeli için çöküyor.
farhad rubel

1

DSYM dosyasını yüklemezseniz Crashlytics, rapor başarıyla yüklense bile kilitlenmenizi göstermez.

Derleme komut dosyanızı yalnızca CI sunucunuzda çalışacak şekilde ayarladıysanız, bu sorunla karşılaşabilirsiniz. Ardından, uygulamanızı xcode aracılığıyla telefonunuza kopyaladıysanız ve hata ayıklayıcıya eklenmeden çalıştırırsanız, eksik dSYM dosyası nedeniyle rapor yüklenecek ancak yok sayılacaktır.



1

Bazen günlüklerin görünmesi biraz zaman alır. 15-20 dakika sonra bulabiliyorum


0

Betik Çalıştırma Aşamasında, CrashLytics için ayrı bir Komut Dosyası Çalıştırma Aşaması olması gerektiğini düşündüğüm sorunlardan biri. Çalıştırma betiği ne zaman vardı

./Fabric.framework/run

Diğer komut dosyamın bazılarında her şey yolundaydı, CrashLytics günlük gösterisi raporu gönderildi, ancak web arayüzünde hiçbir şey yoktu.

Sadece Fabric run ile başka bir Run script aşaması eklediğimde, sihir gibi görünüyor :)

İlk denemem cocoapod'larla oldu, ama bu işe yaramadı. Tüm çerçeveyi ve işe yarayan ayrı bir çalıştırma komut dosyası aşamasını manuel olarak eklediğimde.


-1

Bu benim için çalıştı

İDevice üzerinde test yapıyorsanız, iDevice'i Xcode'unuzla çıkarın ve uygulamanızı çalıştırın. Şimdi, eğer kilitlenirse, kontrol panelinde güncellenecektir.


-3

Çalıştır komut dosyasını (Fabric için (crashlytics)) "Yalnızca yüklerken komut dosyası çalıştır" seçeneğinin seçimini kaldırarak çözdüm

görüntü açıklamasını buraya girin


Bu sadece sembolleri Crashlytics'e yükleyen komut dosyasıdır; Çökme raporlarının gönderilmemesi sorunu nasıl çözülür? Semboller yüklenmediğinde Crashlytics'i kullanmaktan kaçınmak için hangi adımları atmalısınız? Bu cevap yanıltıcı ve tamamen yanlış.
Droppy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.