الترقية إلى الإصدار 3 من المكوّن الإضافي Crashlytics Gradle
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
أحدث إصدار من Crashlytics المكوّن الإضافي لنظام Gradle هو إصدار رئيسي (الإصدار 3.0.0) ويتم تحديث حزمة SDK من خلال إيقاف دعم الإصدارات الأقدم من Gradle والمكوّن الإضافي لنظام Gradle المتوافق مع Android. بالإضافة إلى ذلك، تعمل التغييرات في هذا الإصدار على حلّ المشاكل المتعلّقة بالإصدار 8.1 والإصدارات الأحدث من "مكوّن Android الإضافي لبرنامج Gradle"، كما تعمل على تحسين التوافق مع التطبيقات الأصلية وعمليات الإنشاء المخصّصة.
الحد الأدنى من المتطلبات
Crashlytics يتضمّن الإصدار 3 من المكوّن الإضافي لنظام Gradle الحدّ الأدنى من المتطلبات التالية:
الإصدار 8.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android والإصدارات الأحدث
يمكنك ترقية هذا المكوّن الإضافي باستخدام
مساعِد ترقية المكوّن الإضافي لنظام Gradle المتوافق مع Android
في أحدث إصدار من "استوديو Android".
google-services
المكوّن الإضافي لنظام Gradle في Firebase 4.4.1 أو الإصدارات الأحدث
يمكنك ترقية هذا المكوّن الإضافي من خلال تحديد أحدث إصدار في ملف إنشاء Gradle الخاص بمشروعك، كما يلي:
Kotlin
plugins {
id("com.android.application") version "8.1.4" apply false
id("com.google.gms.google-services") version "4.4.3" apply false
...
}
Groovy
plugins {
id 'com.android.application' version '8.1.4' apply false
id 'com.google.gms.google-services' version '4.4.3' apply false
...
}
تغييرات على إضافة "Crashlytics"
في الإصدار 3 من المكوّن الإضافي Crashlytics لنظام Gradle، يتضمّن المكوّن الإضافي Crashlytics التغييرات التالية التي قد تؤدي إلى أعطال:
تمت إزالة الإضافة من حزمة defaultConfig
Android. بدلاً من ذلك، عليك ضبط إعدادات كل صيغة.
تمت إزالة الحقل mappingFile
الذي تم إيقافه نهائيًا. بدلاً من ذلك، يتم الآن توفير ملف التعيين المدمج تلقائيًا.
تمت إزالة الحقل strippedNativeLibsDir
الذي تم إيقافه نهائيًا. بدلاً من ذلك، يجب استخدام unstrippedNativeLibsDir
لجميع المكتبات الأصلية.
تم تغيير الحقل unstrippedNativeLibsDir
ليصبح تراكميًا.
عرض مثال يتضمّن أدلة متعددة
buildTypes {
release {
configure<CrashlyticsExtension> {
nativeSymbolUploadEnabled = true
unstrippedNativeLibsDir = file("MY/NATIVE/LIBS")
}
}
productFlavors {
flavorDimensions += "feature"
create("basic") {
dimension = "feature"
// ...
}
create("featureX") {
dimension = "feature"
configure<CrashlyticsExtension> {
unstrippedNativeLibsDir = file("MY/FEATURE_X/LIBS")
}
}
}
}
لن تحمّل المهمة uploadCrashlyticsSymbolFilesBasicRelease
سوى الرموز في MY/NATIVE/LIBS
، بينما ستحمّل المهمة uploadCrashlyticsSymbolFilesFeatureXRelease
الرموز في كل من MY/NATIVE/LIBS
وMY/FEATURE_X/LIBS
.
تم استبدال حقل الإغلاق symbolGenerator
بحقلَين جديدَين من المستوى الأعلى:
-
symbolGeneratorType
، وهي سلسلة تتضمّن "breakpad"
(القيمة التلقائية) أو "csym"
.
-
breakpadBinary
، وهو ملف يتضمّن عملية إلغاء ثنائية محلية dump_syms
.
مثال على كيفية ترقية الإضافة
Kotlin
قبل |
buildTypes {
release {
configure<CrashlyticsExtension> {
// ...
symbolGenerator(
closureOf<SymbolGenerator> {
symbolGeneratorType = "breakpad"
breakpadBinary = file("/PATH/TO/BREAKPAD/DUMP_SYMS")
}
)
}
}
}
|
الميزات الجديدة في الإصدار 3 |
buildTypes {
release {
configure<CrashlyticsExtension> {
// ...
symbolGeneratorType = "breakpad"
breakpadBinary = file("/PATH/TO/BREAKPAD/DUMP_SYMS")
}
}
}
|
Groovy
قبل |
buildTypes {
release {
firebaseCrashlytics {
// ...
symbolGenerator {
breakpad {
binary file("/PATH/TO/BREAKPAD/DUMP_SYMS")
}
}
}
}
}
|
الميزات الجديدة في الإصدار 3 |
buildTypes {
release {
firebaseCrashlytics {
// ...
symbolGeneratorType "breakpad"
breakpadBinary file("/PATH/TO/BREAKPAD/DUMP_SYMS")
}
}
}
|
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-08-29 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-08-29 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["\u003cbr /\u003e\n\nThe latest release of the Crashlytics Gradle plugin is a major\nversion (v3.0.0) and modernizes the SDK by dropping support for lower versions\nof Gradle and the Android Gradle plugin. Additionally, the changes in this\nrelease resolve issues with AGP v8.1+ and improve support for native apps and\ncustomized builds.\n\nMinimum requirements\n\nCrashlytics Gradle plugin v3 has the following minimum requirements:\n\n- Android Gradle plugin 8.1+ \n\n Upgrade this plugin using the\n [Android Gradle plugin Upgrade Assistant](https://developer.android.com/build/agp-upgrade-assistant)\n on the latest version of Android Studio.\n\n- Firebase's `google-services` Gradle plugin 4.4.1+ \n\n Upgrade this plugin by specifying the latest version in your project's Gradle\n build file, like so:\n\nKotlin \n\n```kotlin\nplugins {\n id(\"com.android.application\") version \"8.1.4\" apply false\n id(\"com.google.gms.google-services\") version \"4.4.3\" apply false\n ...\n}\n```\n\nGroovy \n\n```groovy\nplugins {\n id 'com.android.application' version '8.1.4' apply false\n id 'com.google.gms.google-services' version '4.4.3' apply false\n ...\n}\n```\n\nChanges to the Crashlytics extension\n\nWith v3 of the Crashlytics Gradle plugin, the Crashlytics extension has\nthe following breaking changes:\n\n- Removed the extension from the `defaultConfig` android block. Instead, you\n should configure each variant.\n\n- Removed the deprecated field `mappingFile`. Instead, the merged mapping file\n is now provided automatically.\n\n- Removed the deprecated field `strippedNativeLibsDir`. Instead, you should use\n `unstrippedNativeLibsDir` for all native libs.\n\n- Changed the field `unstrippedNativeLibsDir` to be cumulative.\n\n View an example with multiple directories\n\n \u003cbr /\u003e\n\n \u003cbr /\u003e\n\n ```kotlin\n buildTypes {\n release {\n configure\u003cCrashlyticsExtension\u003e {\n nativeSymbolUploadEnabled = true\n unstrippedNativeLibsDir = file(\"\u003cvar class=\"readonly\" translate=\"no\"\u003eMY/NATIVE/LIBS\u003c/var\u003e\")\n }\n }\n productFlavors {\n flavorDimensions += \"feature\"\n create(\"basic\") {\n dimension = \"feature\"\n // ...\n }\n create(\"featureX\") {\n dimension = \"feature\"\n configure\u003cCrashlyticsExtension\u003e {\n unstrippedNativeLibsDir = file(\"\u003cvar class=\"readonly\" translate=\"no\"\u003eMY/FEATURE_X/LIBS\u003c/var\u003e\")\n }\n }\n }\n }\n \n ```\n\n \u003cbr /\u003e\n\n The `uploadCrashlyticsSymbolFilesBasicRelease` task will only upload the\n symbols in \u003cvar class=\"readonly\" translate=\"no\"\u003eMY/NATIVE/LIBS\u003c/var\u003e,\n but `uploadCrashlyticsSymbolFilesFeatureXRelease` will upload symbols in\n both \u003cvar class=\"readonly\" translate=\"no\"\u003eMY/NATIVE/LIBS\u003c/var\u003e\n and \u003cvar class=\"readonly\" translate=\"no\"\u003eMY/FEATURE_X/LIBS\u003c/var\u003e.\n\n \u003cbr /\u003e\n\n- Replaced the closure field `symbolGenerator` with two new top level fields:\n\n - `symbolGeneratorType`, a String of either `\"breakpad\"` (default) or `\"csym\"`.\n - `breakpadBinary`, a File of a local `dump_syms` binary override.\n\nExample for how to upgrade the extension \n\nKotlin\n\n|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **Before** | ```kotlin buildTypes { release { configure\u003cCrashlyticsExtension\u003e { // ... symbolGenerator( closureOf\u003cSymbolGenerator\u003e { symbolGeneratorType = \"breakpad\" breakpadBinary = file(\"\u003cvar translate=\"no\"\u003e/PATH/TO/BREAKPAD/DUMP_SYMS\u003c/var\u003e\") } ) } } } ``` |\n| **Now in v3** | ```kotlin buildTypes { release { configure\u003cCrashlyticsExtension\u003e { // ... symbolGeneratorType = \"breakpad\" breakpadBinary = file(\"\u003cvar translate=\"no\"\u003e/PATH/TO/BREAKPAD/DUMP_SYMS\u003c/var\u003e\") } } } ``` |\n\nGroovy\n\n|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **Before** | ```groovy buildTypes { release { firebaseCrashlytics { // ... symbolGenerator { breakpad { binary file(\"\u003cvar translate=\"no\"\u003e/PATH/TO/BREAKPAD/DUMP_SYMS\u003c/var\u003e\") } } } } } ``` |\n| **Now in v3** | ```groovy buildTypes { release { firebaseCrashlytics { // ... symbolGeneratorType \"breakpad\" breakpadBinary file(\"\u003cvar translate=\"no\"\u003e/PATH/TO/BREAKPAD/DUMP_SYMS\u003c/var\u003e\") } } } ``` |"]]