본문으로 이동
CocoaPods 없이 React Native 개발하기
문서

CocoaPods 없이 React Native 개발하기

오진성 · 토스 · 토스 기술 블로그

원본 보기

소개

토스와 비슷하게 많은 회사들이 각자 다른 이유로 운영 중인 서비스를 크로스 플랫폼으로 확장하고자 React Native를 도입하려고 할 거예요. 이런 경우에 CocoaPods를 사용하지 않고 React Native를 도입하는 방법을 알려드릴게요.

AI 핵심 요약

운영 중인 iOS 앱에 React Native를 부분 도입할 때 CocoaPods를 기존 의존성 관리 도구와 함께 쓰면 의존성 중복이나 빌드 실패가 생길 수 있습니다. 이를 피하기 위해 React Native 라이브러리를 CocoaPods로 미리 빌드해 XCFramework로 만들고, 이를 binaryTarget으로 담은 Swift Package를 생성하는 Prebuild 방식을 제안합니다. 빌드 스크립트는 시뮬레이터와 기기용 아카이브를 만든 뒤 XCFramework와 Package.swift를 생성하며, 운영 프로젝트는 Swift Package Manager로 패키지를 추가합니다. 이 방식은 앱의 의존성 관리 도구를 하나로 유지하고 React Native 코드의 반복 빌드 부담을 줄이는 데 목적이 있습니다.

  • 여러 의존성 관리 도구는 서로의 의존성 그래프를 알지 못해 같은 라이브러리가 중복되거나 빌드가 실패할 수 있습니다.
  • 의존성 충돌을 피하려고 라이브러리를 포크해 podspec을 수정한다면, 변경 이력과 원본 대비 차이를 지속적으로 관리해야 합니다.
  • React Native 의존성을 CocoaPods로 설치한 뒤 시뮬레이터와 기기용으로 각각 아카이브하고 XCFramework로 묶을 수 있습니다.
  • 생성한 XCFramework를 Swift Package의 binaryTarget으로 등록하면 운영 앱에서는 Swift Package Manager로 React Native를 가져올 수 있습니다.