اگر اندروید دولوپر باشید قطعا کرش لیتیکس (crashlytics) به گوشتون خورده یا حتی ازش استفاده کردید و میدونید که چه قدر مهمه که بعد از لانچ شدن محصول ، از کرش های اپ روی گوشی یوزر ها مطلع باشیم .
وقتی در مورد کرش لیتیکس صحبت میکنیم اکثرا یاد سرویس معروف فایربیس (firebase) می افتیم
اما اگر با فایربیس کار کرده باشید میدونید که اکثر سرویس هاش برای ما تحریمه و همین تحریم ها مشکلات زیادی رو در راه اندازی و استفاده از خدماتش برای ما ایجاد میکنه .
شاید براتون پیش اومده باشه که زمان زیادی رو برای کانفیگ مثلا (فایربیس کرش لیتیکس) گذاشته باشید چون که فقط دیوایسی که باهاش تست میکنید vpn درست و حسابی نداشته .
یا حتی لاگ کرش ها درست ارسال نشده و مشکلات دیگه ای که در کانفلیکت لایبرری ها ممکنه پیش بیاد.
البته در قدرت فایربیس شکی نیست ، اما برای بیزینس های ما احتمالا گزینه ی مطمئنی نیست ...
برای ردیابی کرش ها سرویس ها زیادی وجود داره که میشه ازشون استفاده کرد مثل اینستاباگ ،سنتری ، آماروید و...
هر کدوم از این سرویس ها مزایا و شاید معایبی داشته باشن که با توجه به بیزینس خودتون باید گزینه مناسب رو انتخاب کنید .
در این مقاله من به معرفی App Metrica میپردازم که به نظرم برای کرش لیتیکس گزینه ی مناسب و بی دردسریه.
اپ متریکا یه سرویس روسیه (پس احتمال تحریم شدنش کم تره ?) که کار تیم قدرتمند یاندکسه (yandex) که موتور جستجوی yandex رو توسعه دادن .
طبق توضیحات خود سایت :
AppMetrica covers the three key features for discovering your app's performance - ad tracking, usage analytics and crash analytics.
اگر بخوام به طور خلاصه ویژگی های این سرویس رو معرفی کنم
خب تا اینجای کار با اپ متریکا آشنا شدیم حالا بریم سراغ هدف اصلی مقاله یعنی کرش لیتیکس
اول باید یه اکانت در یاندکس درست کنید . برای ساختن اکانت به این لینک برید .
حالا باید پروژتون رو در اپ متریکا ایجاد کنید . برای ساختن پروژتون به این لینک برید .
خب اینجا که توضیخ خاصی نداره
در صفحه بعد هم ایمیلتون رو وارد کنید تا نوتیف ها برای ایمیلتون ارسال بشه
اما صفحه بعدی
همون طور که میبینید یه Api key به ما داد . (حتما کپی کنیدش بعدا لازمش داریم) و پروفایل اپ ما ساخته شد.
خب حالا نوبت اضافه کردن لایبرری ها به پروژه اندرویدمونه .
کد زیر رو به گردل (سطح پروژه - build.gradle ) اظافه کنید.
dependencies { classpath ‘com.yandex.android:appmetrica-build-plugin:0.2.4’ }
حالا به سراغ گردل (سطح اپلیکیشن - ماژول app ) میریم .
اول پلاگین زیر رو اظافه کنید
apply plugin: 'appmetrica-plugin'
حالا خیلی آروم دیپندنسی رو هم اظافه می کنیم
dependencies { implementation ‘com.yandex.android:mobmetricalib:3.15.0’ }
داخل بلاک اندروید کد زیر رو هم اظافه کنید (دیگه تمومه)
//groovy android { appmetrica { postApiKey ="POST_API_KEY" mappingBuildTypes = ['release'] } }
// kotlin appmetrica { setPostApiKey( " Post_Api_Key" ) setMappingBuildTypes(listOf()) }
در اپ متریکا ما دوتا کلید داریم یکی api key (که هنگام تعریف پروژه بهمون داد و بعدا ازش استفاده میکنیم)
یکی هم post api key که باید داخل گردل ازش استفاده کنیم .
حالا این کلید ها کجان؟
داخل پروفایل اپتون در اپ متریکا به منوی setting برید اونجا میتونید هر دوتا کلید رو مشاهده کنید .
راستی مواظب کلید ها باشید ...
حالا در گردل post api key خودتون رو وارد کنید .
اگر که از ابزار هایی مـثل پروگارد استفاده می کنید (در واقع minifyEnabled =true)
حتما باید بیلد تایپ رو به mapping BuildTypes بدید . مثل این
mappingBuildTypes = ['release']
و اگر از پروگارد استفاده نمیکنید نیاز نیست که به mapping BuildTypes مقدار بدید .مثل این
mappingBuildTypes = ['']
اما چرا ؟ وقتی که از ابزار هایی مثل پروگارد استفاده میکنید کد اصطلاحا در هم ریخته میشه و هنگامی که کرش اتفاق می افته اپ متریکا احتیاج داره که کد رو مپ کنه تا لاگی که برای شما ارسال میشه خوانا باشه .
نکته مهم اینکه اگر پروگارد فعال باشه و یادتون بره mapper رو مقدار دهی کنید اپ متریکا بهتون ارور میده .
کار ما با گردل تموم شد حالا پروژه رو سینک کنید .
داخل پروژتون یه کلاس اپلیکیشن تعریف کنید (یادتون باشه که در manifest معرفیش کنید)
کد های زیر رو به onCreate کلاس اضافه کنید تا هنگام اجرای برنامه این کد ها هم اجرا بشن
override fun onCreate() { super.onCreate() // init AppMetrics and Activate for Crashlytics val config = YandexMetricaConfig.newConfigBuilder(Your_Api_Key) .withNativeCrashReporting(false) .withLocationTracking(false) .withAppVersion(Your_App_version) .build() YandexMetrica.activate(this, config) YandexMetrica.enableActivityAutoTracking(this) }
val config = YandexMetricaConfig.newConfigBuilder(Your_Api_Key)
تو این خط باید api key خودتون که هنگام تعریف اپ بهتون داد رو وارد کنید
.withNativeCrashReporting(false)
اگر از کد ها نیتیو استفاده می کنید مقدار true و در غیر این صورت false بدید
.withLocationTracking(false)
اگر که میخواهید از امکان لوکیشن ترک برای مشخص کردن موقعیت مکانی دیوایس هایی که کرش روی اونا اتفاق افتاده استفاده کنید true و در غیر این صورت false بدهید
اگر true دادید یادتون باشه که permission location رو هم باید در منیفست تعریف کنید
<manifest> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <application>...</application> </manifest>
.withAppVersion(Your_App_version)
ورژن اپ خودتون رو هم اینجا وارد کنید .
کار ما تموم شد ...
حالا اپ خودتون رو اجرا کنید ...
لاگ برنامه رو چک کنید اگر با اروری مواجه نشدید یعنی کارتون رو درست انجام دادید .
(اتفاق های خیلی بد . بدجورررررررررر ?)
اگر کلید هارو اشتباه یا جا به جا وارد کنید حین اجرای برنامه بهتون ارور میده و باید اصلاحشون کنید .
خیلی راحته یه اکسپشن در برنامه ایجاد کنید تا حین اجرا کرش کنه بعد پروفایل اپتون رو چک کنید تا ببینید کرش ریپورت میشه یا نه
راستی یه نکته مهم اینکه بعضی وقت ها یه مدتی طول میکشه تا کرش ها ریپورت بشه پس عجله نکنید ..
امیدوارم که این مقاله براتون مفید بوده باشه . سعی کردم بیش تر نکاتی که لازمه رو بگم ، اگر شما هم دیتایی داشتید که نگفته بودم تو کامنت برامون بنویسید .