{"record":{"id":"625612d900d0aa82","repo":"egametang/ET","slug":"clone-il2cpp-plus-fail-url-il2cppplusrepodir","errorCode":null,"errorMessage":"clone il2cpp_plus fail. url: {il2cppPlusRepoDir}","messagePattern":"clone il2cpp_plus fail\\. url: (.+?)","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"Packages/cn.etetet.hybridclr/Scripts/Editor/Share/Installer/InstallerController.cs","lineNumber":244,"sourceCode":"\n            // clone hybridclr\n            string hybridclrRepoURL = HybridCLRSettings.Instance.hybridclrRepoURL;\n            string hybridclrRepoDir = $\"{workDir}/{hybridclr_repo_path}\";\n            CloneBranch(workDir, hybridclrRepoURL, _curDefaultVersion.hybridclr.branch, hybridclrRepoDir);\n\n            if (!Directory.Exists(hybridclrRepoDir))\n            {\n                throw new Exception($\"clone hybridclr fail. url: {hybridclrRepoURL}\");\n            }\n\n            // clone il2cpp_plus\n            string il2cppPlusRepoURL = HybridCLRSettings.Instance.il2cppPlusRepoURL;\n            string il2cppPlusRepoDir = $\"{workDir}/{il2cpp_plus_repo_path}\";\n            CloneBranch(workDir, il2cppPlusRepoURL, _curDefaultVersion.il2cpp_plus.branch, il2cppPlusRepoDir);\n\n            if (!Directory.Exists(il2cppPlusRepoDir))\n            {\n                throw new Exception($\"clone il2cpp_plus fail. url: {il2cppPlusRepoDir}\");\n            }\n\n            Directory.Move($\"{hybridclrRepoDir}/hybridclr\", $\"{il2cppPlusRepoDir}/libil2cpp/hybridclr\");\n            return $\"{il2cppPlusRepoDir}/libil2cpp\";\n        }\n\n        public void InstallFromLocal(string libil2cppWithHybridclrSourceDir)\n        {\n            RunInitLocalIl2CppData(ApplicationIl2cppPath, libil2cppWithHybridclrSourceDir, _curVersion);\n        }\n\n        private void RunInitLocalIl2CppData(string editorIl2cppPath, string libil2cppWithHybridclrSourceDir, UnityVersion version)\n        {\n            if (GetCompatibleType() == CompatibleType.Incompatible)\n            {\n                Debug.LogError($\"Incompatible with current version, minimum compatible version: {GetCurrentUnityVersionMinCompatibleVersionStr()}\");\n                return;\n            }","sourceCodeStart":226,"sourceCodeEnd":262,"githubUrl":"https://github.com/egametang/ET/blob/5cab01f7a8bee5f49f4781eebe9e2b1c6d7ebe0f/Packages/cn.etetet.hybridclr/Scripts/Editor/Share/Installer/InstallerController.cs#L226-L262","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"if (string.IsNullOrEmpty(HybridCLRSettings.Instance.il2cppPlusRepoURL))\n    Debug.LogError(\"il2cppPlusRepoURL is empty in HybridCLR settings.\");","typeGuard":null,"tryCatchPattern":"try\n{\n    installer.PrepareLibil2cppWithHybridclrFromGitRepo();\n}\ncatch (Exception ex) when (ex.Message.Contains(\"clone il2cpp_plus fail\"))\n{\n    // Verify the branch exists on the remote, then retry; or use InstallFromLocal.\n}","preventionTips":["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."],"tags":["hybridclr","installer","git","network"],"backgroundTag":null,"analyzedSha":"5cab01f7a8bee5f49f4781eebe9e2b1c6d7ebe0f","analyzedAt":"2026-08-13T21:10:40.377Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}