介绍

An important message

A security vulnerability was identified that affects games and applications built on Unity versions 2017.1 and later for Android, Windows, Linux, and macOS operating systems. There is no evidence of any exploitation of the vulnerability, nor has there been any impact on users or customers. We have proactively provided fixes that address the vulnerability, and they are already available to all developers. The vulnerability was responsibly reported by the security researcher RyotaK, and we thank him for working with us.

Games and applications already built:

  • We strongly recommend you download the patched update for your version of the Unity Editor, recompile, and republish your application.
  • We have provided a tool to patch already-built applications dating back to 2017.1 for Android, Windows, and macOS for developers who prefer not to rebuild their projects. The tool can be accessed here.

简单说就是 Unity CVE-2025-59489 漏洞影响了从 Unity 2017.1 到现在的所有版本,因此需要重新构建所有已发布的游戏才可以修复漏洞。

推荐通过以下官方说明页面详细了解具体问题及对应方案:

环境

  • Windows 10 22H2
  • Unity 2019.4.41f1
  • Unity 2022.3.62f1

代理服务器

截止到 2025-10-19,由于 Unity 中国强制下载链接跳转到特供版,因此必须使用美国代理服务器才能下载。

以下所有方法的前提是配置好这个美国代理服务器。

在线安装 Unity

在线安装优点

Unity 虽然在每个版本的页面中都提供了相关的组件下载,但是相对于 Unity Hub 在线安装,缺少了关键的 Android SDK、NDK、JDK。

由于不同 Unity 版本使用了不同的Android SDK、NDK、JDK,想要自己处理太过于麻烦。

Unity Hub 内部存储有每个版本对应的 Android SDK、NDK、JDK 版本下载地址并且会自动安装,使用起来极为方便。

代理 Unity Hub

代理模式

使用 CMD 运行以下命令,设置代理服务器启动 Unity Hub。

1
2
3
set HTTP_PROXY=http://127.0.0.1:7897
set HTTPS_PROXY=http://127.0.0.1:7897
start "" "C:\Program Files\Unity Hub\Unity Hub.exe"

代理服务器在其他机器上时可以修改上面的 IP 部分。

TUN 模式

直接打开代理软件的 TUN 模式,然后运行 Unity Hub。

代理 Unity 版本下载页面

使用美国服务器代理打开下载页面链接,不然页面会自动跳转到 Unity 中国。

点击 Install 按钮通过 unityhub:// 协议链接进行安装,稍等片刻后 Unity Hub 就会弹出对应的组件选择页面。

在网络不好的情况下,安装时推荐优先编辑器,这样不会因为网络中断导致整个安装全部失败,然后再通过 Add Modules 方式顺序安装其他所有需要的组件。

实测

通过在线安装了 Unity 2019.4.41f1 与 Unity 2022.3.62f2,可以正常使用。

离线安装 Unity

我认为最好的方式是在一台可以在线安装的机器上安装好 Unity,然后将整个 Unity 安装目录打包拷贝到需要的机器上。

如果担心 Unity 安装程序安装了对应的运行时库,那么可以下载 Unity 编辑器的安装包先安装一次,然后再将整个 Unity 安装目录拷贝并覆盖现有的 Unity 安装目录。

组件下载方法

Chrome 默认不支持断点续传,由于文件过大可能在下载过程中经常中断,因此推荐使用支持断点自动续传的 FDM 下载,设置为手动使用代理,确保下载到的链接域名是 unity3d.com,否则就会下载到 unity3d.cn 中国特供版。

FDM 本身有数字签名,而且支持只为当前用户安装,安装过程不需要管理员权限,有中文界面、跨平台支持 Windows macOS Linux。

补丁方法

由于需要在已发布的程序上打补丁,因此比较麻烦,只建议手动处理。

如果项目支持自动打包,建议升级 Unity,而不是增加一步打补丁的步骤。由于打补丁需要替换文件后重新签名,所以比较消耗时间。

Android SDK buildtools 问题

使用 Unity 2019.4.41f1 手动打包 Android 时会弹出提示:

Detected outdated SDK Build Tools version 28.0.3 when the min version is 29.0.2 UnityException: SDK Build Tools version 28.0.3 < 29.0.2. Note: when building with Gradle, “Use Highest Installed” option will update SDK Build Tools as well.

Update Android SDK Use Highest Installed Cancel

在这个弹窗处如果点击了 Update Android SDKUse Highest Installed 按钮,Unity 会记住这个行为,不会在后续的命令行运行中提示以下错误。

使用命令行打包时会提示:

Detected outdated SDK Build Tools version 28.0.3 when the min version is 29.0.2 UnauthorizedAccessException: Access to the path “C:/Program Files/Unity/Hub/Editor/2019.4.41f1/Editor/Data/PlaybackEngines/AndroidPlayer\SDK\tempToolsDir” is denied.

使用管理员运行 Android Studio,在 Settings 中 SDK 页面:

  1. 首先切换 SDK 目录到 C:/Program Files/Unity/Hub/Editor/2019.4.41f1/Editor/Data/PlaybackEngines/AndroidPlayer\SDK\
  2. 切换完成后返回 SDK 页面,手动选择 BuildTools 29.0.2 安装,必须是这个版本,即使有更高的版本 Unity 运行时只会检查这个版本。
  3. Unity 命令行运行打包。

如果不安装这个版本,只能手动打一次 Android 包,在弹出前面的提示时点击 Update Android SDKUse Highest Installed 按钮,后续就不会有问题了。