A CLI tool that caches CocoaPods dependencies to speed up Xcode project rebuilds and reduce indexing time.
Rugby is a CLI tool that optimizes Xcode projects using CocoaPods by caching pod dependencies to accelerate rebuild times and reduce indexing overhead. It solves performance issues like slow builds, UI freezes, and excessive project indexing in large iOS/macOS codebases. The tool works by building pods once, storing them as binaries, and excluding them from the main project to streamline development.
iOS and macOS developers working on large projects with many CocoaPods dependencies who experience slow build times and indexing delays. It's particularly useful for teams seeking to improve their Xcode workflow efficiency.
Developers choose Rugby because it significantly speeds up build and indexing times without modifying Podfiles or locking dependencies. Its non-invasive design, support for remote caching, and ability to run command sequences via YAML plans offer a flexible and powerful alternative to manual pod management.
🏈 Cache CocoaPods for faster rebuild and indexing Xcode project.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Does not modify Podfile or Podfile.lock, ensuring compatibility with existing CocoaPods setups as highlighted in the README, making it safe to adopt without breaking dependency management.
Caches pod dependencies and removes their targets from the Xcode project, directly addressing slow rebuilds, excessive indexing, and UI freezes mentioned in the motivation section.
Ready for use with remote caching systems to share binaries across teams, facilitating collaborative development and reducing build times in CI/CD pipelines as documented.
Allows running sequences of commands from YAML configuration files for automated optimizations, enabling reproducible and scalable build processes.
Requires Objective-C code to use @import instead of #import, which can necessitate significant refactoring in legacy projects, as noted in the preconditions section.
Demands that source code be finalized before use (e.g., running SwiftGen), adding an extra manual step and risk of hash mismatches if overlooked, complicating the workflow.
Relies on all pods being ready to build standalone; otherwise, exclusions are needed, which can be tricky for complex pod graphs and require ongoing maintenance.