firebase - 为 Android NDK 崩溃报告自动上传 Symbol 文件
问题描述
我正在使用 Crashlytic sdk 收集 Android NDK 崩溃报告。请在下面找到配置文件。
如果我运行以下命令,它会很好地工作:
./gradlew crashlyticsUploadSymbolsXXXRelease
此外,如果我添加assembleXXXRelease.finalizedBy(crashlyticsUploadSymbolsXXXRelease)
到afterEvaluate
块,符号文件也会在每次构建后上传。
以下是我的问题:
我希望这个上传过程是自动的。我面临的问题是 finalizedBy 方式将增加大约 10 分钟的构建时间,这是我必须避免的。我更喜欢在每次构建后创建一个新任务并在其他地方调用它,因此 APK 构建时间将与现在保持相同。我试图这样做,但它似乎不起作用。请参阅下面的代码。如果您有任何线索或我遗漏了什么,请告诉我。
是否可以根据不同的风格覆盖 NDK 输出路径?我尝试从 assbleXXXRelease 之类的任务名称中获取风味 XXX,并将其分配给 XXX/obj 之类的输出路径,但失败了。似乎风味已固定为默认风味。
我可以在没有 Crashlytic sdk 的情况下获取 cSYM 符号文件并上传到 Crashlytics 吗?
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
}
}
解决方案
- 我希望这个上传过程是自动的。我面临的问题是 finalizedBy 方式将增加大约 10 分钟的构建时间,这是我必须避免的。我更喜欢在每次构建后创建一个新任务并在其他地方调用它,因此 APK 构建时间将保持与现在相同。我试图这样做,但它似乎不起作用。
我通过如下修改任务解决了这个问题:
task upload {
doLast {
// do something whatever
}
}
upload.finalizedBy(crashlyticsUploadSymbolsXXXRelease)
- 是否可以根据不同的风格覆盖 NDK 输出路径?我尝试从 assbleXXXRelease 之类的任务名称中获取风味 XXX,并将其分配给 XXX/obj 之类的输出路径,但失败了。似乎风味已固定为默认风味。
我已经通过调用来获取当前的风味名称
gradle.startParameter.taskName[0]
- 我可以在没有 Crashlytic sdk 的情况下获取 cSYM 符号文件并上传到 Crashlytics 吗?
我还没有找到解决方案。
推荐阅读
- javascript - javascript函数内的访问变量(生成器)
- django - ModuleNotFoundError:没有名为“myapp.url”的模块
- android - 在这种情况下我可以使用 Firebase 吗?
- python - 使用 Jupyter-Microsoft Extensions for VSCode 的 .ipynb 文件不会以颜色为主题
- node.js - 如何使用节点 js 配置电子邮件标头
- kubernetes - Helm 升级错误。atlassian-jira 软件入口
- web-component - 如何在 Web 组件中获取 customElement 创建的对象?
- java - 计数出现的HashMap
- angular - PrimeNG - Tree DragDrop,节点不可拖动
- salesforce - 记录编辑表单的自定义按钮