如何将 Carthage 支持添加到 SPM 依赖项?

问题描述 投票:0回答:2

我创建了一个 Swift Package Manager 依赖项,我需要添加 Carthage 支持,以便稍后在项目中与 Carthage 一起使用该依赖项。有人可以解释一下执行此操作的步骤吗?

swift dependency-management carthage swift-package-manager
2个回答
0
投票

向使用 SPM 的依赖项添加 Carthage 支持应该与向不使用 SPM 的依赖项添加 Carthage 支持相同。 SPM 支持的存在根本不会影响迦太基。

Carthage 自述文件 包含将 Carthage 支持添加到您的软件包中的步骤。总结一下:

  1. 确保您的 Xcode 方案标记为共享。
  2. 确保
    carthage build --no-skip-current
    成功构建您的依赖关系。
  3. 确保使用 git 标签标记您的版本。
  4. 可选:预构建框架的二进制文件以加快安装速度

0
投票

问题是 SPM 包不需要 xcworkspace 文件。参见例如我的一个框架例如。在这种情况下,将其用作迦太基依赖并不那么简单,甚至不可能。

要考虑的第二件事是 Apple 改变了与框架捆绑的资源从托管框架的应用程序中定位的方式:

重要

访问资源时始终使用 Bundle.module。包不应假设资源的确切位置。

这里的主要痛点是这个结构体是在 SPM 构建框架时生成的,但在 Carthage 构建框架时并没有创建。阅读详细信息这里

如果上述两点不适用于您的框架,那么 moshe-katz 是正确的,您可以按照建议的设置说明进行操作。否则请告诉我它是如何工作的。我已经寻找这个问题的解决方案很长一段时间了。

编辑

当您使用

swift package init --type tool
创建 Swift 包,然后使用
open Package.swift
打开它时,会创建一个文件夹
.swiftpm
,其中包含 .xcworkspace 文件和用户数据。我认为这是为了保留用户默认设置(如窗口大小)并使用断点共享等功能。您可以将此工作区符号链接到根文件夹,这可能使 Carthage 正常工作。希望这对某人有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.