Автоматическая загрузка файлов символов для отчетов Android NDK cra sh - PullRequest
0 голосов
/ 07 февраля 2020

Я использую Crashlyti c sdk для сбора Android NDK cra sh отчетов. Пожалуйста, найдите файл конфигурации ниже.

Это хорошо работает, если я запускаю следующую команду: ./gradlew crashlyticsUploadSymbolsXXXRelease

Кроме того, если я добавлю assembleXXXRelease.finalizedBy(crashlyticsUploadSymbolsXXXRelease) в afterEvaluate блок, файлы символов также загружаются после каждой сборки.

Вот мои вопросы:

  1. Я хочу, чтобы этот процесс загрузки был автоматизирован c. Проблема, с которой я сталкиваюсь, заключается в том, что финализированный способ добавит еще около 10 минут ко времени сборки, чего я должен избегать. Я предпочитаю создавать новое задание и вызывать его где-то еще после каждой сборки, поэтому время сборки APK останется таким же, как и сейчас. Я пытался сделать это, но, похоже, не работает. Смотрите код ниже. Если у вас есть какие-либо подсказки или я что-то пропустил, пожалуйста, дайте мне знать.

  2. Возможно ли переопределить выходной путь NDK на основе другого варианта? Я попытался получить вариант XXX из имени задачи, например, assbleXXXRelease, и назначить его выходному пути, например, XXX / obj, но не получилось. Похоже, что аромат был установлен по умолчанию.

  3. Возможно ли, что я смогу взять файлы символов cSYM и загрузить их в Crashlytics без Crashlyti c sdk?

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

// Question 2 will be happening here:
crashlytics {
    enableNdk true
    androidNdkOut "obj" // override the path based on the flavor name to flavorName/obj?
    androidNdkLibsOut "libs" // override the path based on the flavor name to flavorName/libs?
}

dependencies {
    // ...
    implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'

    // Add the Crashlytics NDK dependency
    implementation 'com.crashlytics.sdk.android:crashlytics-ndk:2.1.1'
}

// Question 1 will be happening here:
// If I call this task from command line, it won't work. Nothing will happen.
task upload {
    doLast {
        crashlyticsUploadSymbolsXXXRelease
    }
}

afterEvaluate {project ->
    android.applicationVariants.all { variant ->
        assembleXXXRelease.finalizedBy(crashlyticsUploadSymbolsXXXRelease) // it works here
    }
}

1 Ответ

0 голосов
/ 07 февраля 2020
  1. Я хочу, чтобы этот процесс загрузки был автоматизирован c. Проблема, с которой я сталкиваюсь, заключается в том, что финализированный способ добавит еще около 10 минут ко времени сборки, чего я должен избегать. Я предпочитаю создавать новое задание и вызывать его где-то еще после каждой сборки, поэтому время сборки APK останется таким же, как и сейчас. Я пытался сделать это, но, похоже, не работает.

Я решил это, изменив задачу следующим образом:

task upload {
    doLast {
       // do something whatever
    }
}

upload.finalizedBy(crashlyticsUploadSymbolsXXXRelease)
Возможно ли переопределить выходной путь NDK на основе другого варианта? Я попытался получить вариант XXX из имени задачи, например, assbleXXXRelease, и назначить его выходному пути, например, XXX / obj, но не получилось. Похоже, что аромат был установлен по умолчанию.

Я сделал эту работу, чтобы получить имя текущего вкуса, вызвав

gradle.startParameter.taskName[0]
Возможно ли, что я могу взять файлы символов cSYM и загрузить их в Crashlytics без Crashlyti c sdk?

Я пока не нашел решения для этого.

...