Crashlytics kontrol panelinden okunabilir kilitlenme raporları alın


Firebase Crashlytics, varsayılan olarak hata ayıklama sembolü (dSYM) dosyalarınızı otomatik olarak işleyerek size kodu gösterilmiş ve okunabilir kilitlenme raporları sunar. Bu davranışı genellikle Crashlytics uygulamanızın ilk kurulumu sırasında yapılandırırsınız. Özellikle, uygulamanızın derleme aşamasında dSYM dosyalarını otomatik olarak yükleyen bir çalıştırma komut dosyası ekleyerek bu işlemi yapabilirsiniz.

Maalesef otomatik dSYM dosyası yüklemenizin başarısız olmasına neden olabilecek birkaç durum vardır. Bu kılavuzda, Crashlytics uygulamanızın dSYM dosyalarını bulamadığında sorun gidermeye yönelik bazı yöntemler açıklanmaktadır.

Xcode'un dSYM'leri otomatik olarak işleyebildiğinden ve dosyaları yükleyebildiğinden emin olun.

Uygulamanızda Crashlytics'ı ayarlarken dSYM'leri otomatik olarak işlemek ve dosyaları yüklemek için bir çalıştırma komut dosyası yapılandırdınız.

Crashlytics çalıştırma komut dosyası yapılandırmanızın, Xcode 15 ile başlayan yeni şartlara uygun olduğundan emin olun. Yapılandırmanız güncel değilse şu hatayı alabilirsiniz:
error: Info.plist Error Unable to process Info.plist at path ....

Özellikle Xcode 15 ve sonraki sürümlerde, daha eksiksiz bir dosya konumu grubu sağlamanız gerekir. Crashlytics çalıştırma komut dosyanız (firebase-ios-sdk/Crashlytics/run) için aşağıdaki kurulumu yaptığınızdan emin olun:

  1. Build Phases (Derleme Aşamaları) sekmesini tıklayın ve ardından Run Script (Komut Dosyası Çalıştır) bölümünü genişletin.

  2. Giriş Dosyaları bölümünde, aşağıdaki dosyaların konumlarının yollarını eklediğinizden emin olun:

    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist
    $(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
    Proje derleme ayarlarınızda ENABLE_USER_SCRIPT_SANDBOXING=YES ve ENABLE_DEBUG_DYLIB=YES varsa aşağıdakileri ekleyin:
    ${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib

Xcode'un dSYM'ler oluşturup oluşturmadığını kontrol edin

Çoğu zaman dSYM dosyaları, Xcode'un bu dosyaları oluşturmaması nedeniyle eksik kalır. Yükleme başarısız olduğunda Crashlytics, Firebase konsolunda "dSYM eksik" uyarısı gösterir. Bu uyarıyı alırsanız öncelikle Xcode'un her derleme için doğru dSYM'yi oluşturduğundan emin olun:

  1. Projenizi Xcode'da açın ve Xcode Navigator'da proje dosyasını seçin.

  2. Ana derleme hedefinizi seçin.

  3. Hedefin Build Settings (Derleme Ayarları) sekmesini açın ve All (Tümü) seçeneğini tıklayın.

  4. debug information format araması

  5. Tüm derleme türleriniz için Hata Ayıklama Bilgileri Biçimi'ni dSYM Dosyası ile DWARF olarak ayarlayın.

  6. Uygulamanızı yeniden oluşturun.

Kilitlenme raporlarınız artık Crashlytics kontrol panelinde görünmelidir. Sorun devam ederse veya başka hatalarla karşılaşırsanız dSYM'lerinizi bulmayı ve bunları Crashlytics'a manuel olarak yüklemeyi deneyin.

dSYM'lerinizi yerel bir makinede bulma

Makinenizdeki tüm dSYM'lerin UUID'lerini görüntülemek ve eksik dSYM'yi aramak için aşağıdaki komutu çalıştırın:

mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done

dSYM'yi bulduktan sonra Crashlytics'ye manuel olarak yükleyin. mdfind komutu herhangi bir sonuç döndürmezse .app dosyanızın bulunduğu Products dizinine bakabilirsiniz (varsayılan olarak Products dizini Derived Data konumundadır). Uygulamanız üretime sunulduysa diskin .xcarchive dizininde de dSYM'sini arayabilirsiniz:

  1. Xcode'da Organizer penceresini açın ve listeden uygulamanızı seçin. Xcode, projenizin arşivlerinin listesini gösterir.

  2. Bir arşivi Finder'da görüntülemek için Control tuşunu basılı tutarak arşivi tıklayın. Dosyayı tekrar kontrol tuşunu basılı tutarak tıklayın ve Paket İçeriğini Göster'i tıklayın.

  3. .xcarchive içinde, Xcode'un arşivleme sürecinin bir parçası olarak oluşturulan dSYM'leri içeren bir dSYMs dizini bulunur.

dSYM'lerinizi yükleyin

Crashlytics, dSYM dosyalarınızı otomatik veya manuel olarak yüklemenin birden fazla yolunu destekler.

(Önerilir) dSYM'lerinizi otomatik olarak işleme ve dosyaları yükleme

Crashlytics'yı ilk kez ayarladığınızda büyük olasılıkla uygulamanız için bu otomatik yükleme davranışını yapılandırdınız. Ancak otomatik yüklemeler başarısız oluyorsa yapılandırmanızın doğru olduğundan emin olun.

dSYM dosyalarınızı manuel olarak yükleme

Otomatik yüklemeler başarısız oluyorsa aşağıdaki seçeneklerden birini kullanarak dSYM dosyalarınızı manuel olarak yükleyebilirsiniz.

  • 1. seçenek: dSYM dosyalarınızı içeren bir zip dosyası yüklemek için konsol tabanlı "Sürükle ve Bırak" seçeneğini kullanın (Firebase konsolu > Crashlytics > dSYMs sekmesine gidin).

  • 2. seçenek: dSYM dosyalarınızı manuel olarak yüklemek için derleme sürecinizin herhangi bir yerinden çağırabileceğiniz upload-symbols komut dosyasını kullanın. upload-symbols komut dosyasını çalıştırmak için aşağıdaki seçeneklerden birini kullanın:

    • 1. seçenek: Derleme sürecinize aşağıdaki satırı ekleyin:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • B seçeneği: Komut dosyasını doğrudan terminalinizden çalıştırın:

      /PATH/TO/PODS/DIRECTORY/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p ios /PATH/TO/dSYMs

    Bu komut dosyasıyla ilgili kullanım notları ve ek talimatlar için upload-symbols parametresiyle --help komutunu çalıştırın.