| בחירת פלטפורמה: | iOS+ Android Flutter Unity |
כברירת מחדל, מערכת Firebase Crashlytics מעבדת באופן אוטומטי את קובצי סמלי ניפוי הבאגים (dSYM) כדי לספק דוחות קריסה קריאים לאנשים שעברו ביטול ערפול קוד. בדרך כלל מגדירים את ההתנהגות הזו במהלך ההגדרה הראשונית של Crashlytics באפליקציה, במיוחד על ידי הוספת סקריפט הרצה שמעלה באופן אוטומטי קובצי dSYM במהלך שלב ה-build של האפליקציה.
לצערנו, יש כמה מקרים שבהם ההעלאה האוטומטית של קובצי dSYM עלולה להיכשל. במדריך הזה מפורטות כמה דרכים לפתור בעיות שבהן Crashlytics לא מצליח לאתר את קובצי ה-dSYM של האפליקציה.
מוודאים ש-Xcode יכול לעבד קובצי dSYM באופן אוטומטי ולהעלות את הקבצים
כשמגדירים את Crashlytics באפליקציה, מגדירים סקריפט הרצה כדי לעבד באופן אוטומטי את קובצי ה-dSYM ולהעלות את הקבצים.
חשוב לוודא שההגדרות של הסקריפט להרצת Crashlytics מעודכנות בהתאם לדרישות החדשות שהתחילו ב-Xcode 15. אם ההגדרות לא מעודכנות, יכול להיות שתופיע השגיאה הבאה:
error: Info.plist Error Unable to process Info.plist at path ....
במיוחד, ב-Xcode 15 ואילך צריך לספק קבוצה מלאה יותר של מיקומי קבצים. בסקריפט ההרצה של Crashlytics (firebase-ios-sdk/Crashlytics/run), ודאו שההגדרות הבאות קיימות:
לוחצים על הכרטיסייה Build Phases ומרחיבים את הקטע Run Script.
בקטע Input Files, מוודאים שיש לכם את הנתיבים למיקומים של הקבצים הבאים:
${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
אם בהגדרות ה-build של הפרויקט יש את$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)
ENABLE_USER_SCRIPT_SANDBOXING=YESו-ENABLE_DEBUG_DYLIB=YES, צריך לכלול את הקוד הבא:${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}.debug.dylib
איך בודקים אם Xcode יוצר קובצי dSYM
ברוב המקרים, קובצי dSYM חסרים כי Xcode פשוט לא מייצר אותם. אם ההעלאה נכשלת, Crashlytics מציג את ההתראה "Missing dSYM" במסוף Firebase. אם קיבלתם את ההתראה הזו, קודם כל צריך לבדוק ש-Xcode יוצר את ה-dSYM הנכון לכל build:
פותחים את הפרויקט ב-Xcode ובוחרים את קובץ הפרויקט ב-Xcode Navigator.
בוחרים את יעד ה-build הראשי.
פותחים את הכרטיסייה Build Settings (הגדרות ה-build) של היעד ולוחצים על All (הכול).
חיפוש של
debug information format.מגדירים את Debug Information Format ל-DWARF with dSYM File לכל סוגי ה-build.
בונים מחדש את האפליקציה.
עכשיו דוחות הקריסה אמורים להופיע במרכז הבקרה של Crashlytics. אם הבעיה נמשכת או שנתקלתם בשגיאות אחרות, נסו לאתר את קובצי ה-dSYM ולהעלות אותם ל-Crashlytics באופן ידני.
איתור קובצי dSYM במחשב מקומי
מריצים את הפקודה הבאה כדי להציג את כל מזהי ה-UUID של קובצי ה-dSYM במחשב, ומחפשים את קובץ ה-dSYM החסר:
mdfind -name .dSYM | while read -r line; do dwarfdump -u "$line"; done
אחרי שמוצאים את קובץ ה-dSYM, מעלים אותו ידנית אל Crashlytics.
אם הפקודה mdfind לא מחזירה תוצאות, אפשר לחפש בספרייה Products שבה נמצא הקובץ .app (כברירת מחדל, הספרייה Products נמצאת ב-Derived Data). אם האפליקציה הועברה לסביבת הייצור, אפשר גם לחפש את קובץ ה-dSYM שלה בספרייה .xcarchive בדיסק:
ב-Xcode, פותחים את החלון Organizer ובוחרים את האפליקציה מהרשימה. ב-Xcode תוצג רשימה של ארכיונים של הפרויקט.
לוחצים על ארכיון תוך כדי לחיצה על מקש Control כדי להציג אותו ב-Finder. לוחצים עליו שוב תוך כדי לחיצה על מקש Control, ואז לוחצים על Show Package Contents (הצגת תוכן החבילה).
בתוך
.xcarchiveיש ספריית dSYMs שמכילה קובצי dSYM שנוצרו כחלק מתהליך ההעברה לארכיון של Xcode.
העלאת קובצי dSYM
Crashlytics תומך בכמה דרכים להעלאת קובצי dSYM, באופן אוטומטי או באופן ידני.
(מומלץ) עיבוד אוטומטי של קובצי ה-dSYM והעלאת הקבצים
כשמגדירים את Crashlytics בפעם הראשונה, בדרך כלל מגדירים את ההעלאה האוטומטית הזו לאפליקציה. אבל אם ההעלאות האוטומטיות נכשלות, צריך לבדוק שההגדרה נכונה.
העלאה ידנית של קובצי dSYM
אם ההעלאות האוטומטיות נכשלות, אתם יכולים להעלות את קובצי ה-dSYM באופן ידני באחת מהדרכים הבאות.
אפשרות 1: משתמשים בממשק "גרירה ושחרור" במסוף Firebase כדי להעלות קובץ ZIP שמכיל את קובצי ה-dSYM (עוברים אל DevOps & Engagement > Crashlytics לוח הבקרה > הכרטיסייה dSYMs).
אפשרות 2: משתמשים בסקריפט
upload-symbolsשאפשר להפעיל מכל מקום בתהליך ה-build כדי לבצע העלאה ידנית של קובצי ה-dSYM. כדי להריץ את הסקריפטupload-symbols, אפשר להשתמש באחת מהאפשרויות הבאות:אפשרות א': כוללים את השורה הבאה בתהליך ה-build:
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.