Project Jo

cocoapods-binary-cache 를 이용한 빌드 속도 개선 검토 본문

Developer/iOS

cocoapods-binary-cache 를 이용한 빌드 속도 개선 검토

Project Jo 2022. 5. 27. 15:49

cocoapods를 이용해 빌드 환경을 설정하면 매 패키지 마다 모든 소스를 빌드해서 속도가 느려진다.
그럼 중간 빌드 과정을 저장해서 재사용하면 속도가 당연히 빨라질 것이라 생각하고 검색해본 결과 cocoapods-binary-cache 를 알게 되었다.

결과부터 말하자면 내가 관리하는 프로젝트에서는 적용이 불가능 하였고, 속도 또한 큰 변화가 없어 도입을 진행하지는 못하였다.
하지만 잘 적용하고 관리가 가능하다면 좋은 방법이 될것 같아 이곳에 정리해 둔다. (다른 분은 성공하세요...)

1. bundle 를 이용해 환경을 설정한다.

1.1. bundle 초기화
bundle init

1.2. Gemfile 설정

source 'https://rubygems.org'

gem "cocoapods"
gem "cocoapods-binary-cache", :git => "https://github.com/grab/cocoapods-binary-cache.git", :tag => "0.1.11"

1.3. bundle 설치
bundle install

2. cocoapods 를 설정한다.

2.1. 초기화
bundle exec pod init

2.2. Podfile 설정

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

plugin "cocoapods-binary-cache"

config_cocoapods_binary_cache(
  cache_repo: {
    "default" => {
      "local" => "~/Documents/CocoapodsCache"
    }
  },
  device_build_enabled: true
)

target 'CacheTest' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for CacheTest
  
  #RxSwift
  pod 'RxSwift', :binary => true
  pod 'RxCocoa', :binary => true

end

2.2. 설치
bundle exec pod install

3. prebuild 진행하기

3.1. 사전 빌드 바이너리 생성 & 저장하기
bundle exec pod binary prebuild

3.2. 이미 있는 사전 빌드 바이너리 가져오기
bundle exec pod binary fetch
bundle exec pod install

 

참고

cocoapods-binary-cache 깃허브

 

GitHub - grab/cocoapods-binary-cache

Contribute to grab/cocoapods-binary-cache development by creating an account on GitHub.

github.com

 

적용시 도움받은 사이트

 

[iOS] CocoaPods 사전빌드로 프로젝트 빌드시간을 줄이자

(서론 없이 사용법만 알고 싶다면 스크롤을 내려 "사용하기" 부터 읽어도 됩니다) iOS 프로젝트를 진행하면서 외부 라이브러리 등에 대한 의존성 관리 도구로 보통 CocoaPods, Carthage, Swift Package Manage

bonoogi.postype.com

 

Reduce Azure Pipelines Xcode build time by 80% through CocoaPods caching

If you’ve ever built an iOS app with CocoaPods using the Xcode build and release task in an Azure Pipeline, you’ll know it takes ages…

levelup.gitconnected.com

'Developer > iOS' 카테고리의 다른 글

Apple Intelligence  (0) 2024.09.24
iOS MVVM 적용해 보기  (0) 2022.01.06
UIAlertController 를 여러번 띄우기  (0) 2020.08.20
MDM Push 인증서 만들기  (9) 2015.11.18
pem 만들기 커멘드  (0) 2015.09.04