如何在我的 Package.swift 文件中添加对 RealmSwift 的依赖?
How do I add a dependency to RealmSwift in my Package.swift file?
我一直在努力解决这个问题,但我已经非常接近了。
我想构建一个 swift 包,其中包含导入 RealmSwift 的代码。
Xcode 能够解析文件并下载包的代码。但是我得到“每个包含它的文件都没有这样的模块 'RealmSwift'。这是我的 Package.swift 文件。有人看到它有什么问题吗?
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "TCA",
platforms: [
.iOS(.v14)
],
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "TCA",
targets: ["TCA"]),
],
dependencies: [
.package(name: "Realm", url: "https://github.com/realm/realm-cocoa", .exact("5.3.3")),
],
targets: [
.target(
name: "TCA",
dependencies: [
.product(name: "RealmSwift", package: "Realm")
]),
.testTarget(
name: "TCATests",
dependencies: ["TCA"]),
]
)
非常感谢@iUrii 提供第二对 !!
正如我所说,我很接近。正如 Whosebug 上经常发生的那样,您提出了一个问题,更重要的是,另一个问题得到了回答。答案是我的 Package.swift 是正确的
✅ this is how you include RealmSwift in your own package.
- 我想解释一下我必须做些什么才能让它发挥作用。
这些工具向我提供了不一致、无用的错误消息。
首先要记住的是,您的配置可能没问题,但包中的某些代码无法正确编译。 并且编译器可能不会标记您的错误。
- 在我的例子中,“问题导航器”没有显示任何错误,但是
软件包未构建。
在导航器控制台中(在 Xcode 中切换 cmd-0 几次,你就会知道我在说什么区域),在最顶部有一排图标。最右边的(它看起来像页面上的列表)是“Report Navigator”。点击它,你会看到一个构建和清理列表。每次您尝试重建项目 (cmd-b) 时,顶部都会出现一个新条目。始终与最高层合作。事物神奇地在某一点自行修复,又在另一点再次破裂。所以专注于它现在发现的问题。
shift-cmd-K 清理您的构建文件夹。点击出现的 header。您是否看到前面有一个圆形 ✅ 图标的“清洁成功”消息?直到你能走到那一步,你才好走。当你这样做的时候回来看这个清单。
一旦你走到这一步,你应该对你的配置文件是正确的有一定的信心。这实际上是一件大事,应该会增强你继续下去的信心。
此时,阻止您完成构建的原因应该出现在构建报告中。继续并键入 cmd-b,等待它完成,然后点击左侧报告导航器中列表的顶部条目(最新构建报告)。
希望在屏幕的右侧,您会看到“准备构建”,这是一个圆形 ✅ 工作区,后跟报告顶部的工作区名称。
在其下方是一个名为 Build Target 的部分。该报告列出了它编译或尝试编译的每个文件。从顶部开始,跳过 ✅ 文件,打开您看到的第一个带有 !灰色圆圈内。这是编译器有问题的文件。
那些红色和(中间有一个白色圆圈)的项目需要修复。它们可能被完美定义,但在文件或 class 或结构或方法中没有干净地编译,因此编译器无法识别。 (也许有一个 import 语句不是——或不再是——valid/needed)从顶部开始解决每一个问题。如果在您修复问题时它所在的文件有其他错误,请也修复这些错误。无论如何,他们可能就在报告的错误下方……一旦编辑对文件感到满意,保存并构建。 (cmd-b)
此时你应该少了一个错误文件,错误计数也下降了。在此过程中,如果您添加丢失的文件,您可能会发现计数会上升而不是下降。不要气馁,继续从列表中最上面的错误开始往下处理,直到没有错误为止。
很高兴地报告,在遵循这个过程之后,我现在能够使用多个导入的框架干净地构建包。 (目前有 66 个文件并且还在增加)
我一直在努力解决这个问题,但我已经非常接近了。 我想构建一个 swift 包,其中包含导入 RealmSwift 的代码。 Xcode 能够解析文件并下载包的代码。但是我得到“每个包含它的文件都没有这样的模块 'RealmSwift'。这是我的 Package.swift 文件。有人看到它有什么问题吗?
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "TCA",
platforms: [
.iOS(.v14)
],
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "TCA",
targets: ["TCA"]),
],
dependencies: [
.package(name: "Realm", url: "https://github.com/realm/realm-cocoa", .exact("5.3.3")),
],
targets: [
.target(
name: "TCA",
dependencies: [
.product(name: "RealmSwift", package: "Realm")
]),
.testTarget(
name: "TCATests",
dependencies: ["TCA"]),
]
)
非常感谢@iUrii 提供第二对 !!
正如我所说,我很接近。正如 Whosebug 上经常发生的那样,您提出了一个问题,更重要的是,另一个问题得到了回答。答案是我的 Package.swift 是正确的
✅ this is how you include RealmSwift in your own package.
- 我想解释一下我必须做些什么才能让它发挥作用。
这些工具向我提供了不一致、无用的错误消息。 首先要记住的是,您的配置可能没问题,但包中的某些代码无法正确编译。 并且编译器可能不会标记您的错误。
- 在我的例子中,“问题导航器”没有显示任何错误,但是 软件包未构建。
在导航器控制台中(在 Xcode 中切换 cmd-0 几次,你就会知道我在说什么区域),在最顶部有一排图标。最右边的(它看起来像页面上的列表)是“Report Navigator”。点击它,你会看到一个构建和清理列表。每次您尝试重建项目 (cmd-b) 时,顶部都会出现一个新条目。始终与最高层合作。事物神奇地在某一点自行修复,又在另一点再次破裂。所以专注于它现在发现的问题。
shift-cmd-K 清理您的构建文件夹。点击出现的 header。您是否看到前面有一个圆形 ✅ 图标的“清洁成功”消息?直到你能走到那一步,你才好走。当你这样做的时候回来看这个清单。
一旦你走到这一步,你应该对你的配置文件是正确的有一定的信心。这实际上是一件大事,应该会增强你继续下去的信心。
此时,阻止您完成构建的原因应该出现在构建报告中。继续并键入 cmd-b,等待它完成,然后点击左侧报告导航器中列表的顶部条目(最新构建报告)。 希望在屏幕的右侧,您会看到“准备构建”,这是一个圆形 ✅ 工作区,后跟报告顶部的工作区名称。
在其下方是一个名为 Build Target 的部分。该报告列出了它编译或尝试编译的每个文件。从顶部开始,跳过 ✅ 文件,打开您看到的第一个带有 !灰色圆圈内。这是编译器有问题的文件。 那些红色和(中间有一个白色圆圈)的项目需要修复。它们可能被完美定义,但在文件或 class 或结构或方法中没有干净地编译,因此编译器无法识别。 (也许有一个 import 语句不是——或不再是——valid/needed)从顶部开始解决每一个问题。如果在您修复问题时它所在的文件有其他错误,请也修复这些错误。无论如何,他们可能就在报告的错误下方……一旦编辑对文件感到满意,保存并构建。 (cmd-b) 此时你应该少了一个错误文件,错误计数也下降了。在此过程中,如果您添加丢失的文件,您可能会发现计数会上升而不是下降。不要气馁,继续从列表中最上面的错误开始往下处理,直到没有错误为止。
很高兴地报告,在遵循这个过程之后,我现在能够使用多个导入的框架干净地构建包。 (目前有 66 个文件并且还在增加)