| প্ল্যাটফর্ম বেছে নিন: | iOS+ Android Flutter Unity |
আপনি কোড অস্পষ্ট করলে Crashlytics Gradle প্লাগ-ইন তা অটোমেটিক শনাক্ত করতে পারে। আপনার বিল্ড যখন একটি ম্যাপিং ফাইল তৈরি করে, তখন প্লাগ-ইন এটি আপলোড করে যাতে Crashlytics সার্ভার আপনার অ্যাপের স্ট্যাক ট্রেসকে আনঅবফস্কেট করা এবং মানুষের-পঠনযোগ্য কোড হিসেবে রেন্ডার করতে ফাইলটি ব্যবহার করতে পারে।
R8, ProGuard ও DexGuard ব্যবহার করার সময় প্রয়োজনীয় কনফিগারেশন
Crashlytics যেকোনও ProGuard-এর সাথে মানানসই ম্যাপিং ফাইল দিয়ে ডিঅবফস্কেট করতে পারে এবং অতিরিক্তভাবে ProGuard, R8 ও DexGuard-এর সাথে পরীক্ষা করা হয়েছে।
আপনার অ্যাপে Android Gradle 4.2.0+ সহ obfuscation চালু করে R8 ব্যবহার করা হলে, 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 Gradle প্লাগ-ইনকে ম্যাপিং ফাইল আপলোড করা থেকে আটকাতে, firebaseCrashlytics.mappingFileUploadEnabled Gradle এক্সটেনশন প্রপার্টিকে আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে
false হিসেবে সেট করুন
(সাধারণত <project>/<app-module>/build.gradle.kts বা
<project>/<app-module>/build.gradle)। এটি অফস্কেটেড বিল্ডের জন্য
বিল্ড টাইম দ্রুত করতে সাহায্য করতে পারে, তবে মনে রাখবেন যে এর ফলে পাওয়া স্ট্যাক ট্রেস 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 } } } }