我目前正在构建我真的很想用作框架的代码,就像我使用Apple框架一样,可以import MyCustomFramework(将来我也希望分发它们)。

我对此有一些疑问:

  • 根据我的需要构建框架的最简单方法是什么?是否可以直接在Xcode中做到这一点,还是需要在终端中使用命令行工具?
  • 此框架是否可以与多个平台兼容(我在考虑所有Apple平台,但也在考虑Swift支持的其他平台,例如Linux)。
  • Swift框架和Swift Package Manager之间的确切联系是什么?我需要SPM来构建我的框架还是这两个不同的工具?

  • 谢谢。

    最佳答案

    当前,Swift软件包管理器(SPM)和Xcode框架遵循不同的路径。对于Linux,您必须遵循SPM路径,因为编译Linux swift应用程序的唯一方法是使用SPM。对于macOS命令行应用程序,您也可以遵循SPM路径。对于iOS应用程序和macOS UI应用程序,您必须遵循Xcode Frameworks路径。

    对于SPM路径,使框架的项目启用SPM:添加Package.swift文件并根据SPM约定设置项目的文件布局。该项目还必须是一个git存储库。然后,可以将项目的git存储库指定为对其他启用SPM的框架/应用程序的依赖项。可以随时使用swift package generate-xcodeproj命令将每个启用SPM的项目转换为Xcode项目。

    Xcode Frameworks路径是使用Xcode框架的标准,SPM之前的方法,在其他地方对此进行了介绍。您创建一个Xcode项目,它将定义您的框架。

    因此,如果您希望框架同时用于Linux和macOS命令行应用程序的启用SPM的项目以及iOS和macOS UI应用程序的启用Xcode的项目中,则必须遵循双重路径。您使您的项目启用SPM,并添加一个Xcode项目,该项目将定义您的框架。您将必须在Package.swift文件和Xcode Project中维护项目信息两次。

    09-05 20:20