Linux下源码编译UE5运行GenerateProjectFiles.sh报错无法生成项目文件
UE5 Linux端GenerateProjectFiles.sh SSL证书报错排查方案
问题复现场景
在ArcoLinux发行版(内核版本5.18.1-arch1-1)环境下,从源码拉取UE5.0代码、执行完Setup.sh脚本后,运行./GenerateProjectFiles.sh持续抛出如下错误:
./GenerateProjectFiles.sh Attempting to set up UE pretty printers for gdb (existing UEPrinters.py, if any, will be overwritten)... updated UEPrinters.py found necessary entries in ~/.gdbinit file, not changing it. Setting up Unreal Engine 5 project files... Setting up bundled DotNet SDK /mnt/Evo970/Work/Engine/UE_5.0/Engine/Binaries/ThirdParty/DotNet/Linux/sdk/3.1.401/NuGet.targets(255,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/mnt/Evo970/Work/Engine/UE_5.0/Engine/Source/Programs/UnrealBuildTool/UnrealBuildTool.csproj] /mnt/Evo970/Work/Engine/UE_5.0/Engine/Binaries/ThirdParty/DotNet/Linux/sdk/3.1.401/NuGet.targets(255,5): error : The SSL connection could not be established, see inner exception. [/mnt/Evo970/Work/Engine/UE_5.0/Engine/Source/Programs/UnrealBuildTool/UnrealBuildTool.csproj] /mnt/Evo970/Work/Engine/UE_5.0/Engine/Binaries/ThirdParty/DotNet/Linux/sdk/3.1.401/NuGet.targets(255,5): error : The remote certificate is invalid according to the validation procedure. [/mnt/Evo970/Work/Engine/UE_5.0/Engine/Source/Programs/UnrealBuildTool/UnrealBuildTool.csproj] GenerateProjectFiles ERROR: Failed to build UnrealBuildTool
本地已安装系统级dotnet sdk与运行时,同时从AUR安装了dotnet 3.0版本。
问题根因
UE5.0自带的第三方DotNet 3.1.401 SDK默认不会主动读取Arch/ArcoLinux系统的CA证书存储,系统升级ca-certificates组件后,自带SDK内置的根证书列表与系统不匹配、部分证书过期,导致拉取NuGet源依赖时SSL证书校验失败,无法编译UnrealBuildTool。
修复步骤
按优先级依次尝试以下方案:
- 优先使用系统已安装的DotNet SDK跳过自带旧版本,执行脚本前先导出环境变量:
cd /mnt/Evo970/Work/Engine/UE_5.0 export UE_USE_SYSTEM_DOTNET=1 ./GenerateProjectFiles.sh
执行前可以先跑dotnet --list-sdks确认系统已安装3.1+版本的SDK,兼容UE5.0的构建要求。
- 如果上述操作仍报证书错误,追加指定系统CA证书路径的环境变量再执行:
cd /mnt/Evo970/Work/Engine/UE_5.0 export UE_USE_SYSTEM_DOTNET=1 export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt ./GenerateProjectFiles.sh
- 若必须使用UE自带的DotNet SDK,手动为自带SDK同步系统CA证书:
# 进入UE自带DotNet的根目录 cd /mnt/Evo970/Work/Engine/UE_5.0/Engine/Binaries/ThirdParty/DotNet/Linux/ # 清理旧证书,同步系统根证书 ./dotnet dev-certs https --clean export DOTNET_ROOT=$(pwd) $DOTNET_ROOT/dotnet tool install -g dotnet-certificate-tool ~/.dotnet/tools/certificate-tool add --file /etc/ssl/certs/ca-certificates.crt
完成后回到引擎根目录重新执行生成脚本即可。
- 若本地网络访问NuGet官方源延迟高、连接不稳定,可在
~/.nuget/NuGet/目录下配置NuGet.Config文件添加国内镜像源,排除网络因素导致的连接异常。
内容的提问来源于stack exchange,提问作者Revan1611
相关产品推荐
相关产品推荐

