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

标签 ios xcode universal-binary apple-silicon apple-m1

我有一个胖 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 切片的原因是我的build设置中有一个遗留选项:有效架构。
    删除此配置并运行标准流程。然后您将顺利获得包含 x86_64 架构的库。

    xcodebuild archive --destination="generic/platform=iOS Simulator" ...
    
    如果您的库代码不是作为 Xcode 项目组织的,而是在下面使用 clang 工具链。你可以引用这个link .简而言之,以 arm64-apple-ios14.3-simulator 等格式指定目标

    关于ios - 如何在 M1 mac 上构建一个支持 Intel mac 上的 iOS 模拟器的静态库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65564805/

    相关文章:

    iOS 定义对象的可触摸区域,将触摸限制在 self 的 subview 上

    ios - 是否有 "space"字符未从 UILabel 末尾修剪?

    ios - GradientLayer 在 Swift 中的单元格标签上重叠?

    ios - 如何在 xcode 中查找与调试 View 层次结构相关的代码?

    python - OSX 上的 Virtualenv 使用与我指定的仅 32 位 Python 二进制文件不同的通用 Python 二进制文件

    xcode - 我们如何将 ppc/ppc64 以及完整的 10.4/10.5 SDK 支持恢复到 Xcode 4?

    iphone - 检查 UI_USER_INTERFACE_IDIOM() 以确定它是 iPhone 还是 iPad 是否安全?

    ios - 所有章节标题显示在一个章节中

    ios - 使用字体样式和字体大小复制自定义字体

    xcode - Swift、UICollectionView 和 UINavigationBar 上边距问题