| প্ল্যাটফর্ম নির্বাচন করুন: | iOS+ অ্যান্ড্রয়েড ফ্লাটার ইউনিটি |
Crashlytics গ্রেডল প্লাগইনটি স্বয়ংক্রিয়ভাবে শনাক্ত করতে পারে কখন আপনি আপনার কোড অবফাস্কেট করেন। যখন আপনার বিল্ড একটি ম্যাপিং ফাইল তৈরি করে, তখন প্লাগইনটি সেটি আপলোড করে দেয়, যাতে Crashlytics সার্ভারগুলো ফাইলটি ব্যবহার করে আপনার অ্যাপের স্ট্যাক ট্রেসগুলোকে অ-অবফাস্কেটেড এবং সহজে পাঠযোগ্য কোড হিসেবে রেন্ডার করতে পারে।
R8, ProGuard, এবং DexGuard ব্যবহার করার সময় প্রয়োজনীয় কনফিগারেশন
Crashlytics যেকোনো ProGuard-সামঞ্জস্যপূর্ণ ম্যাপিং ফাইল দিয়ে ডিওবিফাসকেট করতে পারে এবং এটি ProGuard, R8, ও DexGuard-এর সাথেও পরীক্ষিত হয়েছে।
আপনার অ্যাপে যদি অবফাসকেশন চালু থাকা অবস্থায় R8 এবং Android Gradle 4.2.0+ ব্যবহৃত হয়, তাহলে Crashlytics পাঠযোগ্য ক্র্যাশ রিপোর্ট তৈরি করবে। উল্লেখ্য যে, Crashlytics সম্প্রতি Kotlin এবং R8 উভয়ই ব্যবহারকারী অ্যাপগুলোর জন্য তার সাপোর্ট উন্নত করেছে, যার ফলে কিছু অপ্রত্যাশিত ইস্যু লেবেলিং হতে পারে।
আপনার অ্যাপ যদি ProGuard কনফিগ ফাইল ব্যবহার করে, তাহলে পাঠযোগ্য ক্র্যাশ রিপোর্ট তৈরির জন্য Crashlytics প্রয়োজনীয় তথ্য সংরক্ষণ করতে হবে। এটি করার জন্য আপনার ProGuard বা DexGuard কনফিগ ফাইলে নিম্নলিখিত লাইনগুলো যোগ করুন:
-keepattributes SourceFile,LineNumberTable # Keep file names and line numbers. -keep public class * extends java.lang.Exception # Optional: Keep custom exceptions.
DexGuard সম্পর্কিত প্রশ্ন বা সমস্যার জন্য সাহায্য পেতে, সরাসরি Guardsquare সাপোর্ট টিমের সাথে যোগাযোগ করুন। ProGuard সংক্রান্ত সাহায্যের জন্য, কোনো বিশেষজ্ঞের সহায়তা পেতে Guardsquare কমিউনিটি ফোরামে যান।
অস্পষ্ট বিল্ড ভ্যারিয়েন্টগুলি রাখুন
অবফাসকেশন ব্যবহারকারী ভ্যারিয়েন্টগুলোর জন্য Crashlytics গ্র্যাডল প্লাগইনকে ম্যাপিং ফাইল আপলোড করা থেকে বিরত রাখতে, আপনার মডিউল (অ্যাপ-লেভেল) গ্র্যাডল ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts অথবা <project>/<app-module>/build.gradle ) firebaseCrashlytics.mappingFileUploadEnabled গ্র্যাডল এক্সটেনশন প্রপার্টিটির মান false সেট করুন। এটি অবফাসকেটেড বিল্ডগুলোর ক্ষেত্রে বিল্ড টাইম দ্রুত করতে সাহায্য করতে পারে, কিন্তু মনে রাখবেন যে এর ফলে প্রাপ্ত স্ট্যাক ট্রেসগুলো Firebase কনসোলের Crashlytics পেজে অবফাসকেটেড অবস্থায় প্রদর্শিত হবে।
Kotlin
import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension // ... android { // To enable Crashlytics mapping file upload for specific build types: buildTypes { getByName("debug") { minifyEnabled = true configure<CrashlyticsExtension> { mappingFileUploadEnabled = false } } } ... // To enable Crashlytics mapping file upload for specific product flavors: flavorDimensions += "environment" productFlavors { create("staging") { dimension = "environment" ... configure<CrashlyticsExtension> { mappingFileUploadEnabled = false } } create("prod") { dimension = "environment" ... configure<CrashlyticsExtension> { mappingFileUploadEnabled = true } } } }
Groovy
android { // To enable Crashlytics mapping file upload for specific build types: buildTypes { debug { minifyEnabled true firebaseCrashlytics { mappingFileUploadEnabled false } } } ... // To enable Crashlytics mapping file upload for specific product flavors: flavorDimensions "environment" productFlavors { staging { dimension "environment" ... firebaseCrashlytics { mappingFileUploadEnabled false } } prod { dimension "environment" ... firebaseCrashlytics { mappingFileUploadEnabled true } } } }