egametang/ET · error · Exception
clone il2cpp_plus fail. url: {il2cppPlusRepoDir}
Error message
clone il2cpp_plus fail. url: {il2cppPlusRepoDir} What it means
Thrown by InstallerController.PrepareLibil2cppWithHybridclrFromGitRepo when the il2cpp_plus repository directory is missing after CloneBranch. il2cpp_plus is the patched Unity IL2CPP source that hosts the hybridclr integration; the installer needs both repos to assemble the final libil2cpp.
Source
Thrown at Packages/cn.etetet.hybridclr/Scripts/Editor/Share/Installer/InstallerController.cs:244
// clone hybridclr
string hybridclrRepoURL = HybridCLRSettings.Instance.hybridclrRepoURL;
string hybridclrRepoDir = $"{workDir}/{hybridclr_repo_path}";
CloneBranch(workDir, hybridclrRepoURL, _curDefaultVersion.hybridclr.branch, hybridclrRepoDir);
if (!Directory.Exists(hybridclrRepoDir))
{
throw new Exception($"clone hybridclr fail. url: {hybridclrRepoURL}");
}
// clone il2cpp_plus
string il2cppPlusRepoURL = HybridCLRSettings.Instance.il2cppPlusRepoURL;
string il2cppPlusRepoDir = $"{workDir}/{il2cpp_plus_repo_path}";
CloneBranch(workDir, il2cppPlusRepoURL, _curDefaultVersion.il2cpp_plus.branch, il2cppPlusRepoDir);
if (!Directory.Exists(il2cppPlusRepoDir))
{
throw new Exception($"clone il2cpp_plus fail. url: {il2cppPlusRepoDir}");
}
Directory.Move($"{hybridclrRepoDir}/hybridclr", $"{il2cppPlusRepoDir}/libil2cpp/hybridclr");
return $"{il2cppPlusRepoDir}/libil2cpp";
}
public void InstallFromLocal(string libil2cppWithHybridclrSourceDir)
{
RunInitLocalIl2CppData(ApplicationIl2cppPath, libil2cppWithHybridclrSourceDir, _curVersion);
}
private void RunInitLocalIl2CppData(string editorIl2cppPath, string libil2cppWithHybridclrSourceDir, UnityVersion version)
{
if (GetCompatibleType() == CompatibleType.Incompatible)
{
Debug.LogError($"Incompatible with current version, minimum compatible version: {GetCurrentUnityVersionMinCompatibleVersionStr()}");
return;
}View on GitHub (pinned to 5cab01f7a8)
Solutions
- Confirm HybridCLRSettings.il2cppPlusRepoURL is correct and reachable (it must be the il2cpp_plus repo matching your Unity version branch).
- Ensure the branch in _curDefaultVersion.il2cpp_plus.branch exists on that remote.
- Re-run HybridCLR/Installer after fixing network/credentials; the installer will attempt both clones again.
- Use InstallFromLocal if you have a pre-built libil2cpp-with-hybridclr directory to avoid cloning entirely.
Defensive patterns
Strategy: retry
Validate before calling
if (string.IsNullOrEmpty(HybridCLRSettings.Instance.il2cppPlusRepoURL))
Debug.LogError("il2cppPlusRepoURL is empty in HybridCLR settings."); Try / catch
try
{
installer.PrepareLibil2cppWithHybridclrFromGitRepo();
}
catch (Exception ex) when (ex.Message.Contains("clone il2cpp_plus fail"))
{
// Verify the branch exists on the remote, then retry; or use InstallFromLocal.
} Prevention
- Confirm both repo URLs and branches are correct in HybridCLR settings before installing.
- Use InstallFromLocal for CI to avoid network dependency entirely.
- Cache the cloned repos across installer runs to avoid re-cloning.
When it happens
Trigger: Same CloneBranch mechanism as error 185 but for il2cppPlusRepoURL. The directory check on il2cppPlusRepoDir fails, indicating the clone of the second repository did not succeed.
Common situations: Same network/auth/PATH causes as 185, plus: the hybridclr repo cloned fine but the il2cpp_plus URL is stale or points to a different host; the branch name configured for il2cpp_plus does not exist on the remote; partial network failure between the two clones.
Related errors
- clone hybridclr fail. url: {hybridclrRepoURL}
- You have not initialized HybridCLR, please install it via me
- You must run `HybridCLR/Installer` after upgrading package
- You have not initialized HybridCLR, please install it via me
- the modified Unity.IL2CPP.dll of {curVersionStr} isn't found
AI-assisted analysis of egametang/ET@5cab01f7a8 (2026-08-13).
Data as JSON: /api/errors/625612d900d0aa82.
Report an issue: GitHub.