ProductPromotion
Logo

Swift

made by https://0x3d.site

GitHub - swiftyfinch/Rugby: ๐Ÿˆ Cache CocoaPods for faster rebuild and indexing Xcode project.
๐Ÿˆ Cache CocoaPods for faster rebuild and indexing Xcode project. - swiftyfinch/Rugby
Visit Site

GitHub - swiftyfinch/Rugby: ๐Ÿˆ Cache CocoaPods for faster rebuild and indexing Xcode project.

GitHub - swiftyfinch/Rugby: ๐Ÿˆ 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.

What makes it different?

๐Ÿ•Š 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

How to install ๐Ÿ“ฆ

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.

First Install

curl -Ls https://swiftyfinch.github.io/rugby/install.sh | bash

Self-Update

If you already have Rugby, which version is at least 2.0.0b2, you can use such a command.

> rugby update

Full Guide

Read more in the guide how to install it.
If you look for the legacy Rugby 1.x, visit this page.

How to use ๐Ÿˆ

  1. If you use Objective-C in your project, be sure that you import modules correctly.
    Use @import Something instead of #import "Something.h".
    Because Rugby will include built frameworks in your project;
  2. Before using Rugby you should be sure that your project source code is finalized.
    ๐Ÿ”ธ For example: if you use SwiftGen, run it before calling Rugby.
    Otherwise, your source code will be modified during building with Rugby. Then the hashes of binaries will not be suited.
    If you encounter a problem, try to use rugby build pre to prebuild your project and finalize source code;
  3. Be sure that all your pods (including development) are ready to build standalone.
    Otherwise, you can get a state when one of them can't be reused correctly without the source of its dependencies.
    As a temporary workaround, you can exclude some pods like rugby -e BadPod.
    ๐Ÿ”ธ For example: if some of your pods use incorrect headers.

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

๐Ÿค Contribution

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

๐Ÿ“ฎ 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 ๐Ÿˆ

More Resources
to explore the angular.

mail [email protected] to add your project or resources here ๐Ÿ”ฅ.

Related Articles
to learn about angular.

FAQ's
to learn more about Angular JS.

mail [email protected] to add more queries here ๐Ÿ”.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory