微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 M1 mac 上构建一个支持 Intel mac 上的 iOS 模拟器的静态库?

如何解决如何在 M1 mac 上构建一个支持 Intel mac 上的 iOS 模拟器的静态库?

我有一个胖 iOS 库,它支持真实设备 (arm64...) 和 Intel Mac (x86_64) 的 iOS 模拟器。但是当我切换到 M1 mac 时,事情变得艰难。

如果我使用旧库,我将失败并显示错误 xxx.a (xxx.o) building for iOS Simulator,but linking in object file built for iOS,file 'xxx' for architecture arm64。看来我必须构建一个 xcframework,其中包含针对不同目的地的二进制文件

所以我尝试构建不同的切片,并希望将它们捆绑为一个 xcframework。但我终于发现我不知道如何用 M1 Mac 构建 x86_64 切片。

我的问题是

  • 如何在 M1 mac 上构建一个支持 Intel Mac 的 iOS 模拟器的静态库?
  • 还是我一开始的想法就错了?

解决方法

我未能在 M1 Mac 上获得 x86_64 切片的原因是我的构建设置中有一个遗留选项:有效架构。

删除此配置并运行标准流程。然后就可以顺利得到包含x86_64架构的库了。

xcodebuild archive --destination="generic/platform=iOS Simulator" ...

如果您的库代码不是作为 Xcode 项目组织的,而是在下面使用了 clang 工具链。你可以参考这个link。简而言之,以 arm64-apple-ios14.3-simulator 之类的格式指定目标

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。