将Swift Package构建为通用二进制文件 Universal Binary

将Swift软件包构建为通用二进制文件

 

因此,在苹果在WWDC 2020期间宣布他们将把Mac从英特尔处理器过渡到苹果硅之后,现在是时候让每个人都准备好他们的软件了。

对大多数人来说,这次过渡可能更容易一些,特别是那些已经在iOS上支持arm64的人,但仍有工作要做,以确保工具和预编译的发行版支持使用Apple Silicon的Mac公开时准备好的两种架构。如果您还没有看到它,其中许多内容都包含在将Mac应用程序移植到Apple Silicon WWDC会话视频中。

如果您使用Xcode编译命令行工具,那么只要您将ARCHS构建设置设置为$(ARCHS_STANDARD)默认值),事情就非常简单。在Xcode 12中,此值被描述为标准架构(64位英特尔和ARM),但如果您使用Swift软件包管理器来构建和分发二进制文件或库,则没有此类选项。

相反,从Swift 5.3的Swift Package Manager(Xcode 12)开始,swift-build执行文件现在引入了--arch选项(apple/swift-package-manager#2787)。

构建通用二进制

首先,确保您使用的是正确版本的Xcode/Swift:

$ xcrun swift build --version
Swift Package Manager - Swift 5.3.0

注意:如果这不是Swift 5.3或更高版本,请使用xcode-select -s切换到Xcode 12测试版。

现在,在编译软件包时,请指定两个架构来编译通用二进制文件:

$ xcrun swift build -c release --arch arm64 --arch x86_64
$ xcrun swift build -c debug --arch arm64 --arch x86_64

要验证您构建的二进制文件是否包含两种架构,您可以使用lipo -info命令检查二进制文件并确认:

$ lipo -info .build/apple/Products/Release/swiftlint
Architectures in the fat file: .build/apple/Products/Release/swiftlint are: x86_64 arm64

$ lipo -info .build/apple/Products/Debug/swiftlint

 

就这样,将您的Swift软件包构建为通用二进制文件就这么简单!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值