CocoaPods和GitHub叉?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (21)

这是我第一次分叉一个GitHub项目,我也不太擅长CocoaPods,所以请耐心等待我。

基本上,我在GitHub上使用我的Podfile:

pod 'REActivityViewController', '~> 1.6.7', :git => 'https://github.com/<username>/REActivityViewController.git'

然后我对叉子做了一些修改,当然,当我做一个pod install为了安装另一个吊舱,它重新安装了原来的REActivityViewController抹去了我的改变。

我意识到我需要在另一个之前把我的改变推到我的叉子上pod install但是我该如何做到这是CocoaPods安装的回购工具呢?我看了看REActivityViewController目录下安装的文件夹。Pods文件夹中没有任何git文件。

我是否需要在项目之外处理我的叉子,然后使用CocoaPods安装更改?这对工作流来说太麻烦了。

还是我需要用子模块做些什么?

提问于
用户回答回答于

为了在CocoaPods项目中使用这一点,我:

  1. 把我的改变推到我的叉子上
  2. 配置我的Podfile以获取更改和更新

一旦将更改推送到分叉,就可以获得最后一次提交的SHA。你可以用git rev-parse origin/master | pbcopy或者在GitHub提交页面你的项目:

然后,可以在Podfile中指定分叉上的特定提交,如下所示:

pod 'TTTAttributedLabel', :git => 'https://github.com/getaaron/TTTAttributedLabel.git', :commit => 'd358791c7f593d6ea7d6f8c2cac2cf8fae582bc1'

在那之后,pod update将从你的分叉中更新此特定提交。如果你愿意,你也可以做一个podspec对于你的叉,但是我发现这种方法更简单,而且我不经常进行更改,以证明新的工作流是合理的。

我是否需要在项目之外处理我的叉子,然后使用CocoaPods安装更改?这就是工作流的累赘之处。

你可以这样做,但我通常:

  1. 编辑我的项目中的代码,并确保它正常工作。
  2. 将更改复制到我的叉子上
    • 导出修补程序,或
    • 复制整个源代码文件

  1. 提交和推给Gizub
  2. 用新的SHA更新Podfile
  3. pod update

还是我需要用子模块做些什么?

不你不需要。

用户回答回答于

另一个选择是让你的项目直接参考荚,而不是通过GitHub。这样,就不必一直提交分叉或复制/粘贴代码,只需测试你的更改。可以同时处理两个不同的Xcode项目,并将它们分别提交到各自的项目中。

pod 'AFNetworking', :path => '~/Documents/AFNetworking'

扫码关注云+社区