본문으로 건너뛰기

Firebase 13의 CocoaPods 중단에 대응해 iOS 앱을 SPM으로 이전하기

Firebase 13 dropped CocoaPods. Here’s how I moved a iOS app to SPM

sagarsaurav.medium.com

핵심 요약

  1. Firebase 13.0.0은 2026년 10월 7일 출시됐으며 CocoaPods로 배포되지 않는다. 12.19.0이 마지막으로 예정된 CocoaPods 릴리스다.
  2. 기존 앱이 즉시 작동을 멈추거나 CI 파이프라인이 저절로 실패하는 것은 아니다. 다만 이후 Firebase 기능과 성능 개선, 중요 수정 사항을 받으려면 이전 계획이 필요하다.
  3. Firebase Auth, Firestore, Crashlytics를 사용하는 기존 iOS 앱을 SPM으로 옮긴 사례에서 패키지 추가보다 빌드 단계, 링커 플래그, 타깃, 런타임 동작 점검이 주요 과제로 제시된다.

도입

Firebase 13.0.0은 2026년 10월 7일 공개됐고 CocoaPods 배포를 제공하지 않는다. 12.19.0이 마지막으로 예정된 CocoaPods 버전이다. 기존 앱이나 CI가 이 변경만으로 즉시 중단되지는 않지만, 이후 Firebase 기능과 성능 개선, 중요 수정 사항을 적용하려면 패키지 이전 계획을 세워야 한다. 글은 Firebase Auth, Firestore, Crashlytics를 사용하는 기존 네이티브 iOS 앱의 SPM 이전을 다룬다.

상세 요약

변경 사항과 영향

Firebase 13.0.0은 2026년 10월 7일 출시됐으며 CocoaPods로 배포되지 않는다. 12.19.0은 마지막으로 예정된 CocoaPods 릴리스다. 글은 Firebase 릴리스 노트와 CocoaPods trunk 공지를 서로 다른 사건의 출처로 언급한다. CocoaPods 전환에 관한 별도 맥락은 CocoaPods 서비스 종료와 패키지 매니저의 읽기 전용 전환 전략에서 확인할 수 있다.

  • 기존 앱은 Firebase 13 출시만으로 갑자기 작동을 멈추지 않는다.
  • CI 파이프라인도 이 변경만으로 자동으로 깨지지 않는다.
  • 다만 향후 Firebase 기능, 성능 개선, 중요 수정 사항을 적용하려면 이전 계획이 필요하다.

기존 앱의 SPM 이전 범위

사례의 대상은 새 프로젝트가 아니라 Firebase Auth, Firestore, Crashlytics를 사용하는 기존 네이티브 iOS 앱이다. 글쓴이는 이 앱을 Swift Package Manager(SPM)로 옮겼다고 설명한다. 따라서 핵심은 새 프로젝트에서 Firebase 패키지를 처음 추가하는 방법이 아니라, 이미 설정과 빌드 과정이 존재하는 앱에서 패키지 관리 방식을 바꾸는 데 있다.

글은 SPM에 패키지를 추가하는 단계 자체는 어렵지 않았다고 짚는다. 시간이 걸린 부분은 패키지 관리자가 대신 옮겨 주지 않는 프로젝트 설정과 실행 동작이었다. 특히 다음 항목을 별도로 점검해야 한다고 제시한다.

  • Build phases: 기존 빌드 단계가 이전 후에도 필요한지 확인한다.
  • Linker flags: 링크 설정을 함께 검토한다.
  • Targets: 앱의 타깃별 설정을 확인한다.
  • Runtime behavior: 패키지 추가가 끝난 뒤 실제 실행 동작도 살핀다.

본문에서 확인되는 범위

이 글은 패키지 설치만으로 마이그레이션이 끝나지 않는다는 점과 주요 점검 항목을 제시한다. 다만 제공된 본문에는 구체적인 Xcode 설정 절차, 링커 플래그 값, 빌드 스크립트 수정 예시, 런타임 문제의 재현 및 해결 방법이 포함돼 있지 않다. 따라서 확인 가능한 결론은 이전 대상을 Firebase Auth·Firestore·Crashlytics를 쓰는 기존 앱으로 한정하고, 패키지 변경과 프로젝트 설정 및 동작 검증을 별개의 작업으로 다뤄야 한다는 것이다.

결론

이전 과정에서 패키지를 SPM에 추가하는 일은 전체 작업의 일부에 불과하다. 기존 프로젝트의 빌드 단계와 링커 플래그, 타깃 설정, 런타임 동작도 함께 확인해야 한다. 본문에 제시된 내용은 마이그레이션의 범위와 주요 점검 항목을 설명하지만, 구체적인 설정 방법이나 각 문제의 해결 절차까지는 포함하지 않는다. 따라서 이 글에서 확실히 얻을 수 있는 핵심은 이전을 패키지 선언만 바꾸는 작업으로 보지 말아야 한다는 점이다.