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.
? 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;
?️ 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 | bashIf you already have Rugby, which version is at least 2.0.0b2, you can use such a command.
> rugby updateRead 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:
> rugbyDeintegrate it with the rollback command:
> rugby rollbackAlso, 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.
? How to Install
Commands Help
? Migration Guide
? Remote Cache
Feel free to open a pull request or a discussion.
| Known Issues ? |
|---|
#394: Unable to run tests via Xcode (via make test they run perfectly) |
#270: Missing public OutputType |
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 ?