我目前正在构建我真正想用作框架的代码,方法是能够像使用 Apple 框架一样import MyCustomFramework
(将来我也想分发它们)。
我对此有一些疑问:
- 构建我想要的框架的最简单方法是什么?是否可以直接在 Xcode 中执行此操作,还是需要在终端中使用命令行工具?
- 这个框架是否与多个平台兼容(我正在考虑所有 Apple 平台,但也考虑 Swift 支持的其他平台,例如 Linux)。
- Swift 框架和 Swift 包管理器之间的确切联系是什么?我需要 SPM 来构建我的框架,还是这两种不同的工具?
谢谢。
最佳答案
目前,Swift Package Manager (SPM) 和 Xcode Frameworks 遵循不同的路径。对于 Linux,您必须遵循 SPM 路径,因为编译 Linux swift 应用程序的唯一方法是使用 SPM。对于 macOS 命令行应用程序,您也可以遵循 SPM 路径。对于 iOS 应用程序和 macOS UI 应用程序,您必须遵循 Xcode Frameworks 路径。
对于 SPM 路径,您使框架的项目SPM 启用:添加 Package.swift
文件并根据 SPM 约定设置项目的文件布局.该项目还必须是一个 git 存储库。然后可以将项目的 git 存储库指定为对其他支持 SPM 的框架/应用程序的依赖项。每个启用 SPM 的项目都可以随时使用 swift package generate-xcodeproj
命令转换为 Xcode 项目。
Xcode Frameworks 路径是使用 Xcode 框架的标准、SPM 之前的方式,这在其他地方有描述。您创建一个 Xcode 项目来定义您的框架。
因此,如果您希望您的框架既用于支持 SPM 的 Linux 和 macOS 命令行应用程序项目,又用于支持 Xcode 的 iOS 和 macOS UI 应用程序项目,您必须遵循双重路径。您使您的项目启用 SPM 并添加一个 Xcode 项目来定义您的框架。您必须两次维护您的项目信息 - 在 Package.swift
文件和 Xcode 项目中。
关于swift - 如何构建自定义 Swift 框架以及它与 SPM 有何关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41345556/