CocoaPods

CocoaPods는 애플리케이션 수준의 의존성 관리자로, 오브젝티브-C, 스위프트 및 루비모션(RubyMotion)과 같이 오브젝티브-C 런타임에서 실행되는 기타 언어를 지원하며,Use CocoaPods Dependencies in RubyMotion Apps  외부 라이브러리를 관리하기 위한 표준 형식을 제공한다. 엘로이 뒤랑(Eloy Durán)과 파비오 펠로신(Fabio Pelosin)이 개발하였으며, 이들은 현재도 많은 사람들의 도움과 기여를 통해 프로젝트를 관리하고 있다.CocoaPods contributors 2011년 8월에 개발을 시작하여Initial work 2011년 9월 1일에 첫 번째 공개 버전이 출시되었다.Initial release CocoaPods는 루비 프로젝트인 RubyGems와 번들러의 조합에서 강한 영감을 받았다. 10만 3천 개 이상의 라이브러리를 보유하고 있으며 300만 개 이상의 앱에서 사용되고 있다고 밝히고 있다.CocoaPods homepage

CocoaPods는 서드파티 코드의 소스 기반 배포와 엑스코드 프로젝트로의 자동 통합에 중점을 둔다.

CocoaPods는 명령줄에서 실행되며 젯브레인즈의 AppCode 통합 개발 환경에도 통합되어 있다.What's New in AppCode 2.5 소스 파일을 수동으로 복사하는 대신 의존성 명세를 통해 애플리케이션의 의존성(예: 라이브러리)을 설치한다.Streamlining Cocoa Development With CocoaPods 다양한 소스에서 설치하는 것 외에도, 수많은 오픈 소스 라이브러리의 메타데이터를 포함하는 "마스터" 스펙 저장소가 Git 저장소로 유지 관리되며 깃허브에 호스팅되어 있다.The “master” spec repository CocoaPods의 의존성 해결 시스템은 Molinillo에 의해 구동되며, 이는 Bundler, RubyGems, Berkshelf와 같은 다른 대형 프로젝트에서도 사용된다.

 예시 
다음 Podfile 예시는 AFNetworking과 CocoaLumberjack 라이브러리를 설치한다.

 platform :ios
 pod 'AFNetworking',    '~> 2.0.0'
 pod 'CocoaLumberjack', '< 1.7'

 target 'MyApp'

 보안 

2024년 7월, CocoaPods에서 공격자가 소유권이 없는 소프트웨어 패키지를 장악하고 애플리케이션에 악성 코드를 주입할 수 있는 여러 보안 취약점이 발견되었다. 이 문제들은 이후 패치되었으나, 약 10년 동안 수백만 개의 iOS 및 macOS 앱이 공급망 공격에 노출되었던 것으로 추정된다.3 million iOS and macOS apps were exposed to potent supply-chain attacksCocoaPods Trunk: 3 Remote Code Execution found, 2023Vulnerabilities in CocoaPods Open the Door to Supply Chain Attacks Against Thousands of iOS and MacOS Applications

 유지 관리 모드 
2024년 8월, 이 프로젝트는 13년 만에 유지 관리 모드로 전환되었다. 2015년 애플이 스위프트 패키지 매니저(SPM)를 발표하면서 유지 관리자들의 프로젝트 관여도가 약해졌으며, 업데이트는 주로 보안 수정이나 엑스코드 호환성 이슈에 의해 이루어졌다. 그럼에도 불구하고 리액트 네이티브나 플러터와 같은 프레임워크에서의 역할로 인해 CocoaPods의 사용은 계속되고 있으나, 많은 사용자들이 현재 그 존재나 내부 작동 방식을 인지하지 못하고 있다. 애플의 SPM이 후계자로 자리 잡고 활발한 개발이 감소함에 따라, CocoaPods 팀은 현재 프로젝트의 미래와 유지 관리 접근 방식을 재평가하고 있다.CocoaPods Support & Maintenance Plans

 같이 보기 

 빌드 자동화 소프트웨어 목록
 소프트웨어 패키지 관리 시스템 목록
 엑스코드
 RubyGems

 각주 

 외부 링크 


 엘로이 뒤랑 깃허브 페이지

분류:자유 패키지 관리 시스템
분류:루비로 작성된 자유 소프트웨어
분류:MIT 라이선스 소프트웨어