繁体   English   中英

Android gradle 在每次构建时上传 NDK 符号

[英]Android gradle Upload NDK symbols on every build

我想在每次构建时上传 NDK 符号,

在我的 Android 里面 gradle 我曾经有:

applicationVariants.all { variant ->
    def variantName = variant.name.capitalize()
    println("symbols will be added on varinat ${variantName}")
    def task = project.task("ndkBuild${variantName}")
    task.finalizedBy project.("uploadCrashlyticsSymbolFile${variantName}")
}
  1. 自从我移至 FireBase 后,这不再编译:

    无法获取未知属性“uploadCrashlyticsSymbolFile”

  2. 我没有看到此任务正在运行。

  3. 我基本上需要这个任务在每个构建上运行:

    ./gradlew app:assembleBUILD_VARIANT\ app:uploadCrashlyticsSymbolFileBUILD_VARIANT

将此添加到应用程序的build.gradle底部android {... }块之外。

afterEvaluate {
    android.applicationVariants.all { variant ->
        def variantName = variant.name.capitalize()
        println("symbols will be added on variant ${variantName}")

        def task = tasks.findByName("assemble${variantName}")
        def uploader = "uploadCrashlyticsSymbolFile${variantName}"

        // This triggers after task completion
        task?.finalizedBy(uploader)

        // This ensures ordering
        task?.mustRunAfter(uploader)
    }
}

您可以尝试不afterEvaluate块。 它应该仍然有效。

您可能需要使用 Firebase App Distribution,它允许自动上传发布构建工件 - 如果您有带有匹配调试符号的工件,它们实际上可以使用 - 如果没有匹配的程序集,这些符号有些无关紧要。

数字 1 显然是一个错误的假设,因为文档明确指出:

./gradlew app:assembleBUILD_VARIANT app:uploadCrashlyticsSymbolFileBUILD_VARIANT

这已经在这里得到了回答。


为了始终上传,可以创建一个任务依赖项:

assembleRelease.finalizedBy uploadCrashlyticsSymbolFileRelease

这可能需要设置unstrippedNativeLibsDirstrippedNativeLibsDir

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM