You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Unity安卓构建中配置自定义Gradle构建标识gradle build --scan

在Unity安卓构建中自动执行gradle build --scan的方案

方法1:通过构建后脚本自动触发扫描

创建一个Editor脚本(放在Assets/Editor目录下),让Unity完成安卓项目导出后自动执行Gradle扫描命令:

using UnityEditor;
using UnityEditor.Build;
using UnityEditor.Build.Reporting;
using System.Diagnostics;

public class GradleScanPostBuild : IPostprocessBuildWithReport
{
    public int callbackOrder => 10;

    public void OnPostprocessBuild(BuildReport report)
    {
        if (report.summary.platform != BuildTarget.Android) return;

        string projectPath = report.summary.outputPath;
        ProcessStartInfo startInfo = new ProcessStartInfo
        {
            FileName = "gradlew",
            Arguments = "build --scan --scan-terms-of-service-agree yes",
            WorkingDirectory = projectPath,
            RedirectStandardOutput = true,
            RedirectStandardError = true,
            UseShellExecute = false,
            CreateNoWindow = true
        };

#if UNITY_EDITOR_WIN
        startInfo.FileName = "gradlew.bat";
#endif

        using (Process process = Process.Start(startInfo))
        {
            process.WaitForExit();
            UnityEngine.Debug.Log(process.StandardOutput.ReadToEnd());
            if (process.ExitCode != 0)
            {
                UnityEngine.Debug.LogError("Gradle scan failed: " + process.StandardError.ReadToEnd());
            }
        }
    }
}
  • 脚本会自动匹配Windows/macOS/Linux的gradlew命令
  • --scan-terms-of-service-agree yes参数直接同意服务条款,避免交互

方法2:修改Gradle模板,自定义带扫描的构建任务

  1. 打开Unity,进入Edit > Project Settings > Player > Android > Publishing Settings,勾选Custom Gradle Template,生成Assets/Plugins/Android/mainTemplate.gradle
  2. 打开该文件,在末尾添加自定义任务:
task buildWithScan(type: GradleBuild) {
    tasks = ['assembleRelease'] // 可替换为你需要的构建任务,比如assembleDebug
    startParameter.apply {
        setBuildScan(true)
        buildScanTermsOfServiceUrl = 'https://gradle.com/terms-of-service'
        buildScanTermsOfServiceAgree = 'yes'
    }
}
  1. 在Jenkins的Unity构建命令中,添加-gradleTask buildWithScan参数,让Unity直接调用这个带扫描的任务:
Unity -batchmode -quit -executeMethod UnityEditor.BuildPipeline.BuildPlayer "场景路径" "输出路径" Android -gradleTask buildWithScan

关键注意事项

  • Jenkins构建时,确保构建机器上的gradlew有执行权限(macOS/Linux需执行chmod +x 项目路径/gradlew)
  • 若Unity直接构建APK而非导出项目,方法2的自定义任务方案更适配,无需额外处理导出路径
  • 扫描报告的访问链接会输出在构建日志中,可直接查看所有依赖项详情

内容的提问来源于stack exchange,提问作者Faimen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 17:06:27