gpt4 book ai didi

ios - 在开发 CocoaPod 时使用 CocoaPod 依赖项

转载 作者:IT王子 更新时间:2023-10-29 05:23:40 24 4
gpt4 key购买 nike

我正在创建一个 CocoaPod,例如 MyPod,它依赖于另一个 Cocoapod,例如 RxSwift

所以我在 MyPod.podspec 中有这个:

s.dependency "RxSwift", "~> 3.0.1"

但是,在开发 MyPod 时,我该如何实际使用依赖项?

import RxSwift
// ^
// No such module 'RxSwift'

public class MyClass { //...

有没有我遗漏的步骤,或者一些常见的约定?它看起来像其他一些项目,如 Moya正在使用 Carthage在开发时构建依赖关系。我应该这样做,还是添加一个 Podfile

我知道这对于位于存储库中的示例应用程序来说应该不是问题,它有自己的 Podfile。但是,我仍然希望测试位于示例应用程序之外的顶层,并且能够在处理框架时实际构建框架,再次在示例应用程序之外。

最佳答案

我不知道是使用 CocoaPods 还是 Carthage。两者都有其优点和缺点。此外,应该考虑许多因素来做出决定,其中一些因素您可能无法控制(例如坚持使用 CocoaPods 的客户!)所以我将跳过该部分。

但是,对于您的问题,您正在开发的一个 pod 确实可以依赖于另一个 pod。您已经有了正确的 s.dependency 行。这是必要的。

但是,我怀疑您无法引用相关 pod 的原因可能是因为您的“tester/example”项目中没有 Podfile 和/或您没有执行 pod install 在您的 Podspec 中添加依赖项之后。

我怀疑这是要求的原因是因为 Podspec 实际上根本没有被 Xcode 处理,所以你实际上并没有下载(或编译)依赖项。

相反,当您执行 pod 安装时(当然是通过命令行),CocoaPods 将使用您的开发 pod、您依赖的 pod(在 Podspec 中)以及您的 Podfile 中的任何其他 pod 创建一个 Pods 项目。

为了验证这个理论,我:

  • 创建了一个新的 pod(使用 CocoaPod 自己的“pod lib create”(https://guides.cocoapods.org/making/using-pod-lib-create.html))。
  • 打开 CocoaPod 为我创建的工作区并编辑 Podspec 以添加依赖项 s.dependency 'RxSwift', '~> 3.0.1'
  • 在我的示例应用程序的 Podfile 中添加了另一个 pod(以演示 Podfile 依赖项和 Podspec 依赖项之间的区别。)
  • 在示例应用的文件夹中执行了 pod install
  • 编辑我的 Pod 类以做一些有用的事情并添加 import RxSwift 行。
  • 为我的示例应用程序添加了一个标签(当然是“Hello World”)。
  • 使用 PureLayout 为标签执行所有自动布局约束(并演示示例项目如何访问两个 pod - 开发 pod 以及引用的 pod PureLayout。)<

您可以在我的公共(public) GitHub 上查看我创建的演示: https://github.com/ericwastaken/CocoaPod-Dependency-Demo

老实说,我已经使用 pod lib create 创建了几个 pod,它确实创建了一个一直对我有用的良好结构。出于这个原因,我建议始终使用它来创建您的 pod 的骨架。

Xcode 8 评论:pod lib create 似乎仍然在创建 Swift 1.x 项目。因此,在您使用此工具后,当您打开 Xcode 时,系统会提示您“转换”到更新版本的 Swift。我会让这种转换立即发生(第一次),这样你就可以使用 Swift 2.x 或 3.x 语法(你选择)。

关于ios - 在开发 CocoaPod 时使用 CocoaPod 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40721778/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com