你们中的一些人可能知道使用Crittercism dSYM 插件可以从 jenkins 自动上传 iOS 符号文件(dSYM)到 crittercism 服务器。
我正在寻找类似的插件,它可以直接从詹金斯上传 android proGuard 映射文件(“mapping.txt”)到 crittercism。
那些有一些相关想法的人,请分享你的想法。
你们中的一些人可能知道使用Crittercism dSYM 插件可以从 jenkins 自动上传 iOS 符号文件(dSYM)到 crittercism 服务器。
我正在寻找类似的插件,它可以直接从詹金斯上传 android proGuard 映射文件(“mapping.txt”)到 crittercism。
那些有一些相关想法的人,请分享你的想法。
您现在可以使用专为 Android 和 Android NDK 构建的 API 自动上传 mapping.txt 文件。
更多信息可以在这里找到:http: //docs.crittercism.com/android/android.html#uploading-the-mapping-txt-file
作为说明,刚刚再次发现了这个问题,但这已经有一段时间了。
我也要求这个批评支持小组。
首先,我想感谢他们的迅速反应。
根据该邮件,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
我的解决方案运行良好。(本地构建和詹金斯构建)
对我来说,只有当构建来自詹金斯时才工作
确保您的 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")
}
}
在 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