קבל דוחות קריאות קריא במרכז השליטה של ​​Crashlytics

כברירת מחדל, Firebase Crashlytics מעבד אוטומטית את קובצי סמל ניפוי הבאגים שלך (dSYM) כדי לתת לך דוחות קריסה מעורפלים וניתנים לקריאה על ידי אדם. בדרך כלל אתה מגדיר התנהגות זו במהלך ההגדרה הראשונית של Crashlytics באפליקציה שלך, במיוחד על ידי הוספת סקריפט הפעלה שמעלה אוטומטית קבצי dSYM במהלך שלב הבנייה של האפליקציה שלך.

למרבה הצער, ישנם כמה מקרים שעלולים לגרום לכשל בהעלאת קבצי dSYM אוטומטית. מדריך זה מספק כמה דרכים לפתרון בעיות כאשר Crashlytics לא מצליח לאתר את קבצי ה-dSYM של האפליקציה שלך.

ודא ש-Xcode יכול לעבד אוטומטית dSYMs ולהעלות את הקבצים

בעת הגדרת Crashlytics באפליקציה שלך, הגדרת סקריפט הפעלה לעיבוד אוטומטי של dSYMs ולהעלות את הקבצים.

ודא שהתצורה שלך עבור סקריפט הריצה של Crashlytics מעודכנת בדרישות החדשות שהתחילו עם Xcode 15. אם התצורה שלך לא מעודכנת, ייתכן שאתה מקבל את השגיאה הבאה:
error: Info.plist Error Unable to process Info.plist at path ... .

באופן ספציפי, Xcode 15 ואילך דורש שתספק סט שלם יותר של מיקומי קבצים. עבור סקריפט ההפעלה של Crashlytics ( firebase-ios-sdk/Crashlytics/run ), ודא שיש לך את ההגדרה הבאה:

  1. לחץ על הכרטיסייה שלבי בנייה ולאחר מכן הרחב את הקטע הרץ סקריפט .

  2. בקטע קבצי קלט , ודא שיש לך את הנתיבים עבור המיקומים של הקבצים הבאים:

    ${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
    $(BUILT_PRODUCTS_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist
    $(BUILT_PRODUCTS_DIR)/$(EXECUTABLE_PATH)

בדוק אם Xcode מייצר dSYMs

לעתים קרובות יותר מאשר לא, קבצי dSYM נעלמים מכיוון ש-Xcode פשוט לא מייצר אותם. כאשר העלאה נכשלת, Crashlytics מציגה התראה "חסר dSYM" במסוף Firebase. אם אתה מקבל את ההתראה הזו, תחילה בדוק ש-Xcode מייצר את ה-dSYM הנכון עבור כל בנייה:

  1. פתח את הפרויקט שלך ב-Xcode, ולאחר מכן בחר את קובץ הפרויקט ב-Xcode Navigator.

  2. בחר את יעד הבנייה הראשי שלך.

  3. פתח את הכרטיסייה הגדרות בנייה של היעד ולאחר מכן לחץ על הכל .

  4. חפש debug information format .

  5. הגדר את פורמט מידע ניפוי באגים ל- DWARF עם קובץ dSYM עבור כל סוגי הבנייה שלך.

  6. בנה מחדש את האפליקציה שלך.

דוחות הקריסה שלך אמורים להופיע כעת בלוח המחוונים של Crashlytics . אם הבעיה נמשכת או שאתה נתקל בשגיאות אחרות, נסה לאתר את ה-dSYMs שלך ולהעלות אותם ל-Crashlytics באופן ידני .

אתר את ה-dSYMs שלך במחשב מקומי

הפעל את הפקודה הבאה כדי להציג את כל UUIDs של dSYMs במחשב שלך וחפש את dSYM החסר:

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

לאחר שתמצא את ה-dSYM, העלה אותו ידנית ל-Crashlytics . אם הפקודה mdfind לא מחזירה תוצאות כלשהן, אתה יכול לחפש בספריית Products היכן .app שלך נמצאת (כברירת מחדל, ספריית Products ממוקמת בנתונים Derived Data ). אם האפליקציה שלך שוחררה לייצור, תוכל גם לחפש את ה-dSYM שלה בספריית .xcarchive בדיסק:

  1. ב-Xcode, פתח את חלון הארגונית ולאחר מכן בחר את האפליקציה שלך מהרשימה. Xcode מציג רשימה של ארכיונים עבור הפרויקט שלך.

  2. לחץ לחיצה על Control והקש על ארכיון כדי להציג אותו ב-Finder. לחץ עליו שוב ולאחר מכן לחץ על הצג תוכן חבילה .

  3. בתוך .xcarchive היא ספריית dSYMs המכילה dSYMs שנוצרו כחלק מתהליך הארכיון של Xcode.

העלה את ה-dSYMs שלך

Crashlytics תומכת במספר דרכים להעלאת קבצי dSYMs שלך, באופן אוטומטי או ידני .

(מומלץ) עבד אוטומטית את ה-dSYMs שלך והעלה את הקבצים

כאשר הגדרתם לראשונה את Crashlytics, סביר להניח שהגדרתם את התנהגות ההעלאה האוטומטית הזו עבור האפליקציה שלכם. עם זאת, אם העלאות אוטומטיות נכשלות, ודא שהתצורה שלך נכונה .

העלה ידנית את קבצי ה-dSYM שלך

אם ההעלאות האוטומטיות נכשלות, תוכל להעלות ידנית את קובצי ה-dSYM שלך באמצעות אחת מהאפשרויות הבאות.

  • אפשרות 1 : השתמש באפשרות "גרור ושחרר" המבוססת על המסוף כדי להעלות קובץ zip המכיל את קובצי ה-dSYM שלך (עבור למסוף Firebase > Crashlytics > הכרטיסייה dSYMs ).

  • אפשרות 2 : השתמש בסקריפט upload-symbols שאתה יכול לקרוא לו מכל מקום בתהליך הבנייה שלך כדי להעלות ידנית את קבצי ה-dSYM שלך. כדי להפעיל את סקריפט upload-symbols , השתמש באחת מהאפשרויות הבאות:

    • אפשרות א' : כלול את השורה הבאה בתהליך הבנייה שלך:

      find dSYM_DIRECTORY -name "*.dSYM" | xargs -I \{\} $PODS_ROOT/FirebaseCrashlytics/upload-symbols -gsp /PATH/TO/GoogleService-Info.plist -p PLATFORM \{\}
    • אפשרות ב' : הפעל את הסקריפט ישירות מהמסוף שלך:

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

    להערות שימוש והוראות נוספות לגבי סקריפט זה, הפעל upload-symbols עם הפרמטר --help .