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

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

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

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

如果您使用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软件包构建为通用二进制文件就这么简单!

相关推荐
VBA6337几秒前
VBA信息获取与处理专题五第三节:发送带附件的电子邮件
开发语言
元亓亓亓3 分钟前
Leet热题100--208. 实现 Trie (前缀树)--中等
java·开发语言
拾荒的小海螺3 分钟前
C#:OpenCvSharp 实现图像处理的技术指南
开发语言·图像处理·c#
自由随风飘5 小时前
python 题目练习1~5
开发语言·python
Bony-6 小时前
Go语言完全学习指南 - 从基础到精通------语言基础篇
服务器·开发语言·golang
fl1768317 小时前
基于python的天气预报系统设计和可视化数据分析源码+报告
开发语言·python·数据分析
ACP广源盛139246256737 小时前
(ACP广源盛)GSV6172---MIPI/LVDS 信号转换为 Type-C/DisplayPort 1.4/HDMI 2.0 并集成嵌入式 MCU
c语言·开发语言·单片机·嵌入式硬件·音视频
不穿格子的程序员8 小时前
从零开始刷算法-栈-括号匹配
java·开发语言·
雪域迷影8 小时前
C#中通过get请求获取api.open-meteo.com网站的天气数据
开发语言·http·c#·get
yue0088 小时前
C#类继承
java·开发语言·c#