2

你们中的一些人可能知道使用Crittercism dSYM 插件可以从 jenkins 自动上传 iOS 符号文件(dSYM)到 crittercism 服务器。

我正在寻找类似的插件,它可以直接从詹金斯上传 android proGuard 映射文件(“mapping.txt”)到 crittercism。

那些有一些相关想法的人,请分享你的想法。

4

4 回答 4

5

您现在可以使用专为 Android 和 Android NDK 构建的 API 自动上传 mapping.txt 文件。

更多信息可以在这里找到:http: //docs.crittercism.com/android/android.html#uploading-the-mapping-txt-file

作为说明,刚刚再次发现了这个问题,但这已经有一段时间了。

于 2013-12-09T21:48:54.110 回答
1

我也要求这个批评支持小组。

首先,我想感谢他们的迅速反应。

根据该邮件,Android 符号的自动上传选项尚不支持,这是他们希望在即将发布的版本中的目标。

让我们听听马口中的故事:


日期:2013 年 5 月 28 日星期二 18:13:09 +0000 发件人:support@crittercism.com 收件人:XXX@XXX.com 主题:回复:是否有任何 API 可以为 Android 应用上传“mapping.txt”

嗨,谢伦德拉,

很高兴听到你的消息。抱歉回复晚了,昨天是我们的假期,今天早上我才看到你的消息。

关于mapping.txt文件的自动上传,恐怕目前还做不到。我们已经为几个 sprint 计划了这个功能,但它还没有被包括在内。

我会继续将您的评论添加到我们一直在处理的功能请求中。本周我将努力安排这个功能,但它可能需要一些时间才能完全准备好。

您希望我们在发布时通知您吗?

是否有任何其他功能可以让您使用 Crittercism 获得更好的体验?

感谢您的反馈意见!

耶利米

2013 年 5 月 28 日下午 5:31,Shailendra Rajawat 写道:

Waiting for your response .
Regards,
Shailendra

On May 27, 2013 at 1:57 p.m. Shailendra Rajawat wrote:

    Hi,
    Hope you are doing great.
    i am using cttercism for android and i want to automate the process of uploading proGuard mapping file "mapping.txt" .
    i am using jenkins -CI and will be delighted if somehow jenkins can send mapping.txt to crittercism server automatically. its

仅当您提供此类 API 时才有可能。我知道这样的 api 可用于 iOS dSYM 文件上传。等待你的答复。

    Regards,
    Shailendra
于 2013-05-29T10:49:40.363 回答
1

我的解决方案运行良好。(本地构建和詹金斯构建)

对我来说,只有当构建来自詹金斯时才工作

确保您的 APPID、APPKEY 和路径(release_jenkins.... 正常发布)

build.gradle (app) (最后添加)

task uploadPro << {
    logger.error("Uploading mapping.txt file to crittercism")
    String temp = projectDir;
    temp = temp.replace("\\", "/");
    String[] cmd = ["curl", "-k", "https://app.crittercism.com/api_beta/proguard/AppIDSting",
                 "-F", "proguard=@" + temp + "/build/outputs/mapping/release_jenkins/mapping.txt",
                 "-F", "app_version=" + VERSION_NAME + '-' + VERSION_CODE,
                 "-F", "key=API_KEY"]
    logger.error("CMD : " + cmd)
    ProcessBuilder builder = new ProcessBuilder(cmd);
    Process process = builder.start();
    process.waitFor()
    println process.err.text
    println process.text
    }

gradle.buildFinished {
    //check your build type. I am not sure it's the best way to do it.
    logger.error("JSC : 이름 ! - " + gradle.startParameter.taskNames);
    if (gradle.startParameter.taskNames.contains("assembleRelease_jenkins")) {
        logger.error("JSC : 올리기 시작 ! - " + gradle.startParameter.taskNames);
        tasks.uploadPro.execute()
    } else {
        logger.error("JSC : PASS")
    }
}

詹金斯控制台输出捕获

于 2017-02-01T03:39:22.257 回答
1

在 crittercism doc Eddie 提到的之后,您可以将 curl 命令包装在 gradle 任务中。如果您将新任务设置为 assembleRelease finalizeBy,那么每次构建发布 apk 时都会上传一个映射文件。当然,您需要自己定义这些变量。

task uploadMapping(type: Exec, dependsOn: 'assembleRelease') {

    commandLine 'curl',
            "https://app.crittercism.com/api_beta/proguard/$critterAppId",
            '-F', 'proguard=@build/outputs/mapping/release/mapping.txt',
            '-F', "app_version=$appVersionName-$appVersionCode",
            '-F', "key=$critterKey"
}
assembleRelease.finalizedBy uploadMapping
于 2016-02-25T07:46:57.217 回答