leavez/cocoapods-binary
51.0
Adequate · 19 September 2026
1.2k
lines of production code
Ruby
primary language
1
measurement over time
What this system is
This system is a CocoaPods plugin that accelerates dependency installation by prebuilding pod dependencies into binary frameworks. It manages the build process for iOS, tvOS, and watchOS targets, handling resource integration and debug symbol merging to ensure compatibility with modern Xcode versions. The project includes a demo application and test harnesses to validate these binary integration capabilities.
Features
Add iOS demo project for BDWebImage and Masonry
A new iOS demo application has been added to the repository, providing a runnable Xcode project (demo.xcodeproj) and workspace to showcase the library. The demo is configured with CocoaPods, specifically integrating the Masonry layout library, and includes a sample Objective-C file (BDWebImage\_demo.m) that demonstrates basic view setup using Masonry constraints.
demo · high confidence
Introduce prebuilt binary framework support for CocoaPods
Adds the \cocoapods-binary\ plugin (v0.4.4) which allows prebuilding pod dependencies into binary frameworks. Users can enable this via \all\_binary!\ in their Podfile, with options to enable bitcode, keep source code, or set custom Xcode build options. The plugin intercepts the install process to build frameworks once and then symlinks them during subsequent installs, significantly speeding up \pod install\ times for large projects.
lib/cocoapods-binary · high confidence
Behavioural changes
Plugin renamed from cocoapods-prebuild-framework to cocoapods-binary
The CocoaPods plugin has been renamed from \cocoapods-prebuild-framework\ to \cocoapods-binary\. This change involves removing the old library files and introducing a new entry point (\lib/cocoapods-binary.rb\) and main module (\lib/cocoapods-binary/Main\). The plugin registration in \lib/cocoapods\_plugin.rb\ has been updated to require the new \cocoapods-binary/Main\ instead of the previous command module, effectively shifting the plugin's identity while retaining its core functionality related to prebuilt frameworks.
lib · high confidence
Support for watchOS builds and dSYM merging in Rome
The Rome build tool now supports prebuilding frameworks for watchOS, in addition to iOS and tvOS. The build process has been updated to merge dSYM debug symbol files for device and simulator architectures into a single unified dSYM, and to combine Swift headers generated for different architectures to ensure compatibility with Xcode 10.2+. Additionally, the build script now uses xcpretty for formatted error logging and allows for custom build options to be passed during the framework compilation.
lib/cocoapods-binary/rome · high confidence
Fixes
Refactor prebuild logic and fix static framework resource handling
The prebuild helper module has been reorganized into distinct files to improve maintainability and fix several stability issues. A new \feature\_switches.rb\ introduces runtime flags to control prebuild behavior, such as skipping local pods and disabling integration or lockfile writes during the prebuild stage. The \podfile\_options.rb\ module now correctly parses the \:binary =\> true\ option and validates that pods are not mixed between prebuilt and non-prebuilt forms across different targets. Additionally, the \prebuild\_sandbox.rb\ and \names.rb\ modules refactor how pod and target names are mapped, resolving crashes when platforms are unspecified and ensuring correct folder path resolution. Finally, the \passer.rb\ module now tracks resources required for static frameworks, fixing a bug where resources were missing during installation.
lib/cocoapods-binary/helper · high confidence
Test coverage
Added iOS and watchOS test harness for the CocoaPods Binary plugin; Removed obsolete framework command test.
Dependencies
Rename gem to cocoapods-binary and update dependencies
The gem has been renamed from 'cocoapods-prebuild-framework' to 'cocoapods-binary', reflecting its purpose as a CocoaPods plugin for integrating prebuilt frameworks. The gemspec now specifies a minimum CocoaPods version of 1.5.0 and adds runtime dependencies on 'fourflusher' (\~\> 2.0) and 'xcpretty' (\~\> 0.3.0). Additionally, demo and test Gemfiles have been added to support local development and testing of the plugin.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 51.
Lenses
- Code Health 98
- Architecture 69
- Maturity 54
- Readiness 35
- Security 79
Changes since last survey
- 230 commits — 171 feature/other, 59 fixes
By area
- lib/cocoapods-binary — 135 commits
- lib/cocoapods-prebuild-framework — 34 commits
- (root) — 22 commits
- (repo) — 19 commits
- test/change_podfile.py — 8 commits
- test/test.sh — 3 commits
- test/BinaryWatch Extension — 2 commits
- .github/ISSUE_TEMPLATE — 1 commit
- demo/Gemfile — 1 commit
- demo/demo — 1 commit
- test/Binary — 1 commit
- test/Binary.xcodeproj — 1 commit
- test/logo.png — 1 commit
- test/release_version.rb — 1 commit
Notable commits
- fix: Fix path for old_read_link
- fix: Fixed update command options passing by inspecting original Pod::Installer (issue #38)
- fix: Merge pull request #32 from dev4dev/bitcode-fix
- fix: Merge pull request #32 from dev4dev/bitcode-fix
- fix: Merge pull request #45 from leavez/fix#29
- fix: Merge pull request #45 from leavez/fix#29
- fix: Revert "fix #20"
- fix: fix
- fix: fix #20
- fix: fix #20 correctly
- fix: fix #50
- fix: fix #50
- fix: fix exsited_framework_names when folder didn't exist
- fix: fix all_binary
- fix: fix bugs in finding target to build
- fix: fix compile failed log printing
- fix: fix copying dsym
- fix: fix crash
- fix: fix crash
- fix: fix crash
- …and 210 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
leavez/cocoapods-binary was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 19 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit b22bd948a3168a323b1ffa61095468f2c91c1cee — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.