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

相关推荐
小鹿软件办公几秒前
倒计时开启:Chromium 宣布几周内将全面切断 MV2 扩展支持
开发语言·javascript·ublock origin
codecrafter12311 分钟前
sh:在 Python 里直接调系统命令
开发语言·python·其他
Luminous.11 分钟前
C语言--day29
c语言·开发语言
逢君学术论文AI写作12 分钟前
Java第24课:会话技术CookieSession
java·开发语言
小小编程路14 分钟前
字符串转数字时,可能会遇到哪些问题?
java·开发语言·算法
许彰午19 分钟前
责任链模式实战——同一个框架里的两种链
java·开发语言·责任链模式
寻道码路21 分钟前
LangChain4j Java AI 应用开发实战(十四):手写 RAG 全流程 - 深入理解每个环节
java·开发语言·人工智能·ai
吴阿福|一人公司32 分钟前
Python 类变量修改的压力测试:高并发场景
开发语言·python
天天进步201539 分钟前
Tunnelto 源码解析 #13:自托管部署:Docker、环境变量、端口规划与单实例限制
开发语言
AI科技星40 分钟前
第三卷:质数王朝志(全卷定稿)
c语言·开发语言·汇编·electron·概率论