| בחירת פלטפורמה: | iOS+ Android Flutter Unity |
כברירת מחדל, Firebase Crashlytics מעבד באופן אוטומטי את קובצי סמלי הניפוי באגים (dSYM) כדי לספק לכם דוחות קריסה מפוענחים וקריאים. בדרך כלל מגדירים את ההתנהגות הזו במהלך ההגדרה הראשונית של Crashlytics באפליקציה, במיוחד על ידי הוספת סקריפט הפעלה שמעלה באופן אוטומטי קובצי dSYM במהלך שלב הבנייה של האפליקציה.
לצערנו, יש כמה מקרים שעלולים לגרום לכך שההעלאה האוטומטית של קובצי 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
אם יש לכם$(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 מוצגת התראה 'חסר dSYM' במסוף Firebase. אם מופיעה ההתראה הזו, קודם צריך לבדוק ש-Xcode יוצר את קובץ ה-dSYM הנכון לכל גרסת build:
פותחים את הפרויקט ב-Xcode, ואז בוחרים את קובץ הפרויקט ב-Xcode Navigator.
בוחרים את יעד ה-build הראשי.
פותחים את הכרטיסייה Build Settings (הגדרות בנייה) של יעד הבנייה ולוחצים על All (הכול).
חיפוש של
debug information format.מגדירים את האפשרות Debug Information Format (פורמט מידע לניפוי באגים) לערך DWARF with dSYM File (DWARF עם קובץ dSYM) לכל סוגי ה-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 ואז על הצגת תוכן החבילה.
בתוך
.xcarchiveיש ספריית dSYMs שמכילה dSYMs שנוצרו כחלק מתהליך הארכוב של Xcode.
העלאת קובצי ה-dSYM
Crashlytics תומך בכמה דרכים להעלאת קובצי ה-dSYM, אוטומטית או ידנית.
(מומלץ) עיבוד אוטומטי של קובצי ה-dSYM והעלאה שלהם
כשמגדירים את Crashlytics בפעם הראשונה, סביר להניח שמגדירים את התנהגות ההעלאה האוטומטית הזו לאפליקציה. עם זאת, אם ההעלאות האוטומטיות נכשלות, צריך לבדוק שההגדרה נכונה.
העלאה ידנית של קובצי dSYM
אם ההעלאות האוטומטיות נכשלות, אתם יכולים להעלות את קובצי ה-dSYM באופן ידני באמצעות אחת מהאפשרויות הבאות.
אפשרות 1: משתמשים בממשק 'גרירה ושחרור' במסוף Firebase כדי להעלות קובץ ZIP שמכיל את קובצי ה-dSYM (עוברים אל DevOps & Engagement > Crashlytics dashboard > הכרטיסייה 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.