我们最近升级了公司的 mac,这样我们就可以更新到 xcode 15(我们之前一直使用 xcode 14.2)。当我去构建我们正在为 iOS 开发相当长一段时间的应用程序时,我遇到了 clang++ 的问题,确切地说,它抛出了这个错误
clang exited with code1:
ld: warning: ignoring duplicate libraries: '-lSystem.IO.Compression.Native', '-lSystem.Native', '-lSystem.Net.Security.Native', '-lSystem.Security.Cryptography.Native.Apple', '-lcompression', '-lmono-component-debugger', '-lmono-component-diagnostics_tracing', '-lmono-component-hot_reload', '-lmonosgen-2.0', '-lxamarin-dotnet-debug'
ld: building for 'iOS-simulator', but linking in object file (/Users/user/Library/Caches/Xamarin/mtbs/builds/Project/8618b5190f6d6128dea985b3e984c867243d6f87f73c5927fc8c844f1e1e1b50/obj/Debug/net7.0-ios/iossimulator-arm64/linker-cache/e_sqlite3.a[arm64][2](sqlite3.o)) built for 'iOS'
1>clang: error: linker command failed with exit code 1 (use -v to see invocation)
查看项目后我找到了问题的原因。该应用程序使用 Dev Express 的 XPO 库,该库依赖于 Microsoft.Data.Sqlite,并且该库在安装时会产生问题。
我尝试了所述库的不同版本,具体来说我尝试了以下
仍然没有骰子,我什至创建了一个全新的项目,并逐一添加了库,但安装 Microsoft.Data.Sqlite 后,它仍然在新应用程序上崩溃。
作为绝望的措施,我什至将模拟器从 17.0 更改为 16.2,你可以猜到效果如何。
我与 Dev Express 支持人员交谈并得到了答案。问题似乎出在 Microsoft 方面,奇怪的是它在 iOS 16.2 上不起作用,但我还没有在 iOS 16.2 和 16.1 上测试过 Microsoft.Data.Sqlite 的多个版本。
将来当 Microsoft.Data.Sqlite 8.0.0 发布时,这个问题可能会得到解决,目前它处于预发布状态。
如果我从 Dev Express 听到任何其他消息,我只会在这篇文章中添加评论来通知您。