CocoaPods and GitHub forks

cocoapods, git-fork, github

Solution

I will answer this question using an example. I have a fork of TTTAttributedLabel with some extra functionality I added here:

https://github.com/getaaron/TTTAttributedLabel

In order to use this in a Cocoapods project, I:

- Push my changes to my fork

- Configure my Podfile to get the changes & update

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 for your project:

Then, you can specify the specific commit on your fork in your Podfile like this:

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

After that, `pod update` will update this particular commit from your fork. If you want, you can also make a `podspec` for your fork, but I find this approach simpler and I don't make changes frequently enough to justify a new workflow.

Do I need to work on my fork outside of my project and then use Cocoapods to install the changes? That's way to cumbersome of a workflow.

You can do it this way, but I usually:

- Edit the code inside my project and make sure it works

- Copy the changes over to my fork, by

- exporting a patch, or

- copying over the entire source code file

- Commit & push to GitHub

- Update the Podfile with the new SHA

- Run `pod update`.

Or do I need to do something with submodules?

No, you don't need to.

Problem

This is my first time forking a GitHub project, and I'm not too competent with CocoaPods either, so please bear with me. Basically, I forked a project on GitHub using the following in my `Podfile`: ``` pod 'REActivityViewController', '~> 1.6.7', :git => 'https://github.com/<username>/REActivityViewController.git' ``` I then made some changes to the fork, and of course when I did a `pod install` to install another pod it reinstalled the original `REActivityViewController` and erased my changes. I'm realizing I need to push my changes to my fork before another `pod install`, but how do I know it is the fork being installed, considering that this is a repo installed by CocoaPods? I looked in the `REActivityViewController` folder installed under the `Pods` folder and there aren't any git files. Do I need to work on my fork outside of my project and then use CocoaPods to install the changes? That's too cumbersome of a workflow. Or do I need to do something with submodules?

Original source

Related problems