【发布时间】:2020-09-14 19:23:35
【问题描述】:
这里,作为一个示例包:Realm for Swift。
我正在尝试在 macOS 上安装 Realm,以便它可以用于 Xcode 中任何现有和未来的 Swift 项目。
但是,包括官方https://realm.io/docs/swift/latest/ 在内的所有安装指南都谈到将其添加到特定项目或目标中。
使用 cocoapods 也是如此,我必须将库添加到特定的“目标”。我可能还没有理解目标是什么......? https://guides.cocoapods.org/using/using-cocoapods.html
当使用 Xcode 的包管理器 (PM) 通过 github 包链接(对于 RealSwift:https://github.com/realm/realm-cocoa)包含依赖项时,似乎必须在每个项目的基础上重复此过程。 “下一个”项目本身和 PM 都不会注意到 PM 之前完成的安装!?相反,PM 很乐意为新项目经历一个漫长的再次安装包的过程。而且,当然,还要重复更长时间的包编译...
我还普遍地搜索了任何库/包,如何在 Xcode 中使其全局可用。令人惊讶的是,对于这个特定的“全球与项目”可用性问题的答案没有运气。
这里很困惑,如果有人能告诉这个菜鸟如何安装 Realm(用于 Swift)(或任何包/库),以便可以在 任何 Xcode 中添加和使用它项目。此外,理想情况下,它应该能够自动检查更新。
【问题讨论】:
-
你必须先创建一个 pod 文件。创建一个项目,打开终端并转到该文件夹。然后'pod init'。它将创建一个
PodFile,然后您必须在其中添加pod RealmSwift,然后返回终端和pod install。这会将Realm安装到您的项目/目标中。您也可以在 pod 文件中选择目标。你必须全局安装cocoa pods,在终端运行sudo gem install cocoapods。 -
@Rob thx,但这听起来像是包的项目本地安装/配置?当我打开一个新的 swift 项目时,我需要重复这个过程吗?
-
是的。全局包和项目所需的库之间存在差异。 Realm 是特定于项目的,node 或 java 或 cocoa pods 或 home-brew 是全局的。
-
@Rob,谢谢。我必须承认我觉得这有点令人费解:-o 这似乎是一个合理且通用的用例,您希望以一种全球可用的方式安装库 ABC,可能需要一个合格的导入语句,例如在 c/c++ 中
import mylibs/ABC而不是import ABC -
对于 Realm,正确的 github 地址是 github.com/realm/realm-cocoa 并且 确实 加载/使用 Xcode PM(尽管奇怪的是,Realm 人员没有提到这种安装可能性)。然而,这仍然会导致安装依赖于项目:它不会立即可供其他项目使用,并且他们很乐意通过 PM 重新安装 Realm,而不会检测到为先前安装完成的现有安装项目。