你们中的一些人可能会发现使用Crittercism dSYM Plugin可以自动将jenkins的iOS符号化文件(dSYM)上传到生命服务器。
我正在寻找类似的插件,它可以直接从jenkins将android proGuard映射文件(“mapping.txt”)上传到crittercism。
那些有相关想法的人,请分享你的想法。
答案 0 :(得分:5)
现在,您可以使用专为Android和Android NDK构建的API自动上传mapping.txt文件。
可在此处找到更多信息:http://docs.crittercism.com/android/android.html#uploading-the-mapping-txt-file
作为一个说明,再次发现了这个问题,但现在已经有一段时间了。
答案 1 :(得分:1)
我也问过这个批评支持小组。
首先,我要感谢他们的迅速反应。
根据该邮件,尚未支持Android符号的自动上传选项,这是他们希望在即将发布的版本中定位的内容。
让我们听听马口的故事:日期:2013年5月28日星期二18:13:09 +0000来自:support@crittercism.com 收件人:XXX@XXX.com主题:Re:是否有任何API 上传“mapping.txt”for android app
嗨Shailendra,
很高兴收到你的来信。对不起昨天的回复延迟 这是我们的假期,今天早上我只看到了你的消息。
关于mapping.txt文件的自动上传,我很害怕 这是目前不可能的。我们一直在为此计划此功能 几个短跑,但尚未包括在内。
我会继续将您的评论添加到我们的功能请求中 一直在努力。本周我将推动获得此功能 预定,但可能需要一些时间才能完全准备好。
您希望我们在发布时通知您吗?
是否有任何其他功能可以使用Crittercism a 更好的体验?
感谢您的反馈!
耶
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
答案 2 :(得分:1)
遵循批评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
答案 3 :(得分:1)
我的解决方案工作正常。(本地构建和jenkins构建)
对我来说,只有在构建来自jenkins时才能工作
确保您的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")
}
}