๐ Cache CocoaPods for faster rebuild and indexing Xcode project
Motivation
Why do we need some optimizations while working on huge projects with CocoaPods?
-
Slow and unnecessary indexing of pods targets, which implementation we rarely try to edit;
-
Redundant rebuild time, probably as a result of problems, related to CocoaPods or Xcode;
-
Freezing UI during navigating through a project or editing it;
-
Broken or extremely slow autocompletion;
-
Noisy laptop turbines, heated aluminum, and infinite spinning pinwheel.
More in the ๐ foundation and remastering stories.
Description๐ Rugby
is CLI tool that was developed to solve the above problems:
+
Cache all pods dependencies and remove their targets from the Pods project;
+
Rebuild only changed pods or even download them;
+
Delete any unneeded targets with sources from a project and reduce its size.
๐ Not a project dependency, just an optional step;
๐ฑ Doesn't change Podfile and Podfile.lock;
โ๏ธ Can run a sequence of commands from a YAML file;
๐น๏ธ Single command usage;
๐ณ Ready for remote cache;
๐งฃ Cozy log output;
๐ Swiftish and uses native Xcode build system.
Ruby alternatives: PodBuilder | CocoaPods Binary Cache | CocoaPods Binary
First of all, if you have the first version Rugby 1.x
, you need to delete it.
Then call where rugby
command and be sure that there are no any of paths to rugby.
curl -Ls https://swiftyfinch.github.io/rugby/install.sh | bashSelf-Update
If you already have Rugby, which version is at least 2.0.0b2
, you can use such a command.
> rugby updateFull Guide
Read more in the guide how to install it.
If you look for the legacy Rugby 1.x
, visit this page.
@import Something
instead of #import "Something.h"
.SwiftGen
, run it before calling Rugby.rugby build pre
to prebuild your project and finalize source code;rugby -e BadPod
.Then run this command in your project directory after each pod install
.
It will build all targets by default:
> rugby
Deintegrate it with the rollback command:
> rugby rollback
Also, you can write a custom plan (sequence of commands).
Use ๐ RugbyPlanner for visualizing changes in your project without applying them.
For advanced usage, please read the documentation below.
๐ Documentation
๐ฆ How to Install
๐ Commands Help
๐ Migration Guide
๐ณ Remote Cache
๐ฏ Roadmap
50%
#236
๐ค Contribution
Feel free to open a pull request / an issue or a discussion.
๐ฎ Support
If you want to support this project, you can do some of these:
1)
Press โญ๏ธ. It's a nice mark which means that Rugby is useful;
2)
Share the project ๐ somewhere with somebody;
3)
Leave feedback in the discussions ๐ฌ section.
Let's Roll-oll ๐
Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.
We'll never share your email with anyone else.