כברירת מחדל, 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
), ודא שיש לך את ההגדרה הבאה:
לחץ על הכרטיסייה שלבי בנייה ולאחר מכן הרחב את הקטע הרץ סקריפט .
בקטע קבצי קלט , ודא שיש לך את הנתיבים עבור המיקומים של הקבצים הבאים:
${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)
בדוק אם Xcode מייצר dSYMs
לעתים קרובות יותר מאשר לא, קבצי dSYM נעלמים מכיוון ש-Xcode פשוט לא מייצר אותם. כאשר העלאה נכשלת, Crashlytics מציגה התראה "חסר dSYM" במסוף Firebase. אם אתה מקבל את ההתראה הזו, תחילה בדוק ש-Xcode מייצר את ה-dSYM הנכון עבור כל בנייה:
פתח את הפרויקט שלך ב-Xcode, ולאחר מכן בחר את קובץ הפרויקט ב-Xcode Navigator.
בחר את יעד הבנייה הראשי שלך.
פתח את הכרטיסייה הגדרות בנייה של היעד ולאחר מכן לחץ על הכל .
חפש
debug information format
.הגדר את פורמט מידע ניפוי באגים ל- DWARF עם קובץ dSYM עבור כל סוגי הבנייה שלך.
בנה מחדש את האפליקציה שלך.
דוחות הקריסה שלך אמורים להופיע כעת בלוח המחוונים של 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
בדיסק:
ב-Xcode, פתח את חלון הארגונית ולאחר מכן בחר את האפליקציה שלך מהרשימה. Xcode מציג רשימה של ארכיונים עבור הפרויקט שלך.
לחץ לחיצה על Control והקש על ארכיון כדי להציג אותו ב-Finder. לחץ עליו שוב ולאחר מכן לחץ על הצג תוכן חבילה .
בתוך
.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
.