【问题标题】:Xcode error: building for iOS Simulator, but linking in object file built for iOSXcode 错误:为 iOS 模拟器构建,但在为 iOS 构建的目标文件中链接
【发布时间】:2021-05-27 02:03:58
【问题描述】:

在购买 Macbook Air M1 之前,从来没有遇到过很多问题。就在昨天,我的应用程序在 Xcode 12.4 中构建时没有任何错误。我没有进行任何特殊更改,今天构建失败:

/Users/userName/Projects/MyApp/ios/Pods/OpenSSL-Universal/ios/lib/libcrypto.a(cryptlib.o),为 iOS 模拟器构建,但在为 iOS 构建的目标文件中链接,文件 '/架构 arm64clang 的 Users/userName/Projects/MyApp/ios/Pods/OpenSSL-Universal/ios/lib/libcrypto.a':错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

请你帮帮我,如何解决?

【问题讨论】:

    标签: swift xcode build cocoapods apple-silicon


    【解决方案1】:

    看起来像 OpenSSL-Universal CocoaPods 发行版中缺少的 Arm64 模拟器切片。

    确保您使用的是最新版本的 pod update,如果仍有问题,请联系 OpenSSL-Universal。

    【讨论】:

    • 此问题与缺少切片无关。我在使用另一个框架时遇到了同样的错误,女巫是一个包含所有架构的胖二进制文件。
    • 旧式框架不适用于 M1。需要为 arm64 提供模拟器和设备切片的 xcframeworks。
    • 似乎问题归结为链接器如何使用男子气概二进制文件中的标志来区分模拟器和本机二进制文件。完全有可能拥有一个包含有效架构和头文件的“旧式”胖框架,以在所有环境中工作,包括 arm64 模拟器。为此,供应商必须更新二进制文件,因为唯一的其他解决方案是修补二进制文件,如这篇优秀的文章所述:bogo.wtf/arm64-to-sim.html
    • 我已更正,问题确实与缺少切片有关
    猜你喜欢
    • 2022-07-02
    • 2021-01-08
    • 2022-06-23
    • 2021-12-25
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 2021-04-28
    • 2022-01-08
    相关资源
    最近更新 更多