CocoaPods 和 GitHub 分叉

2024-03-24

这是我第一次 fork 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 来安装更改?这样的工作流程太繁琐了。

或者我需要对子模块做一些事情吗?


我将用一个例子来回答这个问题。我有一个 TTTAttributedLabel 的分支,其中添加了一些额外的功能:

https://github.com/getaaron/TTTAttributedLabel https://github.com/getaaron/TTTAttributedLabel

为了在 Cocoapods 项目中使用它,我:

  1. 将我的更改推送到我的 fork
  2. 配置我的 Podfile 以获取更改和更新

Once you've pushed your changes to your fork, get the SHA of your last commit. You can do this using git rev-parse origin/master | pbcopy or on the GitHub commits page https://github.com/getaaron/TTTAttributedLabel/commits/master for your project: Screenshot of copying a commit's SHA on GitHub

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

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

在那之后,pod update将从您的分叉更新此特定提交。如果你愿意的话,你也可以制作一个podspec对于你的分叉,但我发现这种方法更简单,而且我没有足够频繁地进行更改来证明新工作流程的合理性。

我是否需要在项目之外处理我的分支,然后使用 Cocoapods 来安装更改?这使得工作流程变得很麻烦。

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

  1. 编辑我的项目中的代码并确保其有效
  2. Copy the changes over to my fork, by
    • 导出补丁,或者
    • 复制整个源代码文件
  3. 提交并推送到 GitHub
  4. 使用新的 SHA 更新 Podfile
  5. Run pod update.

或者我需要对子模块做一些事情吗?

不,你不需要。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CocoaPods 和 GitHub 分叉 的相关文章

随机推荐