הוספת סמלים מקוריים לגרסה היציבה

כברירת מחדל, ספריות של קוד מקורי מוסרות בגרסאות build של האפליקציה. ההסרה הזו כוללת הסרה של טבלת הסמלים ומידע על ניפוי באגים שמכילות כל הספריות המקומיות שבהן האפליקציה משתמשת. הסרה של ספריות של קוד מקורי מובילה לחיסכון משמעותי בגודל, אבל אי אפשר לאבחן קריסות במסוף Google Play בגלל המידע החסר (כמו שמות של כיתות ופונקציות). כדי לנפות באגים של קריסות, צריך לכלול קובץ סמלי ניפוי באגים באפליקציה ב-Play Console.

העלאת קובץ סמלים

ב-Google Play Console, דיווחים על קריסות של קוד מקורי מופיעים בקטע נתונים חיוניים ל-Android. אפשר ליצור ולהעלות קובץ סמלים מקומיים לניפוי באגים לאפליקציה בכמה שלבים. הקובץ הזה מאפשר להציג ב-Android Vitals מעקב סטאק של קריסה מקומי (שכולל שמות של כיתות ופונקציות) שמתומלל לסמלים, כדי לעזור לכם לנפות באגים באפליקציה בסביבת הייצור. השלבים האלה משתנים בהתאם לגרסה של פלאגין Android Gradle שבו נעשה שימוש בפרויקט, ולפי הבחירה שלכם להשתמש ב-Android App Bundle (מומלץ) או ב-APK.

פלאגין Android Gradle בגרסה 4.1 ואילך

אם בפרויקט שלכם נוצר Android App Bundle ‏ (AAB), תוכלו להגדיר את ה-build כך שיכלול באופן אוטומטי את קובץ הסמלים המקומיים לניפוי באגים ב-AAB, כדי שהוא יועלה ל-Play Console כשתפרסמו את האפליקציה. כדי לכלול את הקובץ הזה ב-builds של הגרסה המשוחררת, מוסיפים את הקטע הבא לקובץ build.gradle.kts של האפליקציה:

android.buildTypes.release.ndk.debugSymbolLevel = { SYMBOL_TABLE | FULL }

בוחרים את רמת הסמל של ניפוי הבאגים מבין האפשרויות הבאות:

  • משתמשים ב-SYMBOL_TABLE כדי לקבל שמות של פונקציות ב-Play Console, בנתוני המעקב אחרי סטאק (stack trace) שעבר סימבוליזציה. ברמה הזו יש תמיכה במצבות.
  • אפשר להשתמש ב-FULL כדי לקבל שמות של פונקציות, קבצים ומספרי שורות ב-Play Console, בנתוני מעקב הסטאק הסמלי.

אם הפרויקט שלכם יוצר קובץ APK, תוכלו להשתמש בהגדרה android.buildTypes.release.ndk.debugSymbolLevel שצוינה למעלה כדי ליצור את קובץ הסמלים לניפוי באגים באופן נפרד. מעלים באופן ידני את הקובץ של סמלי ניפוי הבאגים ל-Google Play Console (התהליך דומה להעלאת קובץ מיפוי לצורך ביטול ההצפנה של נתוני סטאק). כחלק מתהליך ה-build, הפלאגין של Android Gradle יוצר את הקובץ הזה במיקום הבא בפרויקט:

app/build/outputs/native-debug-symbols/<var>variant-name</var>/native-debug-symbols.zip

הפלאגין של Android Gradle בגרסה 4.0 ואילך (ומערכות build אחרות)

כחלק מתהליך ה-build, הפלאגין של Android Gradle שומר עותק של הספריות ללא הסרת הקוד הלא נדרש בספריית הפרויקט. מבנה הספריות דומה לזה:

app/build/intermediates/cmake/universal/release/obj/
├── armeabi-v7a/
│   ├── libgameengine.so
│   ├── libothercode.so
│   └── libvideocodec.so
├── arm64-v8a/
│   ├── libgameengine.so
│   ├── libothercode.so
│   └── libvideocodec.so
├── x86/
│   ├── libgameengine.so
│   ├── libothercode.so
│   └── libvideocodec.so
└── x86_64/
    ├── libgameengine.so
    ├── libothercode.so
    └── libvideocodec.so
  1. מעבירים את התוכן של הספרייה הזו לקובץ zip:

    cd app/build/intermediates/cmake/universal/release/obj
    zip -r symbols.zip .
    
  2. מעלים את הקובץ symbols.zip באופן ידני ל-Google Play Console.