Unity 2019.4+ 中的 Apple Mach-O 链接器 (ld) 错误

Apple Mach-O Linker (ld) Error in Unity 2019.4+

提问人:Oleksii Latushko 提问时间:8/30/2020 更新时间:8/30/2020 访问量:350

问:

将项目从 Unity 2018.4.19 (LTS) 升级到 2019.4.5 (LTS) 后,它停止了 iOS 的成功构建。有苹果链接器错误:XCode Linker Errors

“_inflate”,引用自:libSkyTrakSW.a(libcurl_la-content_encoding.o) 中的_inflate_stream

“_zlibVersion”,引用自:libSkyTrakSW.a(libcurl_la-content_encoding.o) 中的_Curl_unencode_gzip_write

“_inflateInit2”,引用自:libSkyTrakSW.a(libcurl_la-content_encoding.o) 中的_inflate_stream

“_inflateEnd”,引用自:libSkyTrakSW.a(libcurl_la-content_encoding.o) 中的_inflate_stream

“_inflateInit”,引用自:libSkyTrakSW.a(libcurl_la-content_encoding.o) 中的_Curl_unencode_deflate_write

该项目包含本机 C++ 静态库 libSkyTrakSW.a,它是在 XCode 中从源代码构建的,因此我可以重新编译它。我猜 Unity 中发生了一些变化,因为具有相同 XCode 版本 (10.3) 的同一项目使用 Unity 2018.4 成功构建,而使用 Unity 2019.4 失败。

我发现,这个错误与未链接的库libz.tbd有关,但我也链接了这个库。

此外,我还添加了Security.framework作为依赖项。

问题是如何修复这些错误?也许我需要使用一些特殊标志重新编译 libSkyTrakSW.a 库或在 Unity 项目中添加一些特殊标志。

最新的 Unity 2020.1.3 也存在相同的错误。请帮忙。谢谢!

C++ iOS Xcode unity-game-engine 链接器错误

评论

0赞 Stephan 8/30/2020
iOS 构建是否适用于空项目?另外,您可以暂时删除本机 C++ 静态库和 security.framework 用于测试目的吗?也许你会通过这样做找到真正的问题。
0赞 BugFinder 8/30/2020
确定您提到的那个没有附带的 zlib 库?
0赞 Oleksii Latushko 8/30/2020
不,项目中没有其他 libz 库。我在上面写道,完全相同的项目在Unity 2018.4中取得了成功。是的,我试图删除 Security.framework 和 libz.tbd 的结果相同。我无法删除静态库,因为我使用的是 C# 代码中的本机调用。

答: 暂无答案