focus-creative-games / hybridclr

HybridCLR是一个特性完整、零成本、高性能、低内存的Unity全平台原生c#热更新解决方案。 HybridCLR is a fully featured, zero-cost, high-performance, low-memory solution for Unity's all-platform native c# hotupdate.
https://code-philosophy.com/
MIT License
6.61k stars 672 forks source link

iOS平台下使用HybridCLR在Unity中打包XCode项目时出现3159 duplicate symbols错误 #131

Closed cr-zhichen closed 7 months ago

cr-zhichen commented 7 months ago

描述问题 在Unity中创建新场景,并引入HybridCLR后,直接打包为XCode项目时,在XCode打包运行过程中报错:"3159 duplicate symbols"。在打包前已经执行了HybridCLR/Installer与HybridCLR/Generate/All步骤,并且在MacOS与Windows平台下都尝试进行了IOS打包,均出现此问题。

环境

复现步骤

  1. 在Unity中创建一个新场景。
  2. 引入HybridCLR。
  3. 执行HybridCLR/Installer与HybridCLR/Generate/All步骤。
  4. 直接在Unity中打包生成XCode项目。
  5. 在XCode中尝试构建并运行项目。
  6. 观察到错误提示:“3159 duplicate symbols”。

期望的结果 期望在执行上述步骤后,能够在XCode中成功构建并运行项目,而不会出现duplicate symbols错误。

截图或者日志 6625b88d0077f.png

补充信息 在不同的操作系统(MacOS和Windows)上都进行了尝试,错误均一致,表明问题可能与操作系统环境无关。

cr-zhichen commented 7 months ago

在m1 mac上,本机测试可以正常编译,使用模拟器出现上述问题,我看到在Unity中,目标SDK如果选择为Simulator SDK后,下方架构将自动设置为x86_64,请问是否不支持使用这种方式编译,并在虚拟机调试?

pirunxi commented 7 months ago

跟这个无关,你截出几个重复符号的日志

cr-zhichen commented 7 months ago

下面是截图的部分重复符号日志:

image

完整日志如下:

重复符号日志.txt

跟这个无关,你截出几个重复符号的日志

pirunxi commented 7 months ago

导出工程时理论上要会移除libil2cpp.a,但你工程中仍然还有libil2cpp.a,导致符号重复了。这个问题理论上有一些xcode工程知识可以解决,你研究一下。 我们会查一下这个问题。