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

相关推荐
Scott9999HH7 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
码智社8 小时前
AES加密原理详解及Java实现加解密实战
java·开发语言
AI云海8 小时前
python 列表、元组、集合和字典
开发语言·python
2501_916008899 小时前
iOS应用开发工具全面解析:如何选择与优化开发效率
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
a4493153629 小时前
iPhone Face ID 故障的分层诊断——原深感系统与主板加密配对机制
macos·ios·电脑·cocoa·iphone
萧瑟余晖9 小时前
JDK 26 新特性详解
java·开发语言
白玉cfc10 小时前
【iOS】内存五大分区
macos·ios·cocoa
马优晨10 小时前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
人邮异步社区11 小时前
怎么把C语言学到精通?
c语言·开发语言
心平气和量大福大12 小时前
C#-WPF-控件-TextBox 数据绑定
开发语言·c#·wpf