
iPhone Crash Log Nedir ve Nasıl Okunur?
iPhone crash log : iPhone cihazlarda oluşan crash log, uygulamaların hangi nedenle çöktüğünü anlamak için kullanılan son derece kritik tanılama kayıtlarıdır. Özellikle geliştiriciler, teknik editörler ve sorun analizcileri tarafından detaylı şekilde incelenir. Bu yazıda iOS crash loglarının mimarisi, içerdiği teknik alanlar, nasıl çözümleneceği ve gerçek crash log parça örnekleriyle birlikte tam kapsamlı bir inceleme bulacaksınız.
İsterseniz bu konu hakkında Apple Türk Forumların da yorum yazabilirsiniz.
iPhone Crash Logları Nerede Bulunur
iOS tüm çökmeleri arka planda otomatik olarak kaydeder. Crash logları şu adım ile bulunabilir:
- Ayarlar
- Gizlilik ve Güvenlik
- Analiz ve İyileştirmeler
- Analiz Verileri
Burada .ips uzantılı dosyalar crash log kayıtlarıdır.

Crash Logların Temel Yapısı
Bir iPhone crash logu genellikle şu alanlardan oluşur:
- Incident Identifier
- CrashReporter Key
- Hardware Model
- OS Version
- Exception Type
- Exception Subtype
- Termination Reason
- Thread Backtrace
Örnek iOS Crash Log Parçası
Incident Identifier: 8F2C3E1D-86FE-44B8-9F5B-AB8C3B9A02D4 CrashReporter Key: a9b4f920e4aa12b4432f0e82f9e2c10bf98d23df Hardware Model: iPhone14,7 OS Version: iOS 17.2 (21C52) Process: MyApp [231] Identifier: com.example.myapp Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x0000000000000000 Termination Reason: SIGNAL 11 Segmentation fault
Bu log ne anlatıyor
Buradaki hata EXC_BAD_ACCESS türündedir. Bu genellikle:
- Boş veya yok edilmiş objeye erişim
- NULL pointer kullanımı
- Bellek bozulması
- Objeye yanlış mesaj gönderilmesi
Backtrace Yorumlama
Crash logların en kritik bölümü thread backtrace kısmıdır. Uygulamanın hangi satırda çöktüğünü gösterir.
Thread 6 Crashed: 0 libobjc.A.dylib 0x1a3f90d98 objc_msgSend + 24 1 MyApp 0x102b34870 0x102b00000 + 216944 2 MyApp 0x102b34c10 0x102b00000 + 218768 3 MyApp 0x102b1d0f0 0x102b00000 + 118256 4 libsystem_pthread.dylib 0x1f55b1260 _pthread_start + 148 5 libsystem_pthread.dylib 0x1f55acdc8 thread_start + 8
Teknik Yorumlama
İlk satırdaki objc_msgSend çağrısı genellikle uygulamanın serbest bırakılmış veya geçersiz bir objeye mesaj göndermeye çalıştığını gösterir. Bu hatalar genellikle:
- Asenkron çalışan bir thread
- Delegate veya callback fonksiyonu
- Zamanlaması yanlış yapılmış UI güncellemesi
içerisinde ortaya çıkar.
Symbolication Nedir
Crash logdaki adresler doğrudan anlamlı değildir. Bu adreslerin gerçek fonksiyon adlarına çevrilmesine symbolication denir.
Gerekli Dosyalar
- dSYM dosyası
- Aynı build numarasına sahip uygulama
- Xcode veya symbolicatecrash aracı
Örnek Symbolication Sonucu
Thread 6 Crashed: 0 libobjc.A.dylib objc_msgSend 1 MyApp -[HomeViewController updateData:] 2 MyApp -[HomeViewController reloadUI] 3 MyApp -[HomeViewController viewDidAppear:]
Bu çıktıda fonksiyonların çözümlenmiş hali görülüyor. Hatanın updateData: fonksiyonu içinde olduğu çok net ortaya çıkmıştır.
Jetsam Bellek Hataları
iOS uygulamaları bazen çökmez, sistem tarafından zorla kapatılır. Buna Jetsam denir.
Jetsam Örnek Log
jetsam_event: "memory-pressure" pages: 182934 reason: per-process-limit
Bu durum aşırı RAM kullanımı anlamına gelir.
iPhone Crash Log Analizi İçin Adım Adım Rehber
- Crash log dosyasını .ips olarak dışa aktar
- İlk olarak Exception Type alanını incele
- Termination Reason değerine bak
- Hangi threadin çöktüğünü bul
- Backtrace içindeki ilk uygulama fonksiyonunu belirle
- Sembolik adres çözümlemesi yap
Geliştiriciler İçin İpuçları
- Memory leak tespit etmek için Instruments kullan
- Thread race condition kontrolü yap
- UI güncellemelerinin sadece ana threadde olduğundan emin ol
- Asenkron işlemlerde state management kullan
Kaynaklar
- Apple — Diagnosing issues using crash reports and device logs.
- Apple — Analyzing a crash report & WWDC video (crash analysis).



