| প্ল্যাটফর্ম নির্বাচন করুন: | iOS+ অ্যান্ড্রয়েড অ্যান্ড্রয়েড এনডিকে ফ্লাটার ইউনিটি |
আপনার অ্যান্ড্রয়েড অ্যাপে যদি নেটিভ লাইব্রেরি ব্যবহার করেন, তাহলে অ্যাপের বিল্ড কনফিগারেশনে কয়েকটি ছোট আপডেটের মাধ্যমে Firebase Crashlytics থেকে আপনার নেটিভ কোডের জন্য সম্পূর্ণ স্ট্যাক ট্রেস এবং বিস্তারিত ক্র্যাশ রিপোর্ট চালু করতে পারেন।
এই নির্দেশিকায় NDK-এর জন্য Firebase Crashlytics SDK ব্যবহার করে ক্র্যাশ রিপোর্টিং কনফিগার করার পদ্ধতি বর্ণনা করা হয়েছে।
আপনার ইউনিটি প্রোজেক্টে Crashlytics কীভাবে ব্যবহার শুরু করবেন তা জানতে চাইলে, ইউনিটি গেটিং স্টার্টেড গাইডটি দেখুন।
শুরু করার আগে
যদি আগে থেকে না করে থাকেন, তাহলে আপনার অ্যান্ড্রয়েড প্রজেক্টে ফায়ারবেস যোগ করুন । যদি আপনার কোনো অ্যান্ড্রয়েড অ্যাপ না থাকে, তাহলে আপনি একটি স্যাম্পল অ্যাপ ডাউনলোড করতে পারেন।
সুপারিশকৃত : কোনো ক্র্যাশ, নন-ফেটাল বা এএনআর ইভেন্টের আগে ব্যবহারকারীর কার্যকলাপ বোঝার জন্য স্বয়ংক্রিয়ভাবে ব্রেডক্রাম্ব লগ পেতে, আপনাকে আপনার ফায়ারবেস প্রজেক্টে Google Analytics সক্রিয় করতে হবে।
আপনার বিদ্যমান Firebase প্রজেক্টে যদি Google Analytics সক্রিয় করা না থাকে, তাহলে আপনি আপনার প্রজেক্টের Integrations ট্যাব থেকে Google Analytics সক্রিয় করতে পারেন।
Firebase কনসোলে > প্রজেক্ট সেটিংস । আপনি যদি একটি নতুন Firebase প্রজেক্ট তৈরি করেন, তাহলে প্রজেক্ট তৈরির প্রক্রিয়া চলাকালীন Google Analytics সক্রিয় করুন।
আপনার অ্যাপে নিম্নলিখিত ন্যূনতম প্রয়োজনীয় সংস্করণগুলো আছে কিনা তা নিশ্চিত করুন:
- গ্রেডল ৮.০
- অ্যান্ড্রয়েড গ্রেডল প্লাগইন ৮.১.০
- গুগল পরিষেবা গ্রেডল প্লাগইন ৪.৪.১
ধাপ ১ : আপনার অ্যাপে NDK-এর জন্য Crashlytics SDK যোগ করুন।
আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত<project>/<app-module>/build.gradle.kts অথবা <project>/<app-module>/build.gradle ), অ্যান্ড্রয়েডের জন্য Crashlytics এনডিকে লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরির ভার্সনিং নিয়ন্ত্রণের জন্য আমরা Firebase Android BoM ব্যবহার করার পরামর্শ দিই।Crashlytics সাথে সর্বোত্তম অভিজ্ঞতার জন্য, আমরা আপনার Firebase প্রজেক্টে Google Analytics সক্রিয় করার এবং আপনার অ্যাপে Google Analytics-এর জন্য Firebase SDK যোগ করার পরামর্শ দিই।
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.11.0")) // Add the dependencies for the Crashlytics NDK and Analytics libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-crashlytics-ndk") implementation("com.google.firebase:firebase-analytics") }
Firebase Android BoM ব্যবহার করলে, আপনার অ্যাপ সর্বদা Firebase Android লাইব্রেরিগুলোর সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।
(বিকল্প) BoM ব্যবহার না করে ফায়ারবেস লাইব্রেরি নির্ভরতা যোগ করুন
আপনি যদি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে আপনাকে প্রতিটি Firebase লাইব্রেরির ভার্সন তার ডিপেন্ডেন্সি লাইনে উল্লেখ করতে হবে।
মনে রাখবেন, আপনি যদি আপনার অ্যাপে একাধিক Firebase লাইব্রেরি ব্যবহার করেন, তাহলে আমরা লাইব্রেরির ভার্সনগুলো পরিচালনা করার জন্য BoM অফ মেটেরিয়ালস) ব্যবহার করার জন্য দৃঢ়ভাবে সুপারিশ করি, যা সব ভার্সনের সামঞ্জস্যতা নিশ্চিত করে।
dependencies { // Add the dependencies for the Crashlytics NDK and Analytics libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-crashlytics-ndk:20.0.4") implementation("com.google.firebase:firebase-analytics:23.2.0") }
ধাপ ২ : আপনার অ্যাপে Crashlytics Gradle প্লাগইনটি যোগ করুন।
আপনার রুট-লেভেল (প্রজেক্ট-লেভেল) Gradle ফাইলে (
<project>/build.gradle.ktsঅথবা<project>/build.gradle),pluginsব্লকে Crashlytics Gradle প্লাগইনটি যোগ করুন:Kotlin
plugins { // Make sure that you have the AGP plugin 8.1+ dependency id("com.android.application") version "8.1.4" apply false // ... // Make sure that you have the Google services Gradle plugin 4.4.1+ dependency id("com.google.gms.google-services") version "4.4.4" apply false // Add the dependency for the Crashlytics Gradle plugin id("com.google.firebase.crashlytics") version "3.0.6" apply false }
Groovy
plugins { // Make sure that you have the AGP plugin 8.1+ dependency id 'com.android.application' version '8.1.4' apply false // ... // Make sure that you have the Google services Gradle plugin 4.4.1+ dependency id 'com.google.gms.google-services' version '4.4.4' apply false // Add the dependency for the Crashlytics Gradle plugin id 'com.google.firebase.crashlytics' version '3.0.6' apply false }
আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (সাধারণত
<project>/<app-module>/build.gradle.ktsঅথবা<project>/<app-module>/build.gradle), Crashlytics Gradle প্লাগইনটি যোগ করুন:Kotlin
plugins { id("com.android.application") // ... // Make sure that you have the Google services Gradle plugin id("com.google.gms.google-services") // Add the Crashlytics Gradle plugin id("com.google.firebase.crashlytics") }
Groovy
plugins { id 'com.android.application' // ... // Make sure that you have the Google services Gradle plugin id 'com.google.gms.google-services' // Add the Crashlytics Gradle plugin id 'com.google.firebase.crashlytics' }
ধাপ ৩ : আপনার বিল্ডে ক্র্যাশলিটিক্স এক্সটেনশনটি যোগ করুন।
আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts অথবা <project>/<app-module>/build.gradle ), ক্র্যাশলিটিক্স এক্সটেনশনটি কনফিগার করুন।
Kotlin
import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension // ... android { // ... buildTypes { getByName("release") { // Add this extension configure<CrashlyticsExtension> { // Enable processing and uploading of native symbols to Firebase servers. // By default, this is disabled to improve build speeds. // This flag must be enabled to see properly-symbolicated native // stack traces in the Crashlytics dashboard. nativeSymbolUploadEnabled = true } } } }
Groovy
// ... android { // ... buildTypes { release { // Add this extension firebaseCrashlytics { // Enable processing and uploading of native symbols to Firebase servers. // By default, this is disabled to improve build speeds. // This flag must be enabled to see properly-symbolicated native // stack traces in the Crashlytics dashboard. nativeSymbolUploadEnabled true } } } }
ধাপ ৪ : নেটিভ সিম্বলগুলির স্বয়ংক্রিয় আপলোড সেট আপ করুন
NDK ক্র্যাশ থেকে পাঠযোগ্য স্ট্যাক ট্রেস তৈরি করতে, Crashlytics আপনার নেটিভ বাইনারিগুলিতে থাকা সিম্বলগুলি সম্পর্কে জানতে হয়। এই প্রক্রিয়াটিকে স্বয়ংক্রিয় করার জন্য Crashlytics Gradle প্লাগইনটিতে uploadCrashlyticsSymbolFile BUILD_VARIANT টাস্কটি অন্তর্ভুক্ত রয়েছে।
যাতে আপনি স্বয়ংক্রিয় সিম্বল আপলোডিং টাস্কটি অ্যাক্সেস করতে পারেন, সেজন্য আপনার মডিউল (অ্যাপ-লেভেল) গ্রেডল ফাইলে
nativeSymbolUploadEnabledtrueতে সেট করা আছে কিনা তা নিশ্চিত করুন।আপনার স্ট্যাক ট্রেসে মেথডের নামগুলো দেখানোর জন্য, আপনার NDK লাইব্রেরির প্রতিটি বিল্ডের পরে অবশ্যই `
uploadCrashlyticsSymbolFile BUILD_VARIANTটাস্কটি স্পষ্টভাবে কল করতে হবে। উদাহরণস্বরূপ:>./gradlew app:assembleBUILD_VARIANT\ app:uploadCrashlyticsSymbolFileBUILD_VARIANT
NDK-এর জন্য Crashlytics SDK এবং Crashlytics Gradle প্লাগইন উভয়ই নেটিভ শেয়ার্ড অবজেক্টের মধ্যে GNU বিল্ড আইডির উপস্থিতির উপর নির্ভর করে।
আপনি এটি চালিয়ে এই আইডিটির উপস্থিতি যাচাই করতে পারেন।
প্রতিটি বাইনারিতে readelf -n। যদি বিল্ড আইডি না থাকে, তাহলে যোগ করুনসমস্যাটি সমাধান করতে আপনার বিল্ড সিস্টেমের ফ্ল্যাগগুলিতে -Wl,--build-id।
ধাপ ৫ : সেটআপ শেষ করতে একটি টেস্ট ক্র্যাশ ঘটান।
Crashlytics সেটআপ শেষ করতে এবং Firebase কনসোলের Crashlytics ড্যাশবোর্ডে প্রাথমিক ডেটা দেখতে, আপনাকে একটি টেস্ট ক্র্যাশ ঘটাতে হবে।
আপনার অ্যাপে এমন কোড যোগ করুন যা ব্যবহার করে আপনি টেস্ট ক্র্যাশ ঘটাতে পারবেন।
আপনার অ্যাপের
MainActivityতে নিম্নলিখিত কোডটি ব্যবহার করে আপনি এমন একটি বাটন যোগ করতে পারেন, যা চাপলে অ্যাপটি ক্র্যাশ করবে। বাটনটির লেবেল হলো "Test Crash"।Kotlin
val crashButton = Button(this) crashButton.text = "Test Crash" crashButton.setOnClickListener { throw RuntimeException("Test Crash") // Force a crash } addContentView(crashButton, ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT))
Java
Button crashButton = new Button(this); crashButton.setText("Test Crash"); crashButton.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { throw new RuntimeException("Test Crash"); // Force a crash } }); addContentView(crashButton, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
আপনার অ্যাপটি তৈরি করুন এবং চালান।
আপনার অ্যাপের প্রথম ক্র্যাশ রিপোর্টটি পাঠানোর জন্য টেস্টটি জোর করে ক্র্যাশ করান:
আপনার টেস্ট ডিভাইস বা এমুলেটর থেকে অ্যাপটি খুলুন।
আপনার অ্যাপে, উপরের কোড ব্যবহার করে যোগ করা "টেস্ট ক্র্যাশ" বোতামটি চাপুন।
আপনার অ্যাপটি ক্র্যাশ করার পর, এটিকে পুনরায় চালু করুন যাতে এটি ফায়ারবেস-এ ক্র্যাশ রিপোর্ট পাঠাতে পারে।
আপনার টেস্ট ক্র্যাশটি দেখতে Firebase কনসোলের Crashlytics ড্যাশবোর্ডে যান।
আপনি যদি কনসোল রিফ্রেশ করার পরেও পাঁচ মিনিট পর টেস্টটি ক্র্যাশ করতে না দেখেন, তাহলে আপনার অ্যাপটি ক্র্যাশ রিপোর্ট পাঠাচ্ছে কিনা তা দেখতে ডিবাগ লগিং চালু করুন ।
ব্যাস, এটুকুই! Crashlytics এখন আপনার অ্যাপে ক্র্যাশ হচ্ছে কিনা তা পর্যবেক্ষণ করছে, এবং আপনি Crashlytics ড্যাশবোর্ডে ক্র্যাশ রিপোর্ট ও পরিসংখ্যান দেখতে এবং খতিয়ে দেখতে পারবেন।
পরবর্তী পদক্ষেপ
(সুপারিশকৃত) নেটিভ মেমরি ত্রুটির কারণে হওয়া ক্র্যাশ ডিবাগ করতে GWP-ASan রিপোর্ট সংগ্রহ করুন । এই মেমরি-সম্পর্কিত ত্রুটিগুলি আপনার অ্যাপের মধ্যে মেমরি করাপশনের সাথে যুক্ত থাকতে পারে, যা অ্যাপের নিরাপত্তা দুর্বলতার প্রধান কারণ। এই ডিবাগিং বৈশিষ্ট্যটির সুবিধা নিতে, নিশ্চিত করুন যে আপনার অ্যাপে GWP-ASan স্পষ্টভাবে সক্রিয় করা আছে এবং এটি NDK-এর জন্য সর্বশেষ Crashlytics SDK (v18.3.6+ বা Firebase BoM v31.3.0+) ব্যবহার করছে।
অপ্ট-ইন রিপোর্টিং, লগ, কী এবং অ-মারাত্মক ত্রুটির ট্র্যাকিং যোগ করে আপনার ক্র্যাশ রিপোর্ট সেটআপটি কাস্টমাইজ করুন ।
Google Play সাথে ইন্টিগ্রেট করুন , যাতে আপনি সরাসরি Crashlytics ড্যাশবোর্ডে Google Play ট্র্যাক অনুযায়ী আপনার অ্যান্ড্রয়েড অ্যাপের ক্র্যাশ রিপোর্টগুলো ফিল্টার করতে পারেন। এর ফলে আপনি নির্দিষ্ট বিল্ডগুলোর ওপর আপনার ড্যাশবোর্ডকে আরও ভালোভাবে ফোকাস করতে পারবেন।
সমস্যা সমাধান
যদি আপনি Firebase কনসোল এবং logcat-এ ভিন্ন ভিন্ন স্ট্যাক ট্রেস দেখতে পান, তাহলে ট্রাবলশুটিং গাইডটি দেখুন।
প্রতীক আপলোড করার বিকল্প উপায়
এই পৃষ্ঠার উপরের প্রধান ওয়ার্কফ্লোটি স্ট্যান্ডার্ড গ্রেডল বিল্ডের জন্য প্রযোজ্য। তবে, কিছু অ্যাপ ভিন্ন কনফিগারেশন বা টুলিং ব্যবহার করে (উদাহরণস্বরূপ, গ্রেডল ছাড়া অন্য কোনো বিল্ড প্রসেস)। এই পরিস্থিতিতে, সফলভাবে সিম্বল আপলোড করার জন্য নিম্নলিখিত অপশনগুলো সহায়ক হতে পারে।
বিকল্প : লাইব্রেরি মডিউল এবং বাহ্যিক নির্ভরতার জন্য প্রতীক আপলোড করুন
এই বিকল্পটি নিম্নলিখিত পরিস্থিতিগুলিতে সহায়ক হতে পারে:
- আপনি যদি Gradle-এর মধ্যে একটি কাস্টমাইজড NDK বিল্ড প্রসেস ব্যবহার করেন
- যদি আপনার নেটিভ লাইব্রেরিগুলি কোনো লাইব্রেরি/ফিচার মডিউলে তৈরি করা হয় অথবা কোনো তৃতীয় পক্ষ দ্বারা সরবরাহ করা হয়
- যদি স্বয়ংক্রিয় প্রতীক আপলোড করার কাজটি ব্যর্থ হয় অথবা আপনি ড্যাশবোর্ডে প্রতীকবিহীন ক্র্যাশ দেখতে পান
স্ট্যান্ডার্ড Crashlytics সিম্বল আপলোড টাস্কটি ধরে নেয় যে, আপনি আপনার অ্যাপ মডিউলের Gradle বিল্ডের অংশ হিসেবে, CMake-এর মতো স্ট্যান্ডার্ড NDK বিল্ড টুল ব্যবহার করে আপনার নেটিভ লাইব্রেরিগুলো বিল্ড করছেন।
তবে, যদি আপনি Gradle-এর মধ্যে একটি কাস্টমাইজড NDK বিল্ড প্রসেস ব্যবহার করেন, অথবা আপনার নেটিভ লাইব্রেরিগুলো কোনো লাইব্রেরি/ফিচার মডিউলে বিল্ড করা হয় বা কোনো থার্ড-পার্টি দ্বারা সরবরাহ করা হয়, তাহলে আপনার আনস্ট্রিপড লাইব্রেরিগুলোর পাথ স্পষ্টভাবে উল্লেখ করার প্রয়োজন হতে পারে। এটি করার জন্য, আপনি আপনার Gradle বিল্ড ফাইলের Crashlytics এক্সটেনশনের মধ্যে unstrippedNativeLibsDir প্রপার্টিটি যোগ করতে পারেন।
নিশ্চিত করুন যে আপনি এই পৃষ্ঠার আগের অংশে থাকা মূল ওয়ার্কফ্লো থেকে নিম্নলিখিত প্রাথমিক কাজগুলো সম্পন্ন করেছেন:
যাতে স্বয়ংক্রিয় সিম্বল আপলোডিং টাস্কটি আপনার সিম্বল তথ্য খুঁজে পায়, সেজন্য আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (সাধারণত
<project>/<app-module>/build.gradle.ktsঅথবা<project>/<app-module>/build.gradle) নিম্নলিখিতটি যোগ করুন:Kotlin
import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension // ... android { // ... buildTypes { release { configure<CrashlyticsExtension> { nativeSymbolUploadEnabled = true unstrippedNativeLibsDir = file("PATH/TO/UNSTRIPPED/DIRECTORY") } } } }
Groovy
// ... android { // ... buildTypes { release { firebaseCrashlytics { nativeSymbolUploadEnabled true unstrippedNativeLibsDir file("PATH/TO/UNSTRIPPED/DIRECTORY") } } } }
Crashlytics প্লাগইনটি নির্দিষ্ট ডিরেক্টরিতে
.soএক্সটেনশনযুক্ত নেটিভ লাইব্রেরিগুলির জন্য রিকার্সিভলি অনুসন্ধান করবে। এরপর Crashlytics এই ধরনের সমস্ত লাইব্রেরি থেকে ডিবাগিং সিম্বলগুলি নিষ্কাশন করে এবং সেগুলিকে Firebase সার্ভারগুলিতে আপলোড করে।unstrippedNativeLibsDirপ্রপার্টিতে আপনি যা যা নির্দিষ্ট করতে পারেন তা নিচে দেওয়া হলো:org.gradle.api.Project#files(Object...)-এর জন্য অনুমোদিত যেকোনো আর্গুমেন্ট, যার মধ্যে অন্তর্ভুক্ত:java.lang.String,java.io.File, অথবাorg.gradle.api.file.FileCollectionএকটি তালিকা বা
FileCollectionইনস্ট্যান্স প্রদানের মাধ্যমে একটি একক বিল্ড ফ্লেভারের জন্য একাধিক ডিরেক্টরি তৈরি করা যায়।( Crashlytics Gradle প্লাগইন v3.0.0 থেকে শুরু করে) স্বতন্ত্র প্রোডাক্ট এবং বিল্ড ফ্লেভারে একাধিক ডিরেক্টরি একত্রিত করুন।
অবশেষে, Crashlytics সেটআপ শেষ করতে এবং Firebase কনসোলের Crashlytics ড্যাশবোর্ডে প্রাথমিক ডেটা দেখতে , একটি টেস্ট ক্র্যাশ ঘটান ।
বিকল্প : নন-গ্রেডল বিল্ডের জন্য অথবা অ্যাক্সেস-অযোগ্য অপরিবর্তিত নেটিভ লাইব্রেরির জন্য সিম্বল আপলোড করুন
এই বিকল্পটি নিম্নলিখিত পরিস্থিতিগুলিতে সহায়ক হতে পারে:
আপনি যদি Gradle ছাড়া অন্য কোনো বিল্ড প্রসেস ব্যবহার করেন
যদি আপনার আনস্ট্রিপড নেটিভ লাইব্রেরিগুলি আপনাকে এমন উপায়ে সরবরাহ করা হয় যে সেগুলি গ্রেডল বিল্ডের সময় অ্যাক্সেসযোগ্য নয়
এই অপশনটির জন্য, যখন আপনি একটি রিলিজ বিল্ড তৈরি করবেন অথবা এমন কোনো বিল্ড তৈরি করবেন যার সিম্বলিকেটেড স্ট্যাক ট্রেস আপনি Firebase কনসোলে দেখতে চান, তখন আপনাকে একটি Firebase CLI কমান্ড চালাতে হবে।
নিশ্চিত করুন যে আপনি এই পৃষ্ঠার আগের অংশে থাকা মূল ওয়ার্কফ্লো থেকে নিম্নলিখিত প্রাথমিক কাজগুলো সম্পন্ন করেছেন:
NDK-এর জন্য Crashlytics SDK এবং Crashlytics Gradle প্লাগইন যোগ করা হয়েছে।
উল্লেখ্য যে, এই বিকল্পটি বেছে নিলে আপনাকে
firebaseCrashlyticsএক্সটেনশন যোগ করতে বা স্বয়ংক্রিয় সিম্বল আপলোডিং সেট আপ করতে হবে না, কারণ এর পরিবর্তে আপনি আপনার সিম্বল ফাইলগুলো তৈরি ও আপলোড করার জন্য Firebase CLI (নিচের পরবর্তী ধাপগুলো দেখুন) ব্যবহার করবেন।প্রতীক আপলোড করার জন্য আপনার পরিবেশ এবং প্রজেক্ট প্রস্তুত করুন:
Firebase CLI ইনস্টল করার জন্য নির্দেশাবলী অনুসরণ করুন।
আপনি যদি ইতিমধ্যেই CLI ইনস্টল করে থাকেন, তবে এর সর্বশেষ সংস্করণে আপডেট করে নিন ।
(শুধুমাত্র অ্যান্ড্রয়েড এপিআই লেভেল ৩০+ ব্যবহারকারী অ্যাপের জন্য) পয়েন্টার ট্যাগিং নিষ্ক্রিয় করতে আপনার অ্যাপের
AndroidManifest.xmlটেমপ্লেট আপডেট করুন:Android Player Settings > Publishing Settings > Build > Custom Main Manifest -এর জন্য বক্সটি চেক করুন।
Assets/Plugins/Android/AndroidManifest.xmlএ অবস্থিত ম্যানিফেস্ট টেমপ্লেটটি খুলুন।অ্যাপ্লিকেশন ট্যাগে নিম্নলিখিত অ্যাট্রিবিউটটি যোগ করুন:
<application android:allowNativeHeapPointerTagging="false" ... />
আপনার প্রকল্পটি গড়ে তুলুন।
আপনার প্রতীক সম্পর্কিত তথ্য আপলোড করুন।
আপনার বিল্ড সম্পন্ন হয়ে গেলে, একটি Crashlytics উপযোগী সিম্বল ফাইল তৈরি করুন এবং নিম্নলিখিত Firebase CLI কমান্ডটি চালিয়ে সেটি Firebase সার্ভারগুলিতে আপলোড করুন:
firebase crashlytics:symbols:upload --app=FIREBASE_APP_ID PATH/TO/SYMBOLS
FIREBASE_APP_ID : আপনার ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ আইডি (প্যাকেজ নেম নয়)
উদাহরণস্বরূপ ফায়ারবেস অ্যান্ড্রয়েড অ্যাপ আইডি:1:567383003300:android:17104a2ced0c9b9bআপনার ফায়ারবেস অ্যাপ আইডি খুঁজে বের করার দুটি উপায় নিচে দেওয়া হলো:
আপনার
google-services.jsonফাইলে, আপনার অ্যাপ আইডি হলmobilesdk_app_idভ্যালুটি; অথবাFirebase কনসোলে, আপনার প্রজেক্ট সেটিংসে যান। 'Your apps' কার্ডে গিয়ে, কাঙ্ক্ষিত Firebase অ্যাপটির অ্যাপ আইডি খুঁজে বের করতে সেটিতে ক্লিক করুন।
PATH/TO/SYMBOLS : CLI দ্বারা তৈরি সিম্বল ফাইলের পাথ
অ্যান্ড্রয়েড স্টুডিও প্রজেক্টে এক্সপোর্ট করা হলে — PATH/TO/SYMBOLS যেকোনো ডিরেক্টরি হতে পারে। Firebase CLI নির্দিষ্ট ডিরেক্টরিতে
.soএক্সটেনশনযুক্ত নেটিভ লাইব্রেরিগুলোর জন্য রিকার্সিভলি অনুসন্ধান করবে।সরাসরি ইউনিটির ভেতর থেকে APK তৈরি করা হয়েছে — আপনার বিল্ড শেষ হলে প্রোজেক্ট রুট ডিরেক্টরিতে তৈরি হওয়া জিপ করা সিম্বল ফাইলের পাথটিই হলো PATH/TO/SYMBOLS (উদাহরণস্বরূপ:
myproject/myapp-1.0-v100.symbols.zip)
সিম্বল ফাইল তৈরি ও আপলোড করার জন্য Firebase সিএলআই কমান্ড ব্যবহারের উন্নত বিকল্পগুলো দেখুন।
পতাকা বর্ণনা --generator=csymডিফল্ট ব্রেকপ্যাড জেনারেটরের পরিবর্তে লিগ্যাসি cSYM সিম্বল ফাইল জেনারেটর ব্যবহার করে।
ব্যবহারের জন্য সুপারিশ করা হয় না। আমরা ডিফল্ট ব্রেকপ্যাড সিম্বল ফাইল জেনারেটর ব্যবহার করার পরামর্শ দিই।
--generator=breakpadব্রেকপ্যাড সিম্বল ফাইল জেনারেটর ব্যবহার করে
মনে রাখবেন যে সিম্বল ফাইল তৈরির জন্য ডিফল্ট হলো ব্রেকপ্যাড। শুধুমাত্র তখনই এই ফ্ল্যাগটি ব্যবহার করুন যদি আপনি যোগ করে থাকেন।
আপনার বিল্ড কনফিগারেশনে symbolGenerator { csym() }আছে এবং আপনি এটিকে ওভাররাইড করে এর পরিবর্তে Breakpad ব্যবহার করতে চান।--dry-runপ্রতীক ফাইলগুলো তৈরি করে কিন্তু আপলোড করে না।
প্রেরিত ফাইলগুলোর বিষয়বস্তু পরীক্ষা করতে চাইলে এই ফ্ল্যাগটি কার্যকর।
--debugঅতিরিক্ত ডিবাগিং তথ্য প্রদান করে অবশেষে, Crashlytics সেটআপ শেষ করতে এবং Firebase কনসোলের Crashlytics ড্যাশবোর্ডে প্রাথমিক ডেটা দেখতে , একটি টেস্ট ক্র্যাশ ঘটান ।
আপনার অ্যাপটি বিল্ড করার পর, জোরপূর্বক ক্র্যাশ ঘটানোর অংশ হিসেবে, আপনার সিম্বল ফাইলটি আপলোড করার জন্য Firebase CLI-এর
crashlytics:symbols:uploadকমান্ডটি অবশ্যই চালান।