| בחירת פלטפורמה: | 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יש ספרייה של dSYM שמכילה 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.