خرابیها و ANRها در اندروید یک ردیابی پشته ایجاد میکنند، که یک عکس فوری از توالی توابع تودرتو است که در بازی شما تا لحظه خراب شدن خوانده میشود. این عکس های فوری می تواند به شما در شناسایی و رفع هر گونه مشکل در منبع کمک کند.
با این حال، وقتی بازی خود را با Unity در حالت انتشار میسازید، نمادها با APK بسته نمیشوند. اگر بازی شما خراب شود یا دارای ANR باشد، پشته تماس فقط آدرس حافظه را نشان می دهد.
به عنوان مثال:
05-26 18:06:51.311: A/libc(26986): Fatal signal 11 (SIGSEGV) at 0x000004e4 (code=1), thread 27024 (Worker Thread) 05-26 18:06:51.411: I/DEBUG(242): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 05-26 18:06:51.411: I/DEBUG(242): Build fingerprint: 'Xiaomi/cancro_wc_lte/cancro:4.4.4/KTU84P/V6.7.1.0.KXDCNCH:user/release-keys' 05-26 18:06:51.411: I/DEBUG(242): Revision: '0' 05-26 18:06:51.411: I/DEBUG(242): pid: 26986, tid: 27024, name: Worker Thread >>> com.u.demo <<< 05-26 18:06:51.411: I/DEBUG(242): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 000004e4 I/DEBUG(242): backtrace: I/DEBUG(242): #00 pc 006d4960 /data/app-lib/com.u.demo-1/libunity.so I/DEBUG(242): #01 pc 006d4c0c /data/app-lib/com.u.demo-1/libunity.so I/DEBUG(242): #02 pc 006d4c0c /data/app-lib/com.u.demo-1/libunity.so I/DEBUG(242): #03 pc 006d4c0c /data/app-lib/com.u.demo-1/libunity.so I/DEBUG(242): #04 pc 006d4c0c /data/app-lib/com.u.demo-1/libunity.so I/DEBUG(242): #05 pc 001c5510 /data/app-lib/com.u.demo-1/libunity.so I/DEBUG(242): #06 pc 001c595c /data/app-lib/com.u.demo-1/libunity.so I/DEBUG(242): #07 pc 001c4ec0 /data/app-lib/com.u.demo-1/libunity.so I/DEBUG(242): #08 pc 0043a05c /data/app-lib/com.u.demo-1/libunity.so I/DEBUG(242): #09 pc 0000d248 /system/lib/libc.so (__thread_entry+72) I/DEBUG(242): #10 pc 0000d3e0 /system/lib/libc.so (pthread_create+240)
Google Play از آپلود فایل نمادهای اشکال زدایی برای هر نسخه از برنامه شما در Play Console پشتیبانی می کند. این کار تجزیه و تحلیل و رفع خرابی ها و ANR ها را آسان تر می کند.
از Unity 2020.3 و بالاتر، میتوانید دستورالعملهای Unity را برای تولید نمادهای Android دنبال کنید و سپس فایل نمادسازی را در کنسول Google Play بارگذاری کنید تا یک رد پشته قابل خواندن برای انسان را در داشبورد Android Vitals ببینید.
در غیر این صورت، میتوانید مقاله خرابی Symbolicate Android را از Unity دنبال کنید تا به صورت دستی stack trace را حل کنید یا فایلهای نماد را برای نسخههای پایینتر Unity ایجاد کنید.