Trên GitHub, grab/cocoapods-binary-cache đã đạt 488 sao, ngôn ngữ Ruby.
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
A plugin that helps to reduce the build time of Xcode projects which use CocoaPods by prebuilding pod frameworks and cache them in a remote repository to share across multiple machines.
Installation
Requirements
Ruby: >= 2.4
CocoaPods: >= 1.5.0
Via Bundler
Add the gem cocoapods-binary-cache to the Gemfile of your project.
Then, run bundle install to install the added gem.
In case you're not familiar with bundler, take a look at Learn how to set it up here.
Via RubyGems
$ gem install cocoapods-binary-cache
How it works
Check out the documentation on how it works for more information.
Usage
1. Configure cache repo
First of all, create a git repo that will be used as a storage of your prebuilt frameworks. Make sure this git repo is accessible via git clone and git fetch. Specify this cache repo in the following section.
2. Configure Podfile
2.1. Load the cocoapods-binary-cache plugin.
Add the following line at the beginning of Podfile:
For details about options to use with the config_cocoapods_binary_cache function, check out our guidelines on how to configure cocoapods-binary-cache.
2.3. Declare pods as prebuilt pods
To declare a pod as a prebuilt pod (sometimes referred to as binary pod), add the option :binary => true as follows:
pod "Alamofire", "5.2.1", :binary => true
NOTE:
Dependencies of a prebuilt pod will be automatically treated as prebuilt pods.
For example, if RxCocoa is declared as a prebuilt pod using the :binary => true option, then RxSwift, one of its dependencies, is also treated as a prebuilt pod.
3. CLI
We provided some command line interfaces (CLI):
Fetch from cache repo
$ bundle exec pod binary fetch
Prebuild binary pods
$ bundle exec pod binary prebuild [--push]
Push the prebuilt pods to the cache repo
$ bundle exec pod binary push
For each command, you can run with option --help for more details about how to use each:
$ bundle exec pod binary fetch --help
4. A trivial workflow
A trivial workflow when using this plugin is to fetch from cache repo, followed by a pod installation, as follows:
$ bundle exec pod binary fetch
$ bundle exec pod install
For other usages, check out the best practices docs.
Benchmark
We created a project to benchmark how much of the improvements we gain from this plugin. The demo project is using the following pods:
MacBook Pro (15-inch, 2018)
Mac OS 10.14.6
Processor 2.6 GHz Intel Core i7
Memory 16 GB 2400 MHz DDR4
You can also try it out on your local:
$ cd PodBinaryCacheExample
$ sh BuildBenchMark.sh
In our real project with around 15% of swift/ObjC code from vendor pods. After applying this technique, we notice a reduction of around 10% in build time.
<img src=resources/realproj_buildtime_trend.png width=700>
Known issues and roadmap
Exporting IPA with Bitcode
When exporting an IPA with Bitcode, remember to disable the rebuild from bitcode option. Refer to https://github.com/grab/cocoapods-binary-cache/issues/24.
Pods with headers only
By default, pods with empty sources (ie. pods with header files only) will be automatically excluded and they will be later integrated as normal. For now, we rely on the source_files patterns declared in podspec to heuristically detect empty-sources pods.
However, there are cases in which the source_files of a pod looks like non-empty sources (ex. s.source_files = "**/*.{c,h,m,mm,cpp}") despite having header files only. For those cases, you need to manually add them to the excluded_pods option.
Best practices
Check out our Best practices for for information.
Troubleshooting
Check out our Troubleshooting guidelines for more information.
Contribution
Check out CONTRIBUTING.md for more information on hw to contribute to this repo.
License
The cocoapods-binary-cache plugin is available as open-source under the terms of the MIT License.
It uses cocoapods-rome and cocoapods-binary internally, which are also under MIT License.
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/grab/cocoapods-binary-cache là nguồn chính thức.
grab/cocoapods-binary-cache có bao nhiêu sao?
grab/cocoapods-binary-cache có 488 sao GitHub — tải lại trang để xem số mới nhất, hoặc xem trực tiếp github.com/grab/cocoapods-binary-cache. TopGit phản chiếu số sao của GitHub nhưng không cam kết đến từng phút.
grab/cocoapods-binary-cache có phải mã nguồn mở không?
Có — grab/cocoapods-binary-cache phát hành theo license MIT, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/grab/cocoapods-binary-cache.
grab/cocoapods-binary-cache còn đang phát triển không?
Commit gần nhất trên grab/cocoapods-binary-cache là 3.3 năm trước (theo timestamp GitHub). Repo có 69 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
grab/cocoapods-binary-cache dùng license gì?
grab/cocoapods-binary-cache phát hành theo license MIT. Nên mở file LICENSE trên GitHub để xác nhận — license metadata đôi khi lệch với thực tế dự án.
grab/cocoapods-binary-cache là gì?
grab/cocoapods-binary-cache (grab/cocoapods-binary-cache) là dự án Ruby TopGit theo dõi. Tính tới lần đồng bộ gần nhất, repo có 488 sao.
grab/cocoapods-binary-cache viết bằng ngôn ngữ gì?
grab/cocoapods-binary-cache chủ yếu viết bằng Ruby. Trường "language" của GitHub dựa trên phần lớn byte ở nhánh mặc định.
Đọc đầy đủ README ở tab phía trên.
Chưa chắc cocoapods-binary-cache có hợp với bạn?
Để ChatGPT, Claude hoặc Perplexity tìm hiểu giúp — bấm bên dưới và xem AI nói gì về cocoapods-binary-cache.